Commit 1bae6c99 authored by David S. Miller's avatar David S. Miller

Merge branch 'sh_eth-E-DMAC-interrupt-mask-cleanups'

Sergei Shtylyov says:

====================
sh_eth: E-DMAC interrupt mask cleanups

   Here's a set of 3 patches against DaveM's 'net-next.git' repo. The main goal
of this set is to stop using the bare numbers for the E-DMAC interrupt masks.

[1/3] sh_eth: rename EESIPR bits
[2/3] sh_eth: add missing EESIPR bits
[3/3] sh_eth: stop using bare numbers for EESIPR values
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 63c19042 2b2d3eb4
...@@ -518,7 +518,14 @@ static struct sh_eth_cpu_data r7s72100_data = { ...@@ -518,7 +518,14 @@ static struct sh_eth_cpu_data r7s72100_data = {
.ecsr_value = ECSR_ICD, .ecsr_value = ECSR_ICD,
.ecsipr_value = ECSIPR_ICDIP, .ecsipr_value = ECSIPR_ICDIP,
.eesipr_value = 0xe77f009f, .eesipr_value = EESIPR_TWB1IP | EESIPR_TWBIP | EESIPR_TC1IP |
EESIPR_TABTIP | EESIPR_RABTIP | EESIPR_RFCOFIP |
EESIPR_ECIIP |
EESIPR_FTCIP | EESIPR_TDEIP | EESIPR_TFUFIP |
EESIPR_FRIP | EESIPR_RDEIP | EESIPR_RFOFIP |
EESIPR_RMAFIP | EESIPR_RRFIP |
EESIPR_RTLFIP | EESIPR_RTSFIP |
EESIPR_PREIP | EESIPR_CERFIP,
.tx_check = EESR_TC1 | EESR_FTC, .tx_check = EESR_TC1 | EESR_FTC,
.eesr_err_check = EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_RABT | .eesr_err_check = EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_RABT |
...@@ -556,7 +563,14 @@ static struct sh_eth_cpu_data r8a7740_data = { ...@@ -556,7 +563,14 @@ static struct sh_eth_cpu_data r8a7740_data = {
.ecsr_value = ECSR_ICD | ECSR_MPD, .ecsr_value = ECSR_ICD | ECSR_MPD,
.ecsipr_value = ECSIPR_LCHNGIP | ECSIPR_ICDIP | ECSIPR_MPDIP, .ecsipr_value = ECSIPR_LCHNGIP | ECSIPR_ICDIP | ECSIPR_MPDIP,
.eesipr_value = DMAC_M_RFRMER | DMAC_M_ECI | 0x003fffff, .eesipr_value = EESIPR_RFCOFIP | EESIPR_ECIIP |
EESIPR_FTCIP | EESIPR_TDEIP | EESIPR_TFUFIP |
EESIPR_FRIP | EESIPR_RDEIP | EESIPR_RFOFIP |
0x0000f000 | EESIPR_CNDIP | EESIPR_DLCIP |
EESIPR_CDIP | EESIPR_TROIP | EESIPR_RMAFIP |
EESIPR_CEEFIP | EESIPR_CELFIP |
EESIPR_RRFIP | EESIPR_RTLFIP | EESIPR_RTSFIP |
EESIPR_PREIP | EESIPR_CERFIP,
.tx_check = EESR_TC1 | EESR_FTC, .tx_check = EESR_TC1 | EESR_FTC,
.eesr_err_check = EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_RABT | .eesr_err_check = EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_RABT |
...@@ -603,7 +617,12 @@ static struct sh_eth_cpu_data r8a777x_data = { ...@@ -603,7 +617,12 @@ static struct sh_eth_cpu_data r8a777x_data = {
.ecsr_value = ECSR_PSRTO | ECSR_LCHNG | ECSR_ICD, .ecsr_value = ECSR_PSRTO | ECSR_LCHNG | ECSR_ICD,
.ecsipr_value = ECSIPR_PSRTOIP | ECSIPR_LCHNGIP | ECSIPR_ICDIP, .ecsipr_value = ECSIPR_PSRTOIP | ECSIPR_LCHNGIP | ECSIPR_ICDIP,
.eesipr_value = 0x01ff009f, .eesipr_value = EESIPR_RFCOFIP | EESIPR_ADEIP | EESIPR_ECIIP |
EESIPR_FTCIP | EESIPR_TDEIP | EESIPR_TFUFIP |
EESIPR_FRIP | EESIPR_RDEIP | EESIPR_RFOFIP |
EESIPR_RMAFIP | EESIPR_RRFIP |
EESIPR_RTLFIP | EESIPR_RTSFIP |
EESIPR_PREIP | EESIPR_CERFIP,
.tx_check = EESR_FTC | EESR_CND | EESR_DLC | EESR_CD | EESR_RTO, .tx_check = EESR_FTC | EESR_CND | EESR_DLC | EESR_CD | EESR_RTO,
.eesr_err_check = EESR_TWB | EESR_TABT | EESR_RABT | EESR_RFE | .eesr_err_check = EESR_TWB | EESR_TABT | EESR_RABT | EESR_RFE |
...@@ -626,7 +645,12 @@ static struct sh_eth_cpu_data r8a779x_data = { ...@@ -626,7 +645,12 @@ static struct sh_eth_cpu_data r8a779x_data = {
.ecsr_value = ECSR_PSRTO | ECSR_LCHNG | ECSR_ICD | ECSR_MPD, .ecsr_value = ECSR_PSRTO | ECSR_LCHNG | ECSR_ICD | ECSR_MPD,
.ecsipr_value = ECSIPR_PSRTOIP | ECSIPR_LCHNGIP | ECSIPR_ICDIP | .ecsipr_value = ECSIPR_PSRTOIP | ECSIPR_LCHNGIP | ECSIPR_ICDIP |
ECSIPR_MPDIP, ECSIPR_MPDIP,
.eesipr_value = 0x01ff009f, .eesipr_value = EESIPR_RFCOFIP | EESIPR_ADEIP | EESIPR_ECIIP |
EESIPR_FTCIP | EESIPR_TDEIP | EESIPR_TFUFIP |
EESIPR_FRIP | EESIPR_RDEIP | EESIPR_RFOFIP |
EESIPR_RMAFIP | EESIPR_RRFIP |
EESIPR_RTLFIP | EESIPR_RTSFIP |
EESIPR_PREIP | EESIPR_CERFIP,
.tx_check = EESR_FTC | EESR_CND | EESR_DLC | EESR_CD | EESR_RTO, .tx_check = EESR_FTC | EESR_CND | EESR_DLC | EESR_CD | EESR_RTO,
.eesr_err_check = EESR_TWB | EESR_TABT | EESR_RABT | EESR_RFE | .eesr_err_check = EESR_TWB | EESR_TABT | EESR_RABT | EESR_RFE |
...@@ -667,7 +691,12 @@ static struct sh_eth_cpu_data sh7724_data = { ...@@ -667,7 +691,12 @@ static struct sh_eth_cpu_data sh7724_data = {
.ecsr_value = ECSR_PSRTO | ECSR_LCHNG | ECSR_ICD, .ecsr_value = ECSR_PSRTO | ECSR_LCHNG | ECSR_ICD,
.ecsipr_value = ECSIPR_PSRTOIP | ECSIPR_LCHNGIP | ECSIPR_ICDIP, .ecsipr_value = ECSIPR_PSRTOIP | ECSIPR_LCHNGIP | ECSIPR_ICDIP,
.eesipr_value = 0x01ff009f, .eesipr_value = EESIPR_RFCOFIP | EESIPR_ADEIP | EESIPR_ECIIP |
EESIPR_FTCIP | EESIPR_TDEIP | EESIPR_TFUFIP |
EESIPR_FRIP | EESIPR_RDEIP | EESIPR_RFOFIP |
EESIPR_RMAFIP | EESIPR_RRFIP |
EESIPR_RTLFIP | EESIPR_RTSFIP |
EESIPR_PREIP | EESIPR_CERFIP,
.tx_check = EESR_FTC | EESR_CND | EESR_DLC | EESR_CD | EESR_RTO, .tx_check = EESR_FTC | EESR_CND | EESR_DLC | EESR_CD | EESR_RTO,
.eesr_err_check = EESR_TWB | EESR_TABT | EESR_RABT | EESR_RFE | .eesr_err_check = EESR_TWB | EESR_TABT | EESR_RABT | EESR_RFE |
...@@ -702,7 +731,14 @@ static struct sh_eth_cpu_data sh7757_data = { ...@@ -702,7 +731,14 @@ static struct sh_eth_cpu_data sh7757_data = {
.register_type = SH_ETH_REG_FAST_SH4, .register_type = SH_ETH_REG_FAST_SH4,
.eesipr_value = DMAC_M_RFRMER | DMAC_M_ECI | 0x003fffff, .eesipr_value = EESIPR_RFCOFIP | EESIPR_ECIIP |
EESIPR_FTCIP | EESIPR_TDEIP | EESIPR_TFUFIP |
EESIPR_FRIP | EESIPR_RDEIP | EESIPR_RFOFIP |
0x0000f000 | EESIPR_CNDIP | EESIPR_DLCIP |
EESIPR_CDIP | EESIPR_TROIP | EESIPR_RMAFIP |
EESIPR_CEEFIP | EESIPR_CELFIP |
EESIPR_RRFIP | EESIPR_RTLFIP | EESIPR_RTSFIP |
EESIPR_PREIP | EESIPR_CERFIP,
.tx_check = EESR_FTC | EESR_CND | EESR_DLC | EESR_CD | EESR_RTO, .tx_check = EESR_FTC | EESR_CND | EESR_DLC | EESR_CD | EESR_RTO,
.eesr_err_check = EESR_TWB | EESR_TABT | EESR_RABT | EESR_RFE | .eesr_err_check = EESR_TWB | EESR_TABT | EESR_RABT | EESR_RFE |
...@@ -769,7 +805,14 @@ static struct sh_eth_cpu_data sh7757_data_giga = { ...@@ -769,7 +805,14 @@ static struct sh_eth_cpu_data sh7757_data_giga = {
.ecsr_value = ECSR_ICD | ECSR_MPD, .ecsr_value = ECSR_ICD | ECSR_MPD,
.ecsipr_value = ECSIPR_LCHNGIP | ECSIPR_ICDIP | ECSIPR_MPDIP, .ecsipr_value = ECSIPR_LCHNGIP | ECSIPR_ICDIP | ECSIPR_MPDIP,
.eesipr_value = DMAC_M_RFRMER | DMAC_M_ECI | 0x003fffff, .eesipr_value = EESIPR_RFCOFIP | EESIPR_ECIIP |
EESIPR_FTCIP | EESIPR_TDEIP | EESIPR_TFUFIP |
EESIPR_FRIP | EESIPR_RDEIP | EESIPR_RFOFIP |
0x0000f000 | EESIPR_CNDIP | EESIPR_DLCIP |
EESIPR_CDIP | EESIPR_TROIP | EESIPR_RMAFIP |
EESIPR_CEEFIP | EESIPR_CELFIP |
EESIPR_RRFIP | EESIPR_RTLFIP | EESIPR_RTSFIP |
EESIPR_PREIP | EESIPR_CERFIP,
.tx_check = EESR_TC1 | EESR_FTC, .tx_check = EESR_TC1 | EESR_FTC,
.eesr_err_check = EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_RABT | .eesr_err_check = EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_RABT |
...@@ -800,7 +843,13 @@ static struct sh_eth_cpu_data sh7734_data = { ...@@ -800,7 +843,13 @@ static struct sh_eth_cpu_data sh7734_data = {
.ecsr_value = ECSR_ICD | ECSR_MPD, .ecsr_value = ECSR_ICD | ECSR_MPD,
.ecsipr_value = ECSIPR_LCHNGIP | ECSIPR_ICDIP | ECSIPR_MPDIP, .ecsipr_value = ECSIPR_LCHNGIP | ECSIPR_ICDIP | ECSIPR_MPDIP,
.eesipr_value = DMAC_M_RFRMER | DMAC_M_ECI | 0x003f07ff, .eesipr_value = EESIPR_RFCOFIP | EESIPR_ECIIP |
EESIPR_FTCIP | EESIPR_TDEIP | EESIPR_TFUFIP |
EESIPR_FRIP | EESIPR_RDEIP | EESIPR_RFOFIP |
EESIPR_DLCIP | EESIPR_CDIP | EESIPR_TROIP |
EESIPR_RMAFIP | EESIPR_CEEFIP | EESIPR_CELFIP |
EESIPR_RRFIP | EESIPR_RTLFIP | EESIPR_RTSFIP |
EESIPR_PREIP | EESIPR_CERFIP,
.tx_check = EESR_TC1 | EESR_FTC, .tx_check = EESR_TC1 | EESR_FTC,
.eesr_err_check = EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_RABT | .eesr_err_check = EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_RABT |
...@@ -830,7 +879,13 @@ static struct sh_eth_cpu_data sh7763_data = { ...@@ -830,7 +879,13 @@ static struct sh_eth_cpu_data sh7763_data = {
.ecsr_value = ECSR_ICD | ECSR_MPD, .ecsr_value = ECSR_ICD | ECSR_MPD,
.ecsipr_value = ECSIPR_LCHNGIP | ECSIPR_ICDIP | ECSIPR_MPDIP, .ecsipr_value = ECSIPR_LCHNGIP | ECSIPR_ICDIP | ECSIPR_MPDIP,
.eesipr_value = DMAC_M_RFRMER | DMAC_M_ECI | 0x003f07ff, .eesipr_value = EESIPR_RFCOFIP | EESIPR_ECIIP |
EESIPR_FTCIP | EESIPR_TDEIP | EESIPR_TFUFIP |
EESIPR_FRIP | EESIPR_RDEIP | EESIPR_RFOFIP |
EESIPR_DLCIP | EESIPR_CDIP | EESIPR_TROIP |
EESIPR_RMAFIP | EESIPR_CEEFIP | EESIPR_CELFIP |
EESIPR_RRFIP | EESIPR_RTLFIP | EESIPR_RTSFIP |
EESIPR_PREIP | EESIPR_CERFIP,
.tx_check = EESR_TC1 | EESR_FTC, .tx_check = EESR_TC1 | EESR_FTC,
.eesr_err_check = EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_RABT | .eesr_err_check = EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_RABT |
...@@ -851,7 +906,14 @@ static struct sh_eth_cpu_data sh7763_data = { ...@@ -851,7 +906,14 @@ static struct sh_eth_cpu_data sh7763_data = {
static struct sh_eth_cpu_data sh7619_data = { static struct sh_eth_cpu_data sh7619_data = {
.register_type = SH_ETH_REG_FAST_SH3_SH2, .register_type = SH_ETH_REG_FAST_SH3_SH2,
.eesipr_value = DMAC_M_RFRMER | DMAC_M_ECI | 0x003fffff, .eesipr_value = EESIPR_RFCOFIP | EESIPR_ECIIP |
EESIPR_FTCIP | EESIPR_TDEIP | EESIPR_TFUFIP |
EESIPR_FRIP | EESIPR_RDEIP | EESIPR_RFOFIP |
0x0000f000 | EESIPR_CNDIP | EESIPR_DLCIP |
EESIPR_CDIP | EESIPR_TROIP | EESIPR_RMAFIP |
EESIPR_CEEFIP | EESIPR_CELFIP |
EESIPR_RRFIP | EESIPR_RTLFIP | EESIPR_RTSFIP |
EESIPR_PREIP | EESIPR_CERFIP,
.apr = 1, .apr = 1,
.mpr = 1, .mpr = 1,
...@@ -862,7 +924,14 @@ static struct sh_eth_cpu_data sh7619_data = { ...@@ -862,7 +924,14 @@ static struct sh_eth_cpu_data sh7619_data = {
static struct sh_eth_cpu_data sh771x_data = { static struct sh_eth_cpu_data sh771x_data = {
.register_type = SH_ETH_REG_FAST_SH3_SH2, .register_type = SH_ETH_REG_FAST_SH3_SH2,
.eesipr_value = DMAC_M_RFRMER | DMAC_M_ECI | 0x003fffff, .eesipr_value = EESIPR_RFCOFIP | EESIPR_ECIIP |
EESIPR_FTCIP | EESIPR_TDEIP | EESIPR_TFUFIP |
EESIPR_FRIP | EESIPR_RDEIP | EESIPR_RFOFIP |
0x0000f000 | EESIPR_CNDIP | EESIPR_DLCIP |
EESIPR_CDIP | EESIPR_TROIP | EESIPR_RMAFIP |
EESIPR_CEEFIP | EESIPR_CELFIP |
EESIPR_RRFIP | EESIPR_RTLFIP | EESIPR_RTSFIP |
EESIPR_PREIP | EESIPR_CERFIP,
.tsu = 1, .tsu = 1,
}; };
...@@ -1547,10 +1616,10 @@ static void sh_eth_emac_interrupt(struct net_device *ndev) ...@@ -1547,10 +1616,10 @@ static void sh_eth_emac_interrupt(struct net_device *ndev)
sh_eth_rcv_snd_disable(ndev); sh_eth_rcv_snd_disable(ndev);
} else { } else {
/* Link Up */ /* Link Up */
sh_eth_modify(ndev, EESIPR, DMAC_M_ECI, 0); sh_eth_modify(ndev, EESIPR, EESIPR_ECIIP, 0);
/* clear int */ /* clear int */
sh_eth_modify(ndev, ECSR, 0, 0); sh_eth_modify(ndev, ECSR, 0, 0);
sh_eth_modify(ndev, EESIPR, DMAC_M_ECI, DMAC_M_ECI); sh_eth_modify(ndev, EESIPR, EESIPR_ECIIP, EESIPR_ECIIP);
/* enable tx and rx */ /* enable tx and rx */
sh_eth_rcv_snd_enable(ndev); sh_eth_rcv_snd_enable(ndev);
} }
...@@ -1652,7 +1721,7 @@ static irqreturn_t sh_eth_interrupt(int irq, void *netdev) ...@@ -1652,7 +1721,7 @@ static irqreturn_t sh_eth_interrupt(int irq, void *netdev)
* bit... * bit...
*/ */
intr_enable = sh_eth_read(ndev, EESIPR); intr_enable = sh_eth_read(ndev, EESIPR);
intr_status &= intr_enable | DMAC_M_ECI; intr_status &= intr_enable | EESIPR_ECIIP;
if (intr_status & (EESR_RX_CHECK | cd->tx_check | EESR_ECI | if (intr_status & (EESR_RX_CHECK | cd->tx_check | EESR_ECI |
cd->eesr_err_check)) cd->eesr_err_check))
ret = IRQ_HANDLED; ret = IRQ_HANDLED;
...@@ -3199,7 +3268,7 @@ static int sh_eth_wol_setup(struct net_device *ndev) ...@@ -3199,7 +3268,7 @@ static int sh_eth_wol_setup(struct net_device *ndev)
/* Only allow ECI interrupts */ /* Only allow ECI interrupts */
synchronize_irq(ndev->irq); synchronize_irq(ndev->irq);
napi_disable(&mdp->napi); napi_disable(&mdp->napi);
sh_eth_write(ndev, DMAC_M_ECI, EESIPR); sh_eth_write(ndev, EESIPR_ECIIP, EESIPR);
/* Enable MagicPacket */ /* Enable MagicPacket */
sh_eth_modify(ndev, ECMR, 0, ECMR_MPDE); sh_eth_modify(ndev, ECMR, 0, ECMR_MPDE);
......
...@@ -268,19 +268,35 @@ enum EESR_BIT { ...@@ -268,19 +268,35 @@ enum EESR_BIT {
EESR_TFE | EESR_TDE) EESR_TFE | EESR_TDE)
/* EESIPR */ /* EESIPR */
enum DMAC_IM_BIT { enum EESIPR_BIT {
DMAC_M_TWB = 0x40000000, DMAC_M_TABT = 0x04000000, EESIPR_TWB1IP = 0x80000000,
DMAC_M_RABT = 0x02000000, EESIPR_TWBIP = 0x40000000, /* same as TWB0IP */
DMAC_M_RFRMER = 0x01000000, DMAC_M_ADF = 0x00800000, EESIPR_TC1IP = 0x20000000,
DMAC_M_ECI = 0x00400000, DMAC_M_FTC = 0x00200000, EESIPR_TUCIP = 0x10000000,
DMAC_M_TDE = 0x00100000, DMAC_M_TFE = 0x00080000, EESIPR_ROCIP = 0x08000000,
DMAC_M_FRC = 0x00040000, DMAC_M_RDE = 0x00020000, EESIPR_TABTIP = 0x04000000,
DMAC_M_RFE = 0x00010000, DMAC_M_TINT4 = 0x00000800, EESIPR_RABTIP = 0x02000000,
DMAC_M_TINT3 = 0x00000400, DMAC_M_TINT2 = 0x00000200, EESIPR_RFCOFIP = 0x01000000,
DMAC_M_TINT1 = 0x00000100, DMAC_M_RINT8 = 0x00000080, EESIPR_ADEIP = 0x00800000,
DMAC_M_RINT5 = 0x00000010, DMAC_M_RINT4 = 0x00000008, EESIPR_ECIIP = 0x00400000,
DMAC_M_RINT3 = 0x00000004, DMAC_M_RINT2 = 0x00000002, EESIPR_FTCIP = 0x00200000, /* same as TC0IP */
DMAC_M_RINT1 = 0x00000001, EESIPR_TDEIP = 0x00100000,
EESIPR_TFUFIP = 0x00080000,
EESIPR_FRIP = 0x00040000,
EESIPR_RDEIP = 0x00020000,
EESIPR_RFOFIP = 0x00010000,
EESIPR_CNDIP = 0x00000800,
EESIPR_DLCIP = 0x00000400,
EESIPR_CDIP = 0x00000200,
EESIPR_TROIP = 0x00000100,
EESIPR_RMAFIP = 0x00000080,
EESIPR_CEEFIP = 0x00000040,
EESIPR_CELFIP = 0x00000020,
EESIPR_RRFIP = 0x00000010,
EESIPR_RTLFIP = 0x00000008,
EESIPR_RTSFIP = 0x00000004,
EESIPR_PREIP = 0x00000002,
EESIPR_CERFIP = 0x00000001,
}; };
/* Receive descriptor 0 bits */ /* Receive descriptor 0 bits */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment