On Wed, Jun 24, 2020 at 09:00:45AM +0200, Sascha Hauer wrote: > When writing the serdes configuration register was moved to > mvneta_config_interface() the whole code block was removed from > mvneta_port_power_up() in the assumption that its only purpose was to > write the serdes configuration register. As mentioned by Russell King > its purpose was also to check for valid interface modes early so that > later in the driver we do not have to care for unexpected interface > modes. > Add back the test to let the driver bail out early on unhandled > interface modes. > > Signed-off-by: Sascha Hauer <s.ha...@pengutronix.de>
Fixes: b4748553f53f ("net: ethernet: mvneta: Fix Serdes configuration for SoCs without comphy") Reviewed-by: Russell King <rmk+ker...@armlinux.org.uk> Thanks. > --- > drivers/net/ethernet/marvell/mvneta.c | 22 +++++++++++++++++++--- > 1 file changed, 19 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/ethernet/marvell/mvneta.c > b/drivers/net/ethernet/marvell/mvneta.c > index c4552f868157c..c639e3a293024 100644 > --- a/drivers/net/ethernet/marvell/mvneta.c > +++ b/drivers/net/ethernet/marvell/mvneta.c > @@ -5009,10 +5009,18 @@ static void mvneta_conf_mbus_windows(struct > mvneta_port *pp, > } > > /* Power up the port */ > -static void mvneta_port_power_up(struct mvneta_port *pp, int phy_mode) > +static int mvneta_port_power_up(struct mvneta_port *pp, int phy_mode) > { > /* MAC Cause register should be cleared */ > mvreg_write(pp, MVNETA_UNIT_INTR_CAUSE, 0); > + > + if (phy_mode != PHY_INTERFACE_MODE_QSGMII && > + phy_mode != PHY_INTERFACE_MODE_SGMII && > + !phy_interface_mode_is_8023z(phy_mode) && > + !phy_interface_mode_is_rgmii(phy_mode)) > + return -EINVAL; > + > + return 0; > } > > /* Device initialization routine */ > @@ -5198,7 +5206,11 @@ static int mvneta_probe(struct platform_device *pdev) > if (err < 0) > goto err_netdev; > > - mvneta_port_power_up(pp, phy_mode); > + err = mvneta_port_power_up(pp, pp->phy_interface); > + if (err < 0) { > + dev_err(&pdev->dev, "can't power up port\n"); > + return err; > + } > > /* Armada3700 network controller does not support per-cpu > * operation, so only single NAPI should be initialized. > @@ -5352,7 +5364,11 @@ static int mvneta_resume(struct device *device) > } > } > mvneta_defaults_set(pp); > - mvneta_port_power_up(pp, pp->phy_interface); > + err = mvneta_port_power_up(pp, pp->phy_interface); > + if (err < 0) { > + dev_err(device, "can't power up port\n"); > + return err; > + } > > netif_device_attach(dev); > > -- > 2.27.0 -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!