sh_eth: add IRQ flags to 'struct sh_eth_cpu_data'
The driver supports some SH and SH-Mobile SOCs. There are SOCs with two or more Ethernet devices, for these we need to pass IRQF_SHARED to request_irq(). Add the 'irq_flags' field to the 'struct sh_eth_cpu_data' instead of #ifdef'fery. Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com> [Sergei: properly aligned request_irq() call continuation line, reworded the changelog, reworded the subject, changing the prefix.] Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Signed-off-by: David S. Miller <davem@davemloft.net>hifive-unleashed-5.1
parent
9f86134155
commit
5b3dfd13ae
|
@ -462,6 +462,7 @@ static struct sh_eth_cpu_data sh_eth_my_cpu_data = {
|
|||
EESR_RFRMER | EESR_TFE | EESR_TDE | EESR_ECI,
|
||||
.tx_error_check = EESR_TWB | EESR_TABT | EESR_TDE | EESR_TFE,
|
||||
|
||||
.irq_flags = IRQF_SHARED,
|
||||
.apr = 1,
|
||||
.mpr = 1,
|
||||
.tpauser = 1,
|
||||
|
@ -570,6 +571,7 @@ static struct sh_eth_cpu_data sh_eth_my_cpu_data_giga = {
|
|||
.fdr_value = 0x0000072f,
|
||||
.rmcr_value = 0x00000001,
|
||||
|
||||
.irq_flags = IRQF_SHARED,
|
||||
.apr = 1,
|
||||
.mpr = 1,
|
||||
.tpauser = 1,
|
||||
|
@ -650,6 +652,8 @@ static struct sh_eth_cpu_data sh_eth_my_cpu_data = {
|
|||
#if defined(CONFIG_CPU_SUBTYPE_SH7734)
|
||||
.hw_crc = 1,
|
||||
.select_mii = 1,
|
||||
#else
|
||||
.irq_flags = IRQF_SHARED,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -1908,14 +1912,7 @@ static int sh_eth_open(struct net_device *ndev)
|
|||
pm_runtime_get_sync(&mdp->pdev->dev);
|
||||
|
||||
ret = request_irq(ndev->irq, sh_eth_interrupt,
|
||||
#if defined(CONFIG_CPU_SUBTYPE_SH7763) || \
|
||||
defined(CONFIG_CPU_SUBTYPE_SH7764) || \
|
||||
defined(CONFIG_CPU_SUBTYPE_SH7757)
|
||||
IRQF_SHARED,
|
||||
#else
|
||||
0,
|
||||
#endif
|
||||
ndev->name, ndev);
|
||||
mdp->cd->irq_flags, ndev->name, ndev);
|
||||
if (ret) {
|
||||
dev_err(&ndev->dev, "Can not assign IRQ number\n");
|
||||
return ret;
|
||||
|
|
|
@ -463,6 +463,7 @@ struct sh_eth_cpu_data {
|
|||
unsigned long tx_error_check;
|
||||
|
||||
/* hardware features */
|
||||
unsigned long irq_flags; /* IRQ configuration flags */
|
||||
unsigned no_psr:1; /* EtherC DO NOT have PSR */
|
||||
unsigned apr:1; /* EtherC have APR */
|
||||
unsigned mpr:1; /* EtherC have MPR */
|
||||
|
|
Loading…
Reference in New Issue