Skip to content

Commit 212e8dc

Browse files
committed
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 aa6ba77 commit 212e8dc

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
@@ -444,13 +444,9 @@ static int bcm54xx_config_init(struct phy_device *phydev)
444444
if (reg < 0)
445445
return reg;
446446

447-
/* Mask interrupts globally. */
448-
reg |= MII_BCM54XX_ECR_IM;
449-
err = phy_write(phydev, MII_BCM54XX_ECR, reg);
450-
if (err < 0)
451-
return err;
452-
453-
/* Unmask events we are interested in. */
447+
/* Initially all interrupts are masked in IMR, so unmask events
448+
* we are interested in.
449+
*/
454450
reg = ~(MII_BCM54XX_INT_DUPLEX |
455451
MII_BCM54XX_INT_SPEED |
456452
MII_BCM54XX_INT_LINK);

0 commit comments

Comments
 (0)