From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CEEFEC9831E for ; Thu, 24 Sep 2026 23:03:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To: Cc:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=TRQDcfp704v7y9W9giZQnIbIP3wKdXktBztj3wl4XLo=; b=I6+NCC5Z4H4ukoHBjPd5Y3e31z f6MavuooIgAw7njw38YHy+4D2nAPFdZ8JhMndkGRssiIa3MoL8v4MDX8PX2GB64ef0QD5WB76Qh1X emwU8YF3+P2wIo07nsekEbj4bQDmPh+e2fMsvyhE8vap08bkR4TclQC+DNDQ3E4kpBEkPPaFYuRMY wcMHdhZCU8fNiKryel68GitTjTvo0sW1tdh45/cHH1yb3dXVZPoVwWKGWyQ1CeExMtIeEfqroF3ha 0O/tiVScE2MwlCEbGWm2oxnwKXxja/LQ8s7oJ3uRzehBjINYJRThSHXm0GixcsjqV/h/sThHkHsF7 g+8D8DsQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1x9sT9-0000000CM4P-40MX; Thu, 24 Sep 2026 23:03:11 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1x9sSs-0000000CLic-3YA4 for linux-arm-kernel@bombadil.infradead.org; Thu, 24 Sep 2026 23:02:54 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:MIME-Version :References:In-Reply-To:Message-ID:Date:Subject:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description; bh=TRQDcfp704v7y9W9giZQnIbIP3wKdXktBztj3wl4XLo=; b=HiDeglErEi2dGl52QLTvkdh9r4 hq2862RIdduNfx0ADfT9gwZDOEuNDzdNmYd9YLwvVmn0nuf1KekY1ueRjyPBCC1KL+aKS6JPlZulI CMGKPlp2NyYVd03xQwjZuTOhAN6Sp5e5bBT1jDkKBbj8fvunNRi7/uDtFMPHDuTQ04BnFqCS7RlXC ixfBGqVDHN5LFAfFTMnx05b8D50Gy5clYZdyXdbjDXaTXdbPHw7QkSU+YQy/B16qjG4+bIp3jATyZ 59Y1MGPVuvj7QGL+UfPpnEyu9v/Mjdam9mxkxcFRmTPUhl8lhncctUCPk7PUsAalkl5eA7RkEdAwX Ljh9azFA==; Received: from mail-wm2-x11.google.com ([2a00:1450:4864:31::11]) by desiato.infradead.org with esmtps (Exim 4.99.2 #2 (Red Hat Linux)) id 1x9sSo-0000000GURm-1PRq for linux-arm-kernel@lists.infradead.org; Thu, 24 Sep 2026 23:02:53 +0000 Received: by mail-wm2-x11.google.com with SMTP id 5b1f17b1804b1-49e6598dd44so1757365e9.1 for ; Thu, 24 Sep 2026 16:02:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1790290969; x=1790895769; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=TRQDcfp704v7y9W9giZQnIbIP3wKdXktBztj3wl4XLo=; b=RzrsK8VZrbElQ9jclx0UYDxvtJxNhO6zmcJr4+koHaObuYQNR1AKTzy4OI+3u2ARcf ZA1U81/1AjPCKL2vwpvsDTC/sH6LKZTHTsrEKt/vz+IB3pgDX0lnicVl5VI8OBfYwsUB BMo3aVSIzthx41IajZ/rEzinBAFynCydMIaYnIEAxqqX+c4ezzTsMOpAOAqrXhQJ60na L1uk4NT1AQejeWqZnmPe+L7pyClECLoGZDTkbbdWme5MhHIXyhvQdgTeWKYgsLxN+kAk yt0B+QmoYruzXZ3diFSElINeVT98mfmvOnRry9W8ZZx60D+MZP4kHagd91Gj0nq18Mfi L6DA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790290969; x=1790895769; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=TRQDcfp704v7y9W9giZQnIbIP3wKdXktBztj3wl4XLo=; b=DJialGMO+fUpc0Qn2lHllHX51mSc4iDW+xO3Q+9vq/UOqSq6rAIWc+vKtbzfGJoWEl 3xm/YndhInW6AwLoZ0zVYC4AuaweO6FbBkJoBD8sgW9E41E7XDcC5Sn88/lC0Frq4OPI QaqATHRkq6ESqVAP5dt3cMxDZy+qKo0WMK6spNWoWqn8JwXBTU3UgrnQwtLo76B9nAdd /cyiC4P5cVff1P2SxTxZVE38ysx9AXe986rtb+8kUFGD/Vf3ysQtY4A+hFLkrxKTvfZz NbMRISDDRmxHLs0tb1ytgIDza4GWfEAyNPeqVlOBg5mGhkFoob+7206PTjMVdF8QU5DE eAVw== X-Forwarded-Encrypted: i=1; AKwUvBzRhEEJPNvc+SfmU2TaWbuInM2HOGSDFluYrNbjlHFuytHHYy5A3e6hMro75lb8Vn1cc4ddaWm91ID3W4i6UxRG@lists.infradead.org X-Gm-Message-State: AFuF++nuOEggTZSVyI1Efapvt1wNh0thsHiFS8KhJfmD++6OyPEp5CpB vx2sUFa3dBTGZ7nh1O9mmD2lHxg0oTF5kMCzRVqvzHMQUQTKdwoohW6K X-Gm-Gg: AYBFou2CPOC43s9VKg9z99VhAH7/a+1MBxAdVnnEAytTRgo/4ZJ3SS/07+2O+GKvSs6 Bx9PfodHholyUAi1uIuKXhWSh6IewTzL/pn2nnVKoV0y+02lKt2jX3rPKOTi77J3x0r4d0qdBLr J9jNoizoRxnTBzMP8yjc9691DGXRmFagXt918KlzoMQhYAXSYDBnfCpP3Px1YZFULrvpVsoBFkC 4uSjTYCm+C7tXpVMXQZosQ+QrQ3sOMHBSmQrJIBrdLmOjChQWapqdMIFcKaiUrJWWD1I7XWhCvI oBwu9nh3C7cQVS9ixRWAtS8N1AyaReu1d4XLGeMlkmWlFP3S9GMrz+3D8ovrUNewO3bE5x2vmcA y6pHlJBKhDtk4CmDAT0UieWeMcBwz1/u+O4dN4B9tlR5rBz1C18LN3w9SpN0kOA0gb2sX7KwlQt mpnHViPeZK2tSZ2gy3OyAxiuwVTGYDvp+R5jpCP9rvi0sgRzMOv+R06Fdov8+7Ma8E9mFX4Sm1S 3XDWM0s+NVPwTo5YuU6lkZwGr6r3txONxnoTMa+f4ORxMK5cNG71XQqVvL11MEz X-Received: by 2002:a05:600c:4f4f:b0:49e:69f8:e846 with SMTP id 5b1f17b1804b1-49fe66cbb70mr75087625e9.9.1790290968884; Thu, 24 Sep 2026 16:02:48 -0700 (PDT) Received: from Ansuel-XPS24.localdomain (host-79-29-83-136.business.telecomitalia.it. [79.29.83.136]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-49ff06cbe57sm12288175e9.13.2026.09.24.16.02.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Sep 2026 16:02:48 -0700 (PDT) From: Christian Marangi To: Maxime Chevallier , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Simon Horman , Jonathan Corbet , Shuah Khan , Randy Dunlap , Christian Marangi , Lorenzo Bianconi , Heiner Kallweit , Russell King , Philipp Zabel , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, llvm@lists.linux.dev Subject: [PATCH net-next v17 09/12] net: phylink: add .pcs_link_down PCS OP Date: Fri, 25 Sep 2026 01:01:50 +0200 Message-ID: <20260924230211.11519-10-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260924230211.11519-1-ansuelsmth@gmail.com> References: <20260924230211.11519-1-ansuelsmth@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260925_000252_301604_8F1DCC4A X-CRM114-Status: GOOD ( 15.72 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Permit for PCS driver to define specific operation to tear down the link between the MAC and the PCS. This might be needed for some PCS that reset counter or require special reset to correctly work if the link needs to be restored later. On phylink_link_down() call, the additional phylink_pcs_link_down() will be called after .mac_link_down to tear down the link. PCS driver will need to define .pcs_link_down to make use of this. Signed-off-by: Christian Marangi Reviewed-by: Maxime Chevallier --- drivers/net/phy/phylink.c | 9 +++++++++ include/linux/phylink.h | 12 ++++++++++++ 2 files changed, 21 insertions(+) diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c index b87655a09df8..fab55e6ed507 100644 --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c @@ -989,6 +989,12 @@ static void phylink_pcs_link_up(struct phylink_pcs *pcs, unsigned int neg_mode, pcs->ops->pcs_link_up(pcs, neg_mode, interface, speed, duplex); } +static void phylink_pcs_link_down(struct phylink_pcs *pcs) +{ + if (pcs && pcs->ops->pcs_link_down) + pcs->ops->pcs_link_down(pcs); +} + static void phylink_pcs_disable_eee(struct phylink_pcs *pcs) { if (pcs && pcs->ops->pcs_disable_eee) @@ -1701,6 +1707,9 @@ static void phylink_link_down(struct phylink *pl) pl->mac_ops->mac_link_down(pl->config, pl->act_link_an_mode, pl->cur_interface); + + phylink_pcs_link_down(pl->pcs); + phylink_info(pl, "Link is Down\n"); } diff --git a/include/linux/phylink.h b/include/linux/phylink.h index f06eb8b6f94a..f03c1dc0a4a1 100644 --- a/include/linux/phylink.h +++ b/include/linux/phylink.h @@ -528,6 +528,7 @@ struct phylink_pcs { * @pcs_an_restart: restart 802.3z BaseX autonegotiation. * @pcs_link_up: program the PCS for the resolved link configuration * (where necessary). + * @pcs_link_down: tear down link between MAC and PCS. * @pcs_disable_eee: optional notification to PCS that EEE has been disabled * at the MAC. * @pcs_enable_eee: optional notification to PCS that EEE will be enabled at @@ -555,6 +556,7 @@ struct phylink_pcs_ops { void (*pcs_an_restart)(struct phylink_pcs *pcs); void (*pcs_link_up)(struct phylink_pcs *pcs, unsigned int neg_mode, phy_interface_t interface, int speed, int duplex); + void (*pcs_link_down)(struct phylink_pcs *pcs); void (*pcs_disable_eee)(struct phylink_pcs *pcs); void (*pcs_enable_eee)(struct phylink_pcs *pcs); int (*pcs_pre_init)(struct phylink_pcs *pcs); @@ -690,6 +692,16 @@ void pcs_an_restart(struct phylink_pcs *pcs); void pcs_link_up(struct phylink_pcs *pcs, unsigned int neg_mode, phy_interface_t interface, int speed, int duplex); +/** + * pcs_link_down() - tear down link between MAC and PCS + * @pcs: a pointer to a &struct phylink_pcs. + * + * This call will be made just after mac_link_down() to inform the PCS the + * link has gone down. PCS should be configured to stop processing packets + * for transmission and reception. + */ +void pcs_link_down(struct phylink_pcs *pcs); + /** * pcs_disable_eee() - Disable EEE at the PCS * @pcs: a pointer to a &struct phylink_pcs -- 2.55.0