Hi, Stas Sergeev <s...@list.ru> writes:
> 17.06.2015 00:44, Arnaud Ebalard пишет: >> Hi, >> >> On Mirabox, the second ethernet interface is no more usable on 4.1-rc* >> series (no packets coming out of the interface, when using dhclient for >> instance). It works as expected on 4.0. >> >> Bisecting the issue, I ended up on 898b2970e2c9 ("mvneta: implement >> SGMII-based in-band link state signaling"). Reverting that commit gives >> me back the second interface. >> >> Then, I also tested on a NETGEAR ReadyNAS 104, which is also powered by >> the same SoC (Armada 370) and also has two (mvneta-supported) ethernet >> interfaces. With an unmodified 4.1-rc8, only one of the two interfaces >> is available. Reverting 898b2970e2c9 makes both usable again. >> >> FWIW, mirabox and RN104 ethernet interfaces use RGMII. > Hi, hope someone who can reproduce the problem, > can provide a better help. > I looked into a patch, and it seems most things are done > under "if (pp->use_inband_status)", which is not your case. Looking at the patch, yes. Both platforms I have which encounter the problem use RGMII and "if (pp->use_inband_status)" changes are for SGMII. > But it seems the patch can still change a couple of flags > for you, and maybe that makes a problem? AFAICT, autoneg config register (MVNETA_GMAC_AUTONEG_CONFIG) is modified. And the logic when link status changes is also modified: - MVNETA_GMAC_FORCE_LINK_DOWN flag cleared when there is carrier. It was previously set when that event occured. - The link down event logic is also modified. > > Please try the attached (absolutely untested) patch. > diff --git a/drivers/net/ethernet/marvell/mvneta.c > b/drivers/net/ethernet/marvell/mvneta.c > index ce5f7f9..74176ec 100644 > --- a/drivers/net/ethernet/marvell/mvneta.c > +++ b/drivers/net/ethernet/marvell/mvneta.c > @@ -1013,6 +1013,12 @@ static void mvneta_defaults_set(struct mvneta_port *pp) > val = mvreg_read(pp, MVNETA_GMAC_CLOCK_DIVIDER); > val |= MVNETA_GMAC_1MS_CLOCK_ENABLE; > mvreg_write(pp, MVNETA_GMAC_CLOCK_DIVIDER, val); > + } else { > + val = mvreg_read(pp, MVNETA_GMAC_AUTONEG_CONFIG); > + val &= ~(MVNETA_GMAC_INBAND_AN_ENABLE | > + MVNETA_GMAC_AN_SPEED_EN | > + MVNETA_GMAC_AN_DUPLEX_EN); > + mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, val); > } > > mvneta_set_ucast_table(pp, -1); *Second interface is back w/ that patch applied*. Cannot tell if it is a proper fix, though or a valid workaround. Thanks for your feedback. a+ -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html