From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stas Sergeev Subject: Re: [PATCH 4.1 11/56] mvneta: add forgotten initialization of autonegotiation bits Date: Wed, 8 Jul 2015 20:10:46 +0300 Message-ID: <559D5996.5080506@list.ru> References: <20150708073237.780280770@linuxfoundation.org> <20150708073238.389781888@linuxfoundation.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: stable@vger.kernel.org, Arnaud Ebalard , Thomas Petazzoni , Florian Fainelli , netdev@vger.kernel.org, Stas Sergeev , "David S. Miller" , Sebastien Rannou To: Greg Kroah-Hartman , linux-kernel@vger.kernel.org Return-path: In-Reply-To: <20150708073238.389781888@linuxfoundation.org> Sender: stable-owner@vger.kernel.org List-Id: netdev.vger.kernel.org 08.07.2015 10:35, Greg Kroah-Hartman =D0=BF=D0=B8=D1=88=D0=B5=D1=82: > 4.1-stable review patch. If anyone has any objections, please let me= know. > > ------------------ > > From: Stas Sergeev > > [ Upstream commit 538761b794c1542f1c6e31eadd9d7aae118889f7 ] > > The commit 898b2970e2c9 ("mvneta: implement SGMII-based in-band link = state > signaling") > changed mvneta_adjust_link() so that it does not clear the auto-negot= iation > bits in MVNETA_GMAC_AUTONEG_CONFIG register. This was necessary for > auto-negotiation mode to work. > Unfortunately I haven't checked if these bits are ever initialized. > It appears they are not. > This patch adds the missing initialization of the auto-negotiation bi= ts > in the MVNETA_GMAC_AUTONEG_CONFIG register. > It fixes the following regression: > https://www.mail-archive.com/netdev@vger.kernel.org/msg67928.html > > Since the patch was tested to fix a regression, it should be applied = to > stable tree. > > Tested-by: Arnaud Ebalard > > CC: Thomas Petazzoni > CC: Florian Fainelli > CC: netdev@vger.kernel.org > CC: linux-kernel@vger.kernel.org > CC: stable@vger.kernel.org > > Signed-off-by: Stas Sergeev > Signed-off-by: David S. Miller > Signed-off-by: Greg Kroah-Hartman > --- > drivers/net/ethernet/marvell/mvneta.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > --- a/drivers/net/ethernet/marvell/mvneta.c > +++ b/drivers/net/ethernet/marvell/mvneta.c > @@ -1013,6 +1013,12 @@ static void mvneta_defaults_set(struct m > val =3D mvreg_read(pp, MVNETA_GMAC_CLOCK_DIVIDER); > val |=3D MVNETA_GMAC_1MS_CLOCK_ENABLE; > mvreg_write(pp, MVNETA_GMAC_CLOCK_DIVIDER, val); > + } else { > + val =3D mvreg_read(pp, MVNETA_GMAC_AUTONEG_CONFIG); > + val &=3D ~(MVNETA_GMAC_INBAND_AN_ENABLE | > + MVNETA_GMAC_AN_SPEED_EN | > + MVNETA_GMAC_AN_DUPLEX_EN); > + mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, val); > } > =20 > mvneta_set_ucast_table(pp, -1); Hi Greg. Another problem was reported: https://lkml.org/lkml/2015/7/8/865 So, while the above patch is correct and fixes what it should, the original patch has more problems to deal with. Maybe for stable it would be better to just revert the whole thing? I guess for stable I'll be posting the reverts instead of the above fix.