> 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