Message ID | 1608216735-14501-1-git-send-email-stefanc@marvell.com |
---|---|
State | New |
Headers | show |
Series | [net,v3] net: mvpp2: disable force link UP during port init procedure | expand |
Hi Stefan, czw., 17 gru 2020 o 15:54 <stefanc@marvell.com> napisał(a): > > From: Stefan Chulski <stefanc@marvell.com> > > Force link UP can be enabled by bootloader during tftpboot > and breaks NFS support. > Force link UP disabled during port init procedure. > > Fixes: f84bf386f395 ("net: mvpp2: initialize the GoP") > Signed-off-by: Stefan Chulski <stefanc@marvell.com> > --- > > Changes in v3: > - Added Fixes tag. > Changes in v2: > - No changes. > > drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c > index d2b0506..0ad3177 100644 > --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c > +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c > @@ -5479,7 +5479,7 @@ static int mvpp2_port_init(struct mvpp2_port *port) > struct mvpp2 *priv = port->priv; > struct mvpp2_txq_pcpu *txq_pcpu; > unsigned int thread; > - int queue, err; > + int queue, err, val; > > /* Checks for hardware constraints */ > if (port->first_rxq + port->nrxqs > > @@ -5493,6 +5493,18 @@ static int mvpp2_port_init(struct mvpp2_port *port) > mvpp2_egress_disable(port); > mvpp2_port_disable(port); > > + if (mvpp2_is_xlg(port->phy_interface)) { > + val = readl(port->base + MVPP22_XLG_CTRL0_REG); > + val &= ~MVPP22_XLG_CTRL0_FORCE_LINK_PASS; > + val |= MVPP22_XLG_CTRL0_FORCE_LINK_DOWN; > + writel(val, port->base + MVPP22_XLG_CTRL0_REG); > + } else { > + val = readl(port->base + MVPP2_GMAC_AUTONEG_CONFIG); > + val &= ~MVPP2_GMAC_FORCE_LINK_PASS; > + val |= MVPP2_GMAC_FORCE_LINK_DOWN; > + writel(val, port->base + MVPP2_GMAC_AUTONEG_CONFIG); > + } > + > port->tx_time_coal = MVPP2_TXDONE_COAL_USEC; > > port->txqs = devm_kcalloc(dev, port->ntxqs, sizeof(*port->txqs), > -- I confirm the patch fixes issue - tested on CN913x-DB and RGMII port. Other boards there I see no regression. Acked-by: Marcin Wojtas <mw@semihalf.com> Thanks, Marcin
On Fri, 18 Dec 2020 04:36:18 +0100 Marcin Wojtas wrote: > czw., 17 gru 2020 o 15:54 <stefanc@marvell.com> napisał(a): > > > > From: Stefan Chulski <stefanc@marvell.com> > > > > Force link UP can be enabled by bootloader during tftpboot > > and breaks NFS support. > > Force link UP disabled during port init procedure. > > > > Fixes: f84bf386f395 ("net: mvpp2: initialize the GoP") > > Signed-off-by: Stefan Chulski <stefanc@marvell.com> > > I confirm the patch fixes issue - tested on CN913x-DB and RGMII port. > Other boards there I see no regression. > > Acked-by: Marcin Wojtas <mw@semihalf.com> Applied, thanks!
diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c index d2b0506..0ad3177 100644 --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c @@ -5479,7 +5479,7 @@ static int mvpp2_port_init(struct mvpp2_port *port) struct mvpp2 *priv = port->priv; struct mvpp2_txq_pcpu *txq_pcpu; unsigned int thread; - int queue, err; + int queue, err, val; /* Checks for hardware constraints */ if (port->first_rxq + port->nrxqs > @@ -5493,6 +5493,18 @@ static int mvpp2_port_init(struct mvpp2_port *port) mvpp2_egress_disable(port); mvpp2_port_disable(port); + if (mvpp2_is_xlg(port->phy_interface)) { + val = readl(port->base + MVPP22_XLG_CTRL0_REG); + val &= ~MVPP22_XLG_CTRL0_FORCE_LINK_PASS; + val |= MVPP22_XLG_CTRL0_FORCE_LINK_DOWN; + writel(val, port->base + MVPP22_XLG_CTRL0_REG); + } else { + val = readl(port->base + MVPP2_GMAC_AUTONEG_CONFIG); + val &= ~MVPP2_GMAC_FORCE_LINK_PASS; + val |= MVPP2_GMAC_FORCE_LINK_DOWN; + writel(val, port->base + MVPP2_GMAC_AUTONEG_CONFIG); + } + port->tx_time_coal = MVPP2_TXDONE_COAL_USEC; port->txqs = devm_kcalloc(dev, port->ntxqs, sizeof(*port->txqs),