u32 reg, i;
reg = mt7530_mdio_r32(gsw, 0x700c);
+ mt7530_mdio_w32(gsw, 0x700c, reg);
for (i = 0; i < 5; i++)
if (reg & BIT(i)) {
}
mt7620_handle_carrier(priv);
- mt7530_mdio_w32(gsw, 0x700c, 0x1f);
return IRQ_HANDLED;
}
_mt7620_mii_write(gsw, i, 0, val);
}
- /* mask irq */
- mt7530_mdio_w32(gsw, 0x7008, 0x1f);
/* enable irq */
+ mt7530_mdio_w32(gsw, 0x7008, 0x1f);
val = mt7530_mdio_r32(gsw, 0x7808);
val |= 3 << 16;
mt7530_mdio_w32(gsw, 0x7808, val);
if (gsw->irq) {
request_irq(gsw->irq, gsw_interrupt_mt7621, 0,
"gsw", priv);
- mt7530_mdio_w32(gsw, 0x7008, ~0x1f);
+ disable_irq(gsw->irq);
}
+
mt7621_hw_init(gsw, np);
+ if (gsw->irq)
+ enable_irq(gsw->irq);
+
return 0;
}