From patchwork Fri Mar 13 13:39:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jose Abreu X-Patchwork-Id: 1254404 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=synopsys.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=synopsys.com header.i=@synopsys.com header.a=rsa-sha256 header.s=mail header.b=cLQ/sosc; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48f6Jw2FRfz9sSZ for ; Sat, 14 Mar 2020 00:40:32 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726803AbgCMNkM (ORCPT ); Fri, 13 Mar 2020 09:40:12 -0400 Received: from smtprelay-out1.synopsys.com ([149.117.87.133]:59794 "EHLO smtprelay-out1.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726683AbgCMNkL (ORCPT ); Fri, 13 Mar 2020 09:40:11 -0400 Received: from mailhost.synopsys.com (mdc-mailhost2.synopsys.com [10.225.0.210]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id 13428C0FAB; Fri, 13 Mar 2020 13:40:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1584106810; bh=E54LODA3Nkm7g3IJUjmzcbT3oFt34YuZSG/e5frmYec=; h=From:To:Cc:Subject:Date:In-Reply-To:References:In-Reply-To: References:From; b=cLQ/soscwtaub51bpfwizsfAwO7XVSBCHOXGVXUI/8JiqkP5X7tNa8VZg7E+b1LB8 PF4nkEsBBO4yQzq3pchbymYiEi36wB23HiQkk/IvRty1a2j6hCDVSIkyWsRcsudE72 Q9RtX9qzkd02px/ehn+BEm+07sUevi0sBHbEnfNg0i1DyVX08Zbf6ZNu+uV+CGwb/E GKdw240JQ7ro4pKv+26yFBu5VaPG7+r3b+PjV36qs+7mMEKa8+EzcfgjmBcdFRh5xy H+ktP/tQT8cZUZiheZeklfjLwtvmm3CyRxJVjE5w++ILaLEvJNzRZjDfkfn1bB6mrY GtulGVW0RodRg== Received: from de02dwia024.internal.synopsys.com (de02dwia024.internal.synopsys.com [10.225.19.81]) by mailhost.synopsys.com (Postfix) with ESMTP id 6DA05A005D; Fri, 13 Mar 2020 13:40:08 +0000 (UTC) From: Jose Abreu To: netdev@vger.kernel.org Cc: Joao Pinto , Jose Abreu , Andrew Lunn , Florian Fainelli , Heiner Kallweit , Russell King , "David S. Miller" , linux-kernel@vger.kernel.org Subject: [PATCH net-next 1/4] net: phy: xpcs: Clear latched value of RX/TX fault Date: Fri, 13 Mar 2020 14:39:40 +0100 Message-Id: <50f3dd2ab58fecfea1156aaf8dbfa99d0c7b36be.1584106347.git.Jose.Abreu@synopsys.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: References: In-Reply-To: References: Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When reading RX/TX fault register we may have latched values from Link down. Clear the latched value first and then read it again to make sure no old errors are flagged and that new errors are caught. Signed-off-by: Jose Abreu --- Cc: Jose Abreu Cc: Andrew Lunn Cc: Florian Fainelli Cc: Heiner Kallweit Cc: Russell King Cc: "David S. Miller" Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- drivers/net/phy/mdio-xpcs.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/phy/mdio-xpcs.c b/drivers/net/phy/mdio-xpcs.c index 973f588146f7..a4cbeecc6d42 100644 --- a/drivers/net/phy/mdio-xpcs.c +++ b/drivers/net/phy/mdio-xpcs.c @@ -185,6 +185,7 @@ static int xpcs_read_fault(struct mdio_xpcs_args *xpcs, return -EFAULT; } + xpcs_read(xpcs, MDIO_MMD_PCS, MDIO_STAT2); ret = xpcs_read(xpcs, MDIO_MMD_PCS, MDIO_STAT2); if (ret < 0) return ret; From patchwork Fri Mar 13 13:39:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jose Abreu X-Patchwork-Id: 1254405 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=synopsys.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=synopsys.com header.i=@synopsys.com header.a=rsa-sha256 header.s=mail header.b=WPrPBng8; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48f6Jx690zz9sRN for ; Sat, 14 Mar 2020 00:40:33 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726763AbgCMNkM (ORCPT ); Fri, 13 Mar 2020 09:40:12 -0400 Received: from smtprelay-out1.synopsys.com ([149.117.87.133]:59806 "EHLO smtprelay-out1.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726643AbgCMNkL (ORCPT ); Fri, 13 Mar 2020 09:40:11 -0400 Received: from mailhost.synopsys.com (mdc-mailhost2.synopsys.com [10.225.0.210]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id 13A03C0FAE; Fri, 13 Mar 2020 13:40:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1584106810; bh=eZaz7QmNn7/lhPC4PtgvXOXPurr9yFGp2AZ2kph2crc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:In-Reply-To: References:From; b=WPrPBng89voYhxyoCDKUY0yiu9/Gq+5XgjxauecN7jjl2PYLTgEsu4Cv24/FCahkB LUjIUMxwPo/KI72rL6Taf48IJefhLctgUDr50V7d5QrN/UrBnxEB3OoVkaPOwa0LBX 7W7uPIcFTcpaaJ6fncKMG3mw29nf3ffFdUT6yyAUcztOfrYVl98IghVUWbOQli0j30 iSDlPnsB1DlPxdRIIo9Po78wnDETSOBe5FXbe8DpTNpQjKAhRZYM/ly0opeRi+10Ig CdmaLgIcm4yCIOL1vcVmHu+ZEU8f3b4yCvAtn5BSOAM5wRtMEQMFqwS6iQgE02TJAr 4pSOb54PKPe/g== Received: from de02dwia024.internal.synopsys.com (de02dwia024.internal.synopsys.com [10.225.19.81]) by mailhost.synopsys.com (Postfix) with ESMTP id 7D2A8A0061; Fri, 13 Mar 2020 13:40:08 +0000 (UTC) From: Jose Abreu To: netdev@vger.kernel.org Cc: Joao Pinto , Jose Abreu , Andrew Lunn , Florian Fainelli , Heiner Kallweit , Russell King , "David S. Miller" , linux-kernel@vger.kernel.org Subject: [PATCH net-next 2/4] net: phy: xpcs: Return error upon RX/TX fault Date: Fri, 13 Mar 2020 14:39:41 +0100 Message-Id: <7918fdf6bbe6505a64e54ae360c59c905aa3fe1d.1584106347.git.Jose.Abreu@synopsys.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: References: In-Reply-To: References: Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org RX/TX fault status results in link errors. Return error upon these cases so that XPCS can be correctly resumed. Signed-off-by: Jose Abreu --- Cc: Jose Abreu Cc: Andrew Lunn Cc: Florian Fainelli Cc: Heiner Kallweit Cc: Russell King Cc: "David S. Miller" Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- drivers/net/phy/mdio-xpcs.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/net/phy/mdio-xpcs.c b/drivers/net/phy/mdio-xpcs.c index a4cbeecc6d42..23516397b982 100644 --- a/drivers/net/phy/mdio-xpcs.c +++ b/drivers/net/phy/mdio-xpcs.c @@ -190,10 +190,14 @@ static int xpcs_read_fault(struct mdio_xpcs_args *xpcs, if (ret < 0) return ret; - if (ret & MDIO_STAT2_RXFAULT) + if (ret & MDIO_STAT2_RXFAULT) { xpcs_warn(xpcs, state, "Receiver fault detected!\n"); - if (ret & MDIO_STAT2_TXFAULT) + return -EFAULT; + } + if (ret & MDIO_STAT2_TXFAULT) { xpcs_warn(xpcs, state, "Transmitter fault detected!\n"); + return -EFAULT; + } ret = xpcs_read_vendor(xpcs, MDIO_MMD_PCS, DW_VR_XS_PCS_DIG_STS); if (ret < 0) From patchwork Fri Mar 13 13:39:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jose Abreu X-Patchwork-Id: 1254403 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=synopsys.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=synopsys.com header.i=@synopsys.com header.a=rsa-sha256 header.s=mail header.b=ezSTBR35; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48f6Jq4cqQz9sSV for ; Sat, 14 Mar 2020 00:40:27 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726825AbgCMNkM (ORCPT ); Fri, 13 Mar 2020 09:40:12 -0400 Received: from smtprelay-out1.synopsys.com ([149.117.87.133]:59826 "EHLO smtprelay-out1.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726695AbgCMNkL (ORCPT ); Fri, 13 Mar 2020 09:40:11 -0400 Received: from mailhost.synopsys.com (mdc-mailhost2.synopsys.com [10.225.0.210]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id 194E1C0FB0; Fri, 13 Mar 2020 13:40:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1584106810; bh=rcAqQ1O33U21fdLUgojPBeEA9JnctLvnhRjalBTBl+k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:In-Reply-To: References:From; b=ezSTBR352SeEGsPvGI0WubGZdMMH5XD853Ubuzb7afYnuzVU6VrXVLmLMqJrXV5/u tOCaQe84PFjz3yoyqzuMYcOKU3wkiVggZ+QONvQbm6ZdI34cWF7gxcsEvOy5QEd01V o7BcPS51EzO9fxsfUUE4WXh0dLFmOWm4w3kqp/WggMEi/jV2O1cjDXUy10VlaflYDH sTmQ85f+dXXbFo7ZGZYeTG7DuF4qBCXJohhjPKIER5zyreZGYCmo7WQDXKVE3DJIE5 8pdeXdP/1Y+7hWqvHaK5IMW0FFzRKy1p3dk1Ch6r33bPFC7SNTShZI8Y0Z7QGePkIM 6F8wqropPUiag== Received: from de02dwia024.internal.synopsys.com (de02dwia024.internal.synopsys.com [10.225.19.81]) by mailhost.synopsys.com (Postfix) with ESMTP id 8D0ACA0064; Fri, 13 Mar 2020 13:40:08 +0000 (UTC) From: Jose Abreu To: netdev@vger.kernel.org Cc: Joao Pinto , Jose Abreu , Andrew Lunn , Florian Fainelli , Heiner Kallweit , Russell King , "David S. Miller" , linux-kernel@vger.kernel.org Subject: [PATCH net-next 3/4] net: phy: xpcs: Return error when 10GKR link errors are found Date: Fri, 13 Mar 2020 14:39:42 +0100 Message-Id: <314512a6938e6472237b55753b04ec83177111b2.1584106347.git.Jose.Abreu@synopsys.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: References: In-Reply-To: References: Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org For 10GKR rate, when link errors are found we need to return fault status so that XPCS is correctly resumed. Signed-off-by: Jose Abreu --- Cc: Jose Abreu Cc: Andrew Lunn Cc: Florian Fainelli Cc: Heiner Kallweit Cc: Russell King Cc: "David S. Miller" Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- drivers/net/phy/mdio-xpcs.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/phy/mdio-xpcs.c b/drivers/net/phy/mdio-xpcs.c index 23516397b982..83ced7180a44 100644 --- a/drivers/net/phy/mdio-xpcs.c +++ b/drivers/net/phy/mdio-xpcs.c @@ -219,8 +219,10 @@ static int xpcs_read_fault(struct mdio_xpcs_args *xpcs, if (ret < 0) return ret; - if (ret & MDIO_PCS_10GBRT_STAT2_ERR) + if (ret & MDIO_PCS_10GBRT_STAT2_ERR) { xpcs_warn(xpcs, state, "Link has errors!\n"); + return -EFAULT; + } return 0; } From patchwork Fri Mar 13 13:39:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jose Abreu X-Patchwork-Id: 1254402 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=synopsys.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=synopsys.com header.i=@synopsys.com header.a=rsa-sha256 header.s=mail header.b=Pzqo3QBN; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48f6JZ1qYvz9sQx for ; Sat, 14 Mar 2020 00:40:13 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726852AbgCMNkN (ORCPT ); Fri, 13 Mar 2020 09:40:13 -0400 Received: from smtprelay-out1.synopsys.com ([149.117.87.133]:59800 "EHLO smtprelay-out1.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726495AbgCMNkL (ORCPT ); Fri, 13 Mar 2020 09:40:11 -0400 Received: from mailhost.synopsys.com (mdc-mailhost2.synopsys.com [10.225.0.210]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id 16DD1C0FAF; Fri, 13 Mar 2020 13:40:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1584106810; bh=ST+X4UnqMFXVp07BI90fmUYVsZvY74GXZgG0KxD/zzQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:In-Reply-To: References:From; b=Pzqo3QBNM0LemVYxpUtRn2N/8EqcdycybF+g2FeQZyJOc6Pkjg94j8E2di9eawu6n rWpsts3DEYiUT6i9lsB2D7zBzcHTGaRTcV95Knvxe3Zjv7CBJTl27oWiNZTUL2n5xG hoIgTe5gZRjd72BdUY1mPqkxLGYK3AI9Iv8Nxx3a7HkUTEpTiFW7OhVVgSnMmjKrZA 0TkFpPTDywkPfwSCcDFWdLNHj4Q3Jez67fW8uYEBlwUMKAcFOp0wMS08nUDocWPZEi czBs235OhaAbK+E59Ja/JP7oUybKnJMWy9H0WhFeBvCTzn88QETWq/8Ilc3ktK+7f/ KDaTAUgarqdqQ== Received: from de02dwia024.internal.synopsys.com (de02dwia024.internal.synopsys.com [10.225.19.81]) by mailhost.synopsys.com (Postfix) with ESMTP id 9D85BA0067; Fri, 13 Mar 2020 13:40:08 +0000 (UTC) From: Jose Abreu To: netdev@vger.kernel.org Cc: Joao Pinto , Jose Abreu , Andrew Lunn , Florian Fainelli , Heiner Kallweit , Russell King , "David S. Miller" , linux-kernel@vger.kernel.org Subject: [PATCH net-next 4/4] net: phy: xpcs: Reset XPCS upon probe Date: Fri, 13 Mar 2020 14:39:43 +0100 Message-Id: <422e8e739c9a2a2e64ac5eac44436e20f2a03174.1584106347.git.Jose.Abreu@synopsys.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: References: In-Reply-To: References: Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Reset the XPCS upon probe stage so that we start it from well known state. Signed-off-by: Jose Abreu --- Cc: Jose Abreu Cc: Andrew Lunn Cc: Florian Fainelli Cc: Heiner Kallweit Cc: Russell King Cc: "David S. Miller" Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- drivers/net/phy/mdio-xpcs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/phy/mdio-xpcs.c b/drivers/net/phy/mdio-xpcs.c index 83ced7180a44..7960dc52c4bd 100644 --- a/drivers/net/phy/mdio-xpcs.c +++ b/drivers/net/phy/mdio-xpcs.c @@ -595,7 +595,7 @@ static int xpcs_probe(struct mdio_xpcs_args *xpcs, phy_interface_t interface) match = entry; if (xpcs_check_features(xpcs, match, interface)) - return 0; + return xpcs_soft_reset(xpcs, MDIO_MMD_PCS); } }