Messages in this thread | | | Date | Fri, 10 Jan 2020 15:04:09 +0000 | From | Russell King - ARM Linux admin <> | Subject | Re: [PATCH 07/14] net: axienet: Fix SGMII support |
| |
On Fri, Jan 10, 2020 at 02:20:38PM +0000, Andre Przywara wrote: > On Fri, 10 Jan 2020 15:04:15 +0100 > Andrew Lunn <andrew@lunn.ch> wrote: > > Hi Andrew, > > > On Fri, Jan 10, 2020 at 11:54:08AM +0000, Andre Przywara wrote: > > > With SGMII, the MAC and the PHY can negotiate the link speed between > > > themselves, without the host needing to mediate between them. > > > Linux recognises this, and will call phylink's mac_config with the speed > > > member set to SPEED_UNKNOWN (-1). > > > Currently the axienet driver will bail out and complain about an > > > unsupported link speed. > > > > > > Teach axienet's mac_config callback to leave the MAC's speed setting > > > alone if the requested speed is SPEED_UNKNOWN. > > > > Hi Andre > > > > Is there an interrupt when SGMII signals a change in link state? If > > so, you should call phylink_mac_change(). > > Good point. The doc describes a "Auto-Negotiation Complete" interrupt > status bit, which signal that " ... auto-negotiation of the SGMII or > 1000BASE-X interface has completed."
It depends what they mean by "Auto-negotiation complete" in SGMII. SGMII can complete the handshake, yet the config_reg word indicate link down. If such an update causes an "Auto-negotiation complete" interrupt, then that's sufficient.
However, looking at axienet_mac_pcs_get_state(), that is just reading back what the MAC was set to in axienet_mac_config(), which is not how this is supposed to work. axienet_mac_pcs_get_state() is supposed to get the results of the SGMII/1000BASE-X "negotiation". That also needs to be fixed.
-- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up According to speedtest.net: 11.9Mbps down 500kbps up
| |