I just spotted something else... On Mon, Jun 22, 2020 at 01:54:46AM +0300, Ioana Ciornei wrote: > +static void lynx_pcs_get_state_2500basex(struct mdio_device *pcs, > + struct phylink_link_state *state) > +{ > + struct mii_bus *bus = pcs->bus; > + int addr = pcs->addr; > + int bmsr, lpa; > + > + bmsr = mdiobus_read(bus, addr, MII_BMSR); > + lpa = mdiobus_read(bus, addr, MII_LPA); > + if (bmsr < 0 || lpa < 0) { > + state->link = false; > + return; > + } > + > + state->link = !!(bmsr & BMSR_LSTATUS); > + state->an_complete = !!(bmsr & BMSR_ANEGCOMPLETE); > + if (!state->link) > + return; > + > + state->speed = SPEED_2500;
You seem to have missed setting state->duplex here - it defaults to DUPLEX_UNKNOWN, and will remain as such, which is probably not what you want. > + state->pause |= MLO_PAUSE_TX | MLO_PAUSE_RX; > +} -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!