Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp3993785ybl; Mon, 3 Feb 2020 10:27:02 -0800 (PST) X-Google-Smtp-Source: APXvYqx+Oo+FG9ZDTFfcZ17Q0lRiYyeDDSQJZcF9q2b3iy46akF/kvGJ6gSuFd4qHvouuZvt/7LC X-Received: by 2002:a54:468b:: with SMTP id k11mr255202oic.134.1580754421924; Mon, 03 Feb 2020 10:27:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580754421; cv=none; d=google.com; s=arc-20160816; b=h9SWlQ5lcMoVWPymyuKV+41CqV5Fej/H+NeltITNI/rVBD3jsteFrt8uoLmGNGd5Aj 1pZV/VmtaIpLOwvpHWLApD7VDxTkV5se+e7AR4d0HEp77rJ9xboOov4NwDGFSyqKNN9G RjcOTWkwDoNs6W5DTLVyCXNYcXK3fR6A0vPv1rhrJGM0pVmHqxICSdKdXEFeTEWjaHzd La8XAVTvBz2Yel6DjIC7Km3vUD1vowwTMmZlMlkvg21110wB55hQxiNJ8M2Kx2QywrVa hlfxvAMp9ysnmKqev7o5T7Yg+hr3diMEb3N04UOEYrXydxMy++H2My13L7wTgZGuyPU0 5qtw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=9ditsecXVDJx22pcFGWILaXseU/w85wfdjbTC0IDr70=; b=ug1o5y/EROA2cdwkIpMFObmLyYxvCIe6lhoyZbyY/T86j1HomVPiWWGYnlEF81r1gP BV7q8Ot4NKRZkYlvtxxawG2QI0TYfamvPZweFpjXuBmHBBeItSGB2kBE8OJzFdsZVyRH R1407SQo0VDJhsJVsVlAP9qye5oZ3fIX1T+OJT1bcjxc0Y4GEvkzCcEWL04uD7fYF2L+ /DxfwGcPL1neWGTCEwfb2muK9Zhg4iF50x9Eq1j+ERIwWUkKrCrX9cUHODxRmcXt7RWJ JowlWMwtuiXvt2rV+GjqzG3kmPu/J58F7AljCz0eW1I40RHdUczOyZ9dG8qkkOcLA83X DrcA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=SoSzqCv7; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w207si8352073oia.226.2020.02.03.10.26.49; Mon, 03 Feb 2020 10:27:01 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=SoSzqCv7; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729160AbgBCQV1 (ORCPT + 99 others); Mon, 3 Feb 2020 11:21:27 -0500 Received: from mail.kernel.org ([198.145.29.99]:33228 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728543AbgBCQVV (ORCPT ); Mon, 3 Feb 2020 11:21:21 -0500 Received: from localhost (unknown [104.132.45.99]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id C77D821582; Mon, 3 Feb 2020 16:21:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1580746881; bh=yIaFWaVMSt2y25mVFtAuWOnj2Pp75BFUPP6vIWIKgfw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SoSzqCv7UFueQTM0oEdMF7CFYqfdoR2jY5m2PUpJk0JfxoKTHFKHmmVDCVZ+9/SmT 6egURS54et1SobDlVGaOhe1UoDIXHbnwMbuvsB/fo8CIkT+3GTQRhkH9oB0i4emvIg 0+wqvieqDYTUbg1NI6IiirVU6IsGqb3MkduNmp9U= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Madalin Bucur , "David S. Miller" , Sasha Levin Subject: [PATCH 4.4 46/53] net/fsl: treat fsl,erratum-a011043 Date: Mon, 3 Feb 2020 16:19:38 +0000 Message-Id: <20200203161910.963995566@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200203161902.714326084@linuxfoundation.org> References: <20200203161902.714326084@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Madalin Bucur [ Upstream commit 1d3ca681b9d9575ccf696ebc2840a1ebb1fd4074 ] When fsl,erratum-a011043 is set, adjust for erratum A011043: MDIO reads to internal PCS registers may result in having the MDIO_CFG[MDIO_RD_ER] bit set, even when there is no error and read data (MDIO_DATA[MDIO_DATA]) is correct. Software may get false read error when reading internal PCS registers through MDIO. As a workaround, all internal MDIO accesses should ignore the MDIO_CFG[MDIO_RD_ER] bit. Signed-off-by: Madalin Bucur Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/ethernet/freescale/xgmac_mdio.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/freescale/xgmac_mdio.c b/drivers/net/ethernet/freescale/xgmac_mdio.c index 7b8fe866f6038..a15b4a97c172d 100644 --- a/drivers/net/ethernet/freescale/xgmac_mdio.c +++ b/drivers/net/ethernet/freescale/xgmac_mdio.c @@ -49,6 +49,7 @@ struct tgec_mdio_controller { struct mdio_fsl_priv { struct tgec_mdio_controller __iomem *mdio_base; bool is_little_endian; + bool has_a011043; }; static u32 xgmac_read32(void __iomem *regs, @@ -226,7 +227,8 @@ static int xgmac_mdio_read(struct mii_bus *bus, int phy_id, int regnum) return ret; /* Return all Fs if nothing was there */ - if (xgmac_read32(®s->mdio_stat, endian) & MDIO_STAT_RD_ER) { + if ((xgmac_read32(®s->mdio_stat, endian) & MDIO_STAT_RD_ER) && + !priv->has_a011043) { dev_err(&bus->dev, "Error while reading PHY%d reg at %d.%hhu\n", phy_id, dev_addr, regnum); @@ -277,6 +279,9 @@ static int xgmac_mdio_probe(struct platform_device *pdev) else priv->is_little_endian = false; + priv->has_a011043 = of_property_read_bool(pdev->dev.of_node, + "fsl,erratum-a011043"); + ret = of_mdiobus_register(bus, np); if (ret) { dev_err(&pdev->dev, "cannot register MDIO bus\n"); -- 2.20.1