On Tue, Jul 23, 2019 at 10:17:01PM +0700, Arseny Solokha wrote: > -static noinline void gfar_update_link_state(struct gfar_private *priv) > +static void gfar_mac_config(struct phylink_config *config, unsigned int mode, > + const struct phylink_link_state *state) > { > + struct gfar_private *priv = netdev_priv(to_net_dev(config->dev)); > struct gfar __iomem *regs = priv->gfargrp[0].regs; > - struct net_device *ndev = priv->ndev; > - struct phy_device *phydev = ndev->phydev; > - struct gfar_priv_rx_q *rx_queue = NULL; > - int i; > + u32 maccfg1, new_maccfg1; > + u32 maccfg2, new_maccfg2; > + u32 ecntrl, new_ecntrl; > + u32 tx_flow, new_tx_flow; > > if (unlikely(test_bit(GFAR_RESETTING, &priv->state))) > return; > > - if (phydev->link) { > - u32 tempval1 = gfar_read(®s->maccfg1); > - u32 tempval = gfar_read(®s->maccfg2); > - u32 ecntrl = gfar_read(®s->ecntrl); > - u32 tx_flow_oldval = (tempval1 & MACCFG1_TX_FLOW); > + if (unlikely(phylink_autoneg_inband(mode))) > + return;
Given that SFPs can be either SGMII or 1000BASE-X (which require different configuration) and that the intention here is to support SFPs, I don't see how this works with the above. How is the difference between SGMII and 1000BASE-X handled? -- 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