> static void lan88xx_set_mdix(struct phy_device *phydev) > { > int buf; > int mask_val; > > switch (phydev->mdix) { > case ETH_TP_MDI: > mask_val = LAN88XX_EXT_MODE_CTRL_MDI_; > break; > case ETH_TP_MDI_X: > mask_val = LAN88XX_EXT_MODE_CTRL_MDI_X_; > break; > case ETH_TP_MDI_AUTO: > mask_val = LAN88XX_EXT_MODE_CTRL_AUTO_MDIX_: > break: > default: > return; > } > > phy_write(phydev, LAN88XX_EXT_PAGE_ACCESS, > LAN88XX_EXT_PAGE_SPACE_1); > buf = phy_read(phydev, LAN88XX_EXT_MODE_CTRL); > buf &= ~LAN88XX_EXT_MODE_CTRL_MDIX_MASK_; > buf |= mask_val; > phy_write(phydev, LAN88XX_EXT_MODE_CTRL, buf); > phy_write(phydev, LAN88XX_EXT_PAGE_ACCESS, > LAN88XX_EXT_PAGE_SPACE_0); > } Florian, Looks simpler to me too. Will submit new patch.
Thanks. - Woojung