On Thu, Nov 18, 2021 at 10:57:03AM +0100, Horatiu Vultur wrote: > > > +static void decode_sgmii_word(u16 lp_abil, struct lan966x_port_status *status) > > > +{ > > > + status->an_complete = true; > > > + if (!(lp_abil & LPA_SGMII_LINK)) { > > > + status->link = false; > > > + return; > > > + } > > > + > > > + switch (lp_abil & LPA_SGMII_SPD_MASK) { > > > + case LPA_SGMII_10: > > > + status->speed = SPEED_10; > > > + break; > > > + case LPA_SGMII_100: > > > + status->speed = SPEED_100; > > > + break; > > > + case LPA_SGMII_1000: > > > + status->speed = SPEED_1000; > > > + break; > > > + default: > > > + status->link = false; > > > + return; > > > + } > > > + if (lp_abil & LPA_SGMII_FULL_DUPLEX) > > > + status->duplex = DUPLEX_FULL; > > > + else > > > + status->duplex = DUPLEX_HALF; > > > +} > > > > The above mentioned function will also handle SGMII as well. > > I noticed that you have phylink_decode_sgmii_work(), so I will try to > export it also. Another approach would be to split phylink_mii_c22_pcs_decode_state() so that the appropriate decode function is selected depending on the interface state, which may be a better idea. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!