forked from luck/tmp_suning_uos_patched
net: stmmac: discard disabled flags in interrupt status register
The interrupt status register in both dwmac1000 and dwmac4 ignores interrupt enable (for dwmac4) / interrupt mask (for dwmac1000). Therefore, if we want to check only the bits that can actually trigger an irq, we have to filter the interrupt status register manually. Commit0a764db103
("stmmac: Discard masked flags in interrupt status register") fixed this for dwmac1000. Fix the same issue for dwmac4. Just like commit0a764db103
("stmmac: Discard masked flags in interrupt status register"), this makes sure that we do not get spurious link up/link down prints. Signed-off-by: Niklas Cassel <niklas.cassel@axis.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
faefaa9721
commit
1b84ca1875
|
@ -572,10 +572,12 @@ static int dwmac4_irq_status(struct mac_device_info *hw,
|
|||
struct stmmac_extra_stats *x)
|
||||
{
|
||||
void __iomem *ioaddr = hw->pcsr;
|
||||
u32 intr_status;
|
||||
u32 intr_status = readl(ioaddr + GMAC_INT_STATUS);
|
||||
u32 intr_enable = readl(ioaddr + GMAC_INT_EN);
|
||||
int ret = 0;
|
||||
|
||||
intr_status = readl(ioaddr + GMAC_INT_STATUS);
|
||||
/* Discard disabled bits */
|
||||
intr_status &= intr_enable;
|
||||
|
||||
/* Not used events (e.g. MMC interrupts) are not handled. */
|
||||
if ((intr_status & mmc_tx_irq))
|
||||
|
|
Loading…
Reference in New Issue
Block a user