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 AD2E7C2BD09 for ; Wed, 3 Jul 2024 15:15:59 +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:Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=XzdqD08lFf53oyK9vmUi+x+cIWzFs9/i9/9XJHc6tus=; b=3PM0w+PF+mVbVxDrXYv8ns8Lju CcmXs74ztE6UkfePr4L/8MvMe6hHvcULqY2Pb0MSziOcvzxrIij+2Ad3XkfMWW+7Qdt8MaCu1RS1f JipKonak8CCM8bV7PUzmJDQ0QFb4wUVEZu/AumAbwxP5mCpmBDWM7kzkiKxvSI5w8pTHSYdkw5X4z z+wrLbSOywYaxAWyQCY3RNLYb5Uim32GfsFtpvWFU6Hf71d8raJC4dbSnI5AfouxurOGjcOKIhwla 7Uhe4ZEcIKIIv6X51nwBC/hfZktDhZjpDJFVT9lG+LW4/egCaD/fnlNJKh7wSV4Hrmpf0XtdaTuQm AiI3rxYA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sP1i2-0000000Ae6k-0yTg; Wed, 03 Jul 2024 15:15:50 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sP0ef-0000000APTY-1of7 for linux-arm-kernel@bombadil.infradead.org; Wed, 03 Jul 2024 14:08:17 +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 :Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:In-Reply-To:References; bh=XzdqD08lFf53oyK9vmUi+x+cIWzFs9/i9/9XJHc6tus=; b=riKUQA8ZQkuDr//6GalrTnUzgB e18hTk858G75td61rWKuo+AhNTqHVNKgsNQrQ2QjO4rVUShhKe6LtCeKUD04qfd2HWqAhXrOwKJbm i3e1NxfqpQMOofTAPnU4fbwYx2y1dUh2QBn31+Bufn/ELCDrzfzkxUQBgzgA0dv+jIIhfvYTv87N6 5FHGopRPGPuMruVHdSgn9UfIF5/NtCLjUzUME3ExZYOqGthFcx+0VjcxM+ZYTJCr8z/QQvoF0QBkd V2zHWtGhB/RN5hW4QCfZLr3QDnyOupfBu3r8P/gLEYFE09mpaZDUGc0O77+NBAwBM7h1a1qvhGGgT O6nJGs0Q==; Received: from relay4-d.mail.gandi.net ([2001:4b98:dc4:8::224]) by desiato.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sP0eb-0000000A2xe-2zMN for linux-arm-kernel@lists.infradead.org; Wed, 03 Jul 2024 14:08:16 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id E3112E0006; Wed, 3 Jul 2024 14:08:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1720015690; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=XzdqD08lFf53oyK9vmUi+x+cIWzFs9/i9/9XJHc6tus=; b=SovmIJSUUV61JZUINjY+AWZZEF22f18Zhh9/RHEzpZyUd1/Djy4n8zqKMTZ8CIy2c6bb9c wFpNqp0oJnQW4nFg2QmOZ9BSBbmKRqATVMpjmiURNPSO8c5gDg58/k75sG6AMbfJuQtrOh eR9MQAZBEua9FJIyG13IFzn+7bXa9LzPKE5meZF79IQ+v7I/jjQ2NC8tDiMzyw1jADXTsb dN1qZD1ZbHDV/Kv3gyp21gS0m74UHCVHhsRAfZ3vm/69ep/Y+XehBXAAyNjAgP3ZfhGQ3e eShaQlWZ4LBKNOaL+cujBURgMYDZSf4IpUs1NutuvtovSUd49xCcHE76g6RbwA== From: Maxime Chevallier To: davem@davemloft.net Cc: Maxime Chevallier , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, thomas.petazzoni@bootlin.com, Andrew Lunn , Jakub Kicinski , Eric Dumazet , Paolo Abeni , Russell King , linux-arm-kernel@lists.infradead.org, Christophe Leroy , Herve Codina , Florian Fainelli , Heiner Kallweit , Vladimir Oltean , =?UTF-8?q?K=C3=B6ry=20Maincent?= , Jesse Brandeburg , =?UTF-8?q?Marek=20Beh=C3=BAn?= , Piergiorgio Beruto , Oleksij Rempel , =?UTF-8?q?Nicol=C3=B2=20Veronese?= , Simon Horman , mwojtas@chromium.org, Nathan Chancellor , Antoine Tenart , Marc Kleine-Budde , Dan Carpenter Subject: [PATCH net-next v15 00/14] Introduce PHY listing and link_topology tracking Date: Wed, 3 Jul 2024 16:07:50 +0200 Message-ID: <20240703140806.271938-1-maxime.chevallier@bootlin.com> X-Mailer: git-send-email 2.45.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-GND-Sasl: maxime.chevallier@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240703_150814_190334_8ED729D4 X-CRM114-Status: GOOD ( 16.24 ) 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 Hello everyone, This is V15 of the phy_link_topology series, aiming at improving support for multiple PHYs being attached to the same MAC. The main change in V15 is the introduction of patch 12, that drops a non-needed check on the genl_info parameter passed on the ethnl ops for strset. This extra check shouldn't be needed as the genl_info shouldn't be NULL, but it tricks smatch into thinking it can, thus generating some warnings in patch 13. Thanks Simon and Dan for the report. All other patches are left unchanged from V14, besides a net-next rebase. As a remainder, here's what the PHY listings would look like : - eth0 has a 88x3310 acting as media converter, and an SFP module with an embedded 88e1111 PHY - eth2 has a 88e1510 PHY # ethtool --show-phys * PHY for eth0: PHY index: 1 Driver name: mv88x3310 PHY device name: f212a600.mdio-mii:00 Downstream SFP bus name: sfp-eth0 PHY id: 0 Upstream type: MAC PHY for eth0: PHY index: 2 Driver name: Marvell 88E1111 PHY device name: i2c:sfp-eth0:16 PHY id: 21040322 Upstream type: PHY Upstream PHY index: 1 Upstream SFP name: sfp-eth0 PHY for eth2: PHY index: 1 Driver name: Marvell 88E1510 PHY device name: f212a200.mdio-mii:00 PHY id: 21040593 Upstream type: MAC Ethtool patches : https://github.com/minimaxwell/ethtool/tree/mc/topo-v14 Link to V14: https://lore.kernel.org/netdev/20240701131801.1227740-1-maxime.chevallier@bootlin.com/ Link to V13: https://lore.kernel.org/netdev/20240607071836.911403-1-maxime.chevallier@bootlin.com/ Link to v12: https://lore.kernel.org/netdev/20240605124920.720690-1-maxime.chevallier@bootlin.com/ Link to v11: https://lore.kernel.org/netdev/20240404093004.2552221-1-maxime.chevallier@bootlin.com/ Link to V10: https://lore.kernel.org/netdev/20240304151011.1610175-1-maxime.chevallier@bootlin.com/ Link to V9: https://lore.kernel.org/netdev/20240228114728.51861-1-maxime.chevallier@bootlin.com/ Link to V8: https://lore.kernel.org/netdev/20240220184217.3689988-1-maxime.chevallier@bootlin.com/ Link to V7: https://lore.kernel.org/netdev/20240213150431.1796171-1-maxime.chevallier@bootlin.com/ Link to V6: https://lore.kernel.org/netdev/20240126183851.2081418-1-maxime.chevallier@bootlin.com/ Link to V5: https://lore.kernel.org/netdev/20231221180047.1924733-1-maxime.chevallier@bootlin.com/ Link to V4: https://lore.kernel.org/netdev/20231215171237.1152563-1-maxime.chevallier@bootlin.com/ Link to V3: https://lore.kernel.org/netdev/20231201163704.1306431-1-maxime.chevallier@bootlin.com/ Link to V2: https://lore.kernel.org/netdev/20231117162323.626979-1-maxime.chevallier@bootlin.com/ Link to V1: https://lore.kernel.org/netdev/20230907092407.647139-1-maxime.chevallier@bootlin.com/ More discussions on specific issues that happened in 6.9-rc: https://lore.kernel.org/netdev/20240412104615.3779632-1-maxime.chevallier@bootlin.com/ https://lore.kernel.org/netdev/20240429131008.439231-1-maxime.chevallier@bootlin.com/ https://lore.kernel.org/netdev/20240507102822.2023826-1-maxime.chevallier@bootlin.com/ Maxime Chevallier (14): net: phy: Introduce ethernet link topology representation net: sfp: pass the phy_device when disconnecting an sfp module's PHY net: phy: add helpers to handle sfp phy connect/disconnect net: sfp: Add helper to return the SFP bus name net: ethtool: Allow passing a phy index for some commands netlink: specs: add phy-index as a header parameter net: ethtool: Introduce a command to list PHYs on an interface netlink: specs: add ethnl PHY_GET command set net: ethtool: plca: Target the command to the requested PHY net: ethtool: pse-pd: Target the command to the requested PHY net: ethtool: cable-test: Target the command to the requested PHY net: ethtool: strset: Remove unnecessary check on genl_info net: ethtool: strset: Allow querying phy stats by index Documentation: networking: document phy_link_topology Documentation/netlink/specs/ethtool.yaml | 62 ++++ Documentation/networking/ethtool-netlink.rst | 52 +++ Documentation/networking/index.rst | 1 + .../networking/phy-link-topology.rst | 121 +++++++ MAINTAINERS | 1 + drivers/net/phy/Makefile | 2 +- drivers/net/phy/marvell-88x2222.c | 2 + drivers/net/phy/marvell.c | 2 + drivers/net/phy/marvell10g.c | 2 + drivers/net/phy/phy_device.c | 48 +++ drivers/net/phy/phy_link_topology.c | 105 ++++++ drivers/net/phy/phylink.c | 3 +- drivers/net/phy/qcom/at803x.c | 2 + drivers/net/phy/qcom/qca807x.c | 2 + drivers/net/phy/sfp-bus.c | 15 +- include/linux/netdevice.h | 4 +- include/linux/phy.h | 6 + include/linux/phy_link_topology.h | 82 +++++ include/linux/sfp.h | 8 +- include/uapi/linux/ethtool.h | 16 + include/uapi/linux/ethtool_netlink.h | 21 ++ net/core/dev.c | 15 + net/ethtool/Makefile | 3 +- net/ethtool/cabletest.c | 35 +- net/ethtool/netlink.c | 66 +++- net/ethtool/netlink.h | 33 ++ net/ethtool/phy.c | 312 ++++++++++++++++++ net/ethtool/plca.c | 30 +- net/ethtool/pse-pd.c | 30 +- net/ethtool/strset.c | 27 +- 30 files changed, 1056 insertions(+), 52 deletions(-) create mode 100644 Documentation/networking/phy-link-topology.rst create mode 100644 drivers/net/phy/phy_link_topology.c create mode 100644 include/linux/phy_link_topology.h create mode 100644 net/ethtool/phy.c -- 2.45.1