Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp5709715pxb; Mon, 14 Feb 2022 05:57:13 -0800 (PST) X-Google-Smtp-Source: ABdhPJypVqX6tJ4be3OjKKND2WQi7CgqiNd6OFhg8CZMmfW/sHDst7ccr/mnuNSOPMK/Ut8Z2cJQ X-Received: by 2002:a17:90a:e2cb:: with SMTP id fr11mr14694158pjb.64.1644847032906; Mon, 14 Feb 2022 05:57:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644847032; cv=none; d=google.com; s=arc-20160816; b=HFKYyHRnnavTnRxI7BzSC00OXVuTpOwa1fpnREZNDczmSb7EaLzFvfG4w3WCP50n+9 rTm5foFYZLny/jfZmFsyKqIAcXdD9YOI+G2Y102eBAxNxdXkjxK+b2NzTfPUa2kiyd9j qLDgFzsi7WMyH7syaP2flFYGOgBAlREPwYuonDlRAbUB52Oh4XvSk2cR5uiNY55c9G45 8WbQRDvIMtMHi4YcilnzGdREh3qzR6+5TwnI6SyNE1UdyvRVdip3pONk6Si0Y5i95oeE y2c+31raayNdIMz2Y7LBW3+1EswovyM4XeCOJ0Ycfvi39i0T3EwUcckAOpvlSC/GZpyz 62FQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=GcuYirajicjs5tgZaGoLCDGF0skVHtaYHesuQbovTgo=; b=Rbffk3tg3IWWJRR+69Nq/2W/YFJzUYUtbzahd+HHCw/MgtuOcSPKfemSyxls99+g87 M8eFCAt+nIFNEYUzt3KgXSR9Wcl37RRqofpnTl3CfzCTwm7VoytWDkvRJTsx1X4fV6w/ yY7DyhXkeMQUgRCUD+2HM37FOfb8DeE5mDNpIC4qme95BLJFTCbWOFmQTeVE7k54T44Q olTBuEETy8qQFo2QTVX+b/xerJWxLF0AnDCEfdCMxiJmDjSNpeYHjDVtyQ8YJmR3Dsd5 emUHKaLe3AHe7BFRJ04uBFQgnekFp68+8oG0fkAegVqT6QX609srTeevO6ja4cxhC7Y7 wqwg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=sOPDz7Vo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id mu16si6854043pjb.158.2022.02.14.05.56.55; Mon, 14 Feb 2022 05:57:12 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=sOPDz7Vo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244664AbiBNJmU (ORCPT + 99 others); Mon, 14 Feb 2022 04:42:20 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:33992 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244846AbiBNJkx (ORCPT ); Mon, 14 Feb 2022 04:40:53 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E5DB366216; Mon, 14 Feb 2022 01:36:12 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 87DD8B80DA9; Mon, 14 Feb 2022 09:36:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9CA57C340E9; Mon, 14 Feb 2022 09:36:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1644831371; bh=k1TaVi0HcrrBQ6hj3lL7I115ytxDZhrtCbcpgAT0ME0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sOPDz7VotOnkwiM6GOPr91azONuoBDnT0DIW0u71wDYvfJXAhgh7prldbNIrCnXsr NmHUsNhP2u0mOG+LfbIquXdqXHD3hoNeSuNSrDvnG1tUOlrVZUUQ7r39MDRW9yhLhK r328SgxBhUCBbppFieQcufZedSKSKKORZd6YRKj8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Pavel Parkhomenko , Serge Semin , Andrew Lunn , "David S. Miller" Subject: [PATCH 5.4 07/71] net: phy: marvell: Fix MDI-x polarity setting in 88e1118-compatible PHYs Date: Mon, 14 Feb 2022 10:25:35 +0100 Message-Id: <20220214092452.281016686@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220214092452.020713240@linuxfoundation.org> References: <20220214092452.020713240@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.2 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Pavel Parkhomenko commit aec12836e7196e4d360b2cbf20cf7aa5139ad2ec upstream. When setting up autonegotiation for 88E1118R and compatible PHYs, a software reset of PHY is issued before setting up polarity. This is incorrect as changes of MDI Crossover Mode bits are disruptive to the normal operation and must be followed by a software reset to take effect. Let's patch m88e1118_config_aneg() to fix the issue mentioned before by invoking software reset of the PHY just after setting up MDI-x polarity. Fixes: 605f196efbf8 ("phy: Add support for Marvell 88E1118 PHY") Signed-off-by: Pavel Parkhomenko Reviewed-by: Serge Semin Suggested-by: Andrew Lunn Cc: stable@vger.kernel.org Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- drivers/net/phy/marvell.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) --- a/drivers/net/phy/marvell.c +++ b/drivers/net/phy/marvell.c @@ -888,16 +888,15 @@ static int m88e1118_config_aneg(struct p { int err; - err = genphy_soft_reset(phydev); + err = marvell_set_polarity(phydev, phydev->mdix_ctrl); if (err < 0) return err; - err = marvell_set_polarity(phydev, phydev->mdix_ctrl); + err = genphy_config_aneg(phydev); if (err < 0) return err; - err = genphy_config_aneg(phydev); - return 0; + return genphy_soft_reset(phydev); } static int m88e1118_config_init(struct phy_device *phydev)