diff options
| -rw-r--r-- | drivers/net/phy/generic_10g.c | 8 | ||||
| -rw-r--r-- | include/linux/mdio.h | 8 | 
2 files changed, 14 insertions, 2 deletions
| diff --git a/drivers/net/phy/generic_10g.c b/drivers/net/phy/generic_10g.c index 60dec457b..e4a499d46 100644 --- a/drivers/net/phy/generic_10g.c +++ b/drivers/net/phy/generic_10g.c @@ -36,7 +36,7 @@ int gen10g_shutdown(struct phy_device *phydev)  int gen10g_startup(struct phy_device *phydev)  {  	int devad, reg; -	u32 mmd_mask = phydev->mmds; +	u32 mmd_mask = phydev->mmds & MDIO_DEVS_LINK;  	phydev->link = 1; @@ -44,8 +44,12 @@ int gen10g_startup(struct phy_device *phydev)  	phydev->speed = SPEED_10000;  	phydev->duplex = DUPLEX_FULL; +	/* +	 * Go through all the link-reporting devices, and make sure +	 * they're all up and happy +	 */  	for (devad = 0; mmd_mask; devad++, mmd_mask = mmd_mask >> 1) { -		if (!mmd_mask & 1) +		if (!(mmd_mask & 1))  			continue;  		/* Read twice because link state is latched and a diff --git a/include/linux/mdio.h b/include/linux/mdio.h index 022d77214..be80f9147 100644 --- a/include/linux/mdio.h +++ b/include/linux/mdio.h @@ -120,6 +120,14 @@  #define MDIO_DEVS_VEND1			MDIO_DEVS_PRESENT(MDIO_MMD_VEND1)  #define MDIO_DEVS_VEND2			MDIO_DEVS_PRESENT(MDIO_MMD_VEND2) +#define MDIO_DEVS_LINK			(MDIO_DEVS_PMAPMD | \ +					MDIO_DEVS_WIS | \ +					MDIO_DEVS_PCS | \ +					MDIO_DEVS_PHYXS | \ +					MDIO_DEVS_DTEXS | \ +					MDIO_DEVS_AN) + +  /* Control register 2. */  #define MDIO_PMA_CTRL2_TYPE		0x000f	/* PMA/PMD type selection */ |