Skip to content

Commit 8467ae4

Browse files
nbuchwitzpopcornmix
authored andcommitted
net: phy: broadcom: Remove conflicting ECR global interrupt mask in config_init
The driver previously set the global interrupt mask in the ECR register in bcm54xx_config_init(), disabling all interrupts. This conflicts with the configuration in bcm_phy_config_intr(), which enables or disables the global interrupt mask as needed and is called earlier. As a result, interrupts may remain globally disabled even when the IMR is configured to unmask specific events. Remove the ECR handling from bcm54xx_config_init() so that interrupt enable/disable is managed exclusively by bcm_phy_config_intr(). Signed-off-by: Nicolai Buchwitz <[email protected]>
1 parent 4107408 commit 8467ae4

File tree

1 file changed

+3
-7
lines changed

1 file changed

+3
-7
lines changed

drivers/net/phy/broadcom.c

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -456,13 +456,9 @@ static int bcm54xx_config_init(struct phy_device *phydev)
456456
if (reg < 0)
457457
return reg;
458458

459-
/* Mask interrupts globally. */
460-
reg |= MII_BCM54XX_ECR_IM;
461-
err = phy_write(phydev, MII_BCM54XX_ECR, reg);
462-
if (err < 0)
463-
return err;
464-
465-
/* Unmask events we are interested in. */
459+
/* Initially all interrupts are masked in IMR, so unmask events
460+
* we are interested in.
461+
*/
466462
reg = ~(MII_BCM54XX_INT_DUPLEX |
467463
MII_BCM54XX_INT_SPEED |
468464
MII_BCM54XX_INT_LINK);

0 commit comments

Comments
 (0)