> static void rtl_speed_down(struct rtl8169_private *tp) > { > - u32 adv; > - int lpa; > + struct phy_device *phydev = tp->dev->phydev; > + u32 adv = phydev->lp_advertising & phydev->supported; > > - rtl_writephy(tp, 0x1f, 0x0000); > - lpa = rtl_readphy(tp, MII_LPA); > + if (adv & BASET10) > + phydev->advertising &= ~(BASET100 | BASET1000); > + else if (adv & BASET100) > + phydev->advertising &= ~BASET1000;
Please use phy_set_max_speed(). We need MAC drivers to stop directly accessing phydev members. Otherwise we are going to have problems supporting 2.5G PHYs. Andrew