From nobody Mon May 11 03:38:09 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D6E5EC433EF for ; Fri, 15 Apr 2022 23:30:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1356513AbiDOXcz (ORCPT ); Fri, 15 Apr 2022 19:32:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56932 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229802AbiDOXcy (ORCPT ); Fri, 15 Apr 2022 19:32:54 -0400 Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com [IPv6:2a00:1450:4864:20::62d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8EB4FF39; Fri, 15 Apr 2022 16:30:22 -0700 (PDT) Received: by mail-ej1-x62d.google.com with SMTP id u15so17527959ejf.11; Fri, 15 Apr 2022 16:30:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=IEDk1Fj7RgrH8y7QPn9XAReb3y152uJ9XeEkuSITTcs=; b=nyaHgGgcJd3IqBNnJ8J0FpEcpQRHeUhlkpYMn8syJl9SPLQ2yMl4zNW6awZBxblt7i NyD9zlbQmQwcTkqGOHoD12wPCtqMV9/hn/Ww3hfJf7zW2qN6GHw6Wy8lcj67AwCupVnn N4YGH+JoidhmFrUESLtqNpzLy+3Ol4chBnIZQKX3neA4F3mYGrjvZGnmkS/lCTYPcWLH yrUrsmojJkfDb4Y/gFbWywdSdxAq08xZCASv+4lLpgoZ1HvqoavjXEaIGnYd5FAyjj3W Sdh3J3o1pdgWWI137BZid8OPGGb7sRdRbhYslJt9K9k5rS+tUc4eM0b5JpfAIwsLBkyk aTqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=IEDk1Fj7RgrH8y7QPn9XAReb3y152uJ9XeEkuSITTcs=; b=qnVyVaJaNtt77m3WDDz93QtBdE5DhT+kWqs1KSVyWf4nDPqMzSX3tzbUVoitYs9IgZ 6YNy3sfZQYyOBh95QjITdKm1pB0HKEYvTUxgKc5vmjHgjBB/EJ5CjHJuZTwGQ9maRLnm ikrDvthxeTr0C/X0+G0SqlBX1PQOFpvXotmPdG9ceyFplHx0G0ojZVIJzSu+AgCoZnkH 7qQCh/E9vKRDGUUhyvk58AkOuxaYMVsS/ZFDtZ6+DjTEVymZ+YdQpEaE5XMSpY0R1HM2 ZtfDyuivKcZUGS8ycdGXhU/pUgOI82Lem5V6eAPaRMV8hYuKIMGyBGTf9d/QeXv1Zzq2 zj3w== X-Gm-Message-State: AOAM5320iZIPi8+KjBQEJqYxnQ3sCj3Lhy+E0hNgG1n9RVSn8m+98n7H gjKYMAVTVkly5Sn5hL8jlh0= X-Google-Smtp-Source: ABdhPJzCWRaQL3xkKKt4UXNkAJIhnAwqm3g8C1GrX0O9I4a+1HbHRl4ISxEZ394+DVGsw7FJ1K3jkg== X-Received: by 2002:a17:906:4fc7:b0:6da:92b2:f572 with SMTP id i7-20020a1709064fc700b006da92b2f572mr964600ejw.184.1650065420923; Fri, 15 Apr 2022 16:30:20 -0700 (PDT) Received: from localhost.localdomain (host-79-33-253-62.retail.telecomitalia.it. [79.33.253.62]) by smtp.googlemail.com with ESMTPSA id z21-20020a1709063a1500b006da6436819dsm2114588eje.173.2022.04.15.16.30.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Apr 2022 16:30:20 -0700 (PDT) From: Ansuel Smith To: Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Jakub Kicinski , Paolo Abeni , Ansuel Smith , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [net-next PATCH v3 1/6] net: dsa: qca8k: drop MTU tracking from qca8k_priv Date: Sat, 16 Apr 2022 01:30:12 +0200 Message-Id: <20220415233017.23275-2-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220415233017.23275-1-ansuelsmth@gmail.com> References: <20220415233017.23275-1-ansuelsmth@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" DSA set the CPU port based on the largest MTU of all the slave ports. Based on this we can drop the MTU array from qca8k_priv and set the port_change_mtu logic on DSA changing MTU of the CPU port as the switch have a global MTU settingfor each port. Signed-off-by: Ansuel Smith Reviewed-by: Vladimir Oltean --- drivers/net/dsa/qca8k.c | 26 +++++++++----------------- drivers/net/dsa/qca8k.h | 1 - 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c index d3ed0a7f8077..4e27d9803a5f 100644 --- a/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c @@ -2367,16 +2367,18 @@ static int qca8k_port_change_mtu(struct dsa_switch *ds, int port, int new_mtu) { struct qca8k_priv *priv =3D ds->priv; - int i, mtu =3D 0; =20 - priv->port_mtu[port] =3D new_mtu; - - for (i =3D 0; i < QCA8K_NUM_PORTS; i++) - if (priv->port_mtu[i] > mtu) - mtu =3D priv->port_mtu[i]; + /* We have only have a general MTU setting. + * DSA always set the CPU port's MTU to the largest MTU of the slave + * ports. + * Setting MTU just for the CPU port is sufficient to correctly set a + * value for every port. + */ + if (!dsa_is_cpu_port(ds, port)) + return 0; =20 /* Include L2 header / FCS length */ - return qca8k_write(priv, QCA8K_MAX_FRAME_SIZE, mtu + ETH_HLEN + ETH_FCS_L= EN); + return qca8k_write(priv, QCA8K_MAX_FRAME_SIZE, new_mtu + ETH_HLEN + ETH_F= CS_LEN); } =20 static int @@ -3033,16 +3035,6 @@ qca8k_setup(struct dsa_switch *ds) QCA8K_PORT_HOL_CTRL1_WRED_EN, mask); } - - /* Set initial MTU for every port. - * We have only have a general MTU setting. So track - * every port and set the max across all port. - * Set per port MTU to 1500 as the MTU change function - * will add the overhead and if its set to 1518 then it - * will apply the overhead again and we will end up with - * MTU of 1536 instead of 1518 - */ - priv->port_mtu[i] =3D ETH_DATA_LEN; } =20 /* Special GLOBAL_FC_THRESH value are needed for ar8327 switch */ diff --git a/drivers/net/dsa/qca8k.h b/drivers/net/dsa/qca8k.h index f375627174c8..562d75997e55 100644 --- a/drivers/net/dsa/qca8k.h +++ b/drivers/net/dsa/qca8k.h @@ -398,7 +398,6 @@ struct qca8k_priv { struct device *dev; struct dsa_switch_ops ops; struct gpio_desc *reset_gpio; - unsigned int port_mtu[QCA8K_NUM_PORTS]; struct net_device *mgmt_master; /* Track if mdio/mib Ethernet is availabl= e */ struct qca8k_mgmt_eth_data mgmt_eth_data; struct qca8k_mib_eth_data mib_eth_data; --=20 2.34.1 From nobody Mon May 11 03:38:09 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4714AC433F5 for ; Fri, 15 Apr 2022 23:30:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1356528AbiDOXdB (ORCPT ); Fri, 15 Apr 2022 19:33:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56974 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1356488AbiDOXcy (ORCPT ); Fri, 15 Apr 2022 19:32:54 -0400 Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com [IPv6:2a00:1450:4864:20::62f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E8540326E1; Fri, 15 Apr 2022 16:30:23 -0700 (PDT) Received: by mail-ej1-x62f.google.com with SMTP id u15so17528018ejf.11; Fri, 15 Apr 2022 16:30:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=qK8EHYcVP1VpWZMBJnIldFyQKkZ/NNk0wwcd5+1ocwY=; b=PGuhYCEdXh1KM9c86JOAbO91M9V65Efzz22Jv/amDheUvh7dGF00xPQbt11AlxThwK BD2+2S69AmflTeMsQdVL66sPc3Wa+pSZy/U4+1e/RJXWzcEUgACDgRoHe025VAbjF3vo cVtqaKR+yCG19sSh0LBiGZVDzdyzf7GoHfbxHXzjRa7qb8nmYx77L7w7VWb+4EfBKQ4Q PmiGE1dDr2H77sZkeiM2HEU6EGqJ+wEaIHb/wAaB2k7l8IBwy+kmKUj9RTqCKUX06DQB ekhE1pi+2RX4QLbTG/b1+uA/NHjTdf/gGDxqvwC8cIf9TQeeJCfhYyccc3ham6PkyNGl byYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=qK8EHYcVP1VpWZMBJnIldFyQKkZ/NNk0wwcd5+1ocwY=; b=yKoq36TRVIFZWn2VqA0kkYNoF+SvlU1HPaensvq0XmABQ/4/oiabFCO09N9Lenb/34 rPANee91XPPS92prJxOwfHaGLdabQ3eha3luVHTsKCDEa723UfOYb8PZQbYCMAZ2r8Am KLMeqjNGMlwaYqB1qoe9CkD7nWXMvurvWL3kEDsXAwvCh/Q4cODOc0fJRudbcARxpyBM laXfcZv7XvkL0Ff/FZhpPnV/C3wf7saZaKlkZE9ce9bqhSpwzuYztV2qn1hH1qEWIV5w FIe8GomkIfG0shIaLnL8whZZ8Rga7+Rrr4NCMVYJD8lzYjjZWc7ll+/o48niAXdvp7rG YQGA== X-Gm-Message-State: AOAM530FmECTSHlZsnZoaN64+Qj/L+WJAeteVitr+8T3VSUVjzmSmHwO 7z9JpeWutCSnYOM++vcyKQxSat4Unss= X-Google-Smtp-Source: ABdhPJwRJgWX6ran0lDX03hoJcMgMqqoHlSBQKeMgvg8WKGhK7SigmEQ6fH1bv3wTlK51wY7UZPyUA== X-Received: by 2002:a17:906:3082:b0:6e0:111f:8986 with SMTP id 2-20020a170906308200b006e0111f8986mr888730ejv.677.1650065422335; Fri, 15 Apr 2022 16:30:22 -0700 (PDT) Received: from localhost.localdomain (host-79-33-253-62.retail.telecomitalia.it. [79.33.253.62]) by smtp.googlemail.com with ESMTPSA id z21-20020a1709063a1500b006da6436819dsm2114588eje.173.2022.04.15.16.30.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Apr 2022 16:30:21 -0700 (PDT) From: Ansuel Smith To: Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Jakub Kicinski , Paolo Abeni , Ansuel Smith , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [net-next PATCH v3 2/6] net: dsa: qca8k: drop port_sts from qca8k_priv Date: Sat, 16 Apr 2022 01:30:13 +0200 Message-Id: <20220415233017.23275-3-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220415233017.23275-1-ansuelsmth@gmail.com> References: <20220415233017.23275-1-ansuelsmth@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Port_sts is a thing of the past for this driver. It was something present on the initial implementation of this driver and parts of the original struct were dropped over time. Using an array of int to store if a port is enabled or not to handle PM operation seems overkill. Switch and use a simple u8 to store the port status where each bit correspond to a port. (bit is set port is enabled, bit is not set, port is disabled) Also add some comments to better describe why we need to track port status. Signed-off-by: Ansuel Smith Reviewed-by: Vladimir Oltean --- drivers/net/dsa/qca8k.c | 15 +++++++++------ drivers/net/dsa/qca8k.h | 9 ++++----- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c index 4e27d9803a5f..766db0d43092 100644 --- a/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c @@ -2346,7 +2346,7 @@ qca8k_port_enable(struct dsa_switch *ds, int port, struct qca8k_priv *priv =3D (struct qca8k_priv *)ds->priv; =20 qca8k_port_set_status(priv, port, 1); - priv->port_sts[port].enabled =3D 1; + priv->port_enabled_map |=3D BIT(port); =20 if (dsa_is_user_port(ds, port)) phy_support_asym_pause(phy); @@ -2360,7 +2360,7 @@ qca8k_port_disable(struct dsa_switch *ds, int port) struct qca8k_priv *priv =3D (struct qca8k_priv *)ds->priv; =20 qca8k_port_set_status(priv, port, 0); - priv->port_sts[port].enabled =3D 0; + priv->port_enabled_map &=3D ~BIT(port); } =20 static int @@ -3235,13 +3235,16 @@ static void qca8k_sw_shutdown(struct mdio_device *m= diodev) static void qca8k_set_pm(struct qca8k_priv *priv, int enable) { - int i; + int port; =20 - for (i =3D 0; i < QCA8K_NUM_PORTS; i++) { - if (!priv->port_sts[i].enabled) + for (port =3D 0; port < QCA8K_NUM_PORTS; port++) { + /* Do not enable on resume if the port was + * disabled before. + */ + if (!(priv->port_enabled_map & BIT(port))) continue; =20 - qca8k_port_set_status(priv, i, enable); + qca8k_port_set_status(priv, port, enable); } } =20 diff --git a/drivers/net/dsa/qca8k.h b/drivers/net/dsa/qca8k.h index 562d75997e55..12d8d090298b 100644 --- a/drivers/net/dsa/qca8k.h +++ b/drivers/net/dsa/qca8k.h @@ -324,10 +324,6 @@ enum qca8k_mid_cmd { QCA8K_MIB_CAST =3D 3, }; =20 -struct ar8xxx_port_status { - int enabled; -}; - struct qca8k_match_data { u8 id; bool reduced_package; @@ -388,11 +384,14 @@ struct qca8k_priv { u8 mirror_rx; u8 mirror_tx; u8 lag_hash_mode; + /* Each bit correspond to a port. This switch can support a max of 7 port. + * Bit 1: port enabled. Bit 0: port disabled. + */ + u8 port_enabled_map; bool legacy_phy_port_mapping; struct qca8k_ports_config ports_config; struct regmap *regmap; struct mii_bus *bus; - struct ar8xxx_port_status port_sts[QCA8K_NUM_PORTS]; struct dsa_switch *ds; struct mutex reg_mutex; struct device *dev; --=20 2.34.1 From nobody Mon May 11 03:38:09 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E68A9C433FE for ; Fri, 15 Apr 2022 23:30:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1356544AbiDOXdH (ORCPT ); Fri, 15 Apr 2022 19:33:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57062 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1356515AbiDOXcz (ORCPT ); Fri, 15 Apr 2022 19:32:55 -0400 Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com [IPv6:2a00:1450:4864:20::635]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 27ACE326F8; Fri, 15 Apr 2022 16:30:25 -0700 (PDT) Received: by mail-ej1-x635.google.com with SMTP id i27so17573846ejd.9; Fri, 15 Apr 2022 16:30:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=3TdbtJ+5CSDsOQsie0cWjR6PVetHa73QZIrGF+LOlaQ=; b=cKQmXjx9x7XM22mAG0RpJzmufh3Ml/XIpZl8XcEOp1RhZJOYmlyqd514QK8ebF7ScV OCMOkZ9M7EVc0+979AtcsS/JluGqA7NYGkc3TyH1d/wY15JKLebtkhmE/flwU4S8ojoD U/8qNE7dNWuf73tkiAwytXj8QyZwgw2fxRVlHOKAsgV5Xtq96C6Q34dnGBGkKClD8wQ3 NVNd83m6B47j2wwdYv92kx6/XV0jJLp1/eJRl4gAPwV4AtW1XGvOr+nJuVO5TPRPG4y5 PV2JUmp8Wbtv8Cu5m1TSjpzXQUBIQZHuptIENCzOeg/pI4vzqrskKZANnoICXMZ0pd6g VmHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=3TdbtJ+5CSDsOQsie0cWjR6PVetHa73QZIrGF+LOlaQ=; b=KxqYUI+ZMGaHyoTS9vJUDEMXAo48+y92OJHnKnzm7M5qYozkgTUQfUiaZhyhHiYmND Sy2AupZ8Y83MZg1l7lQ1UlDTXhFKBGrxxz7wkD7E9zzbLMRgkVNXRql6Xnma6TqK/cVb T1UE21j+4/gkbPIWLW1xWcUQtBvdBqotI6T+fgCm8mj06L3QjGEeOj46vb7L3c9EpZ0P f+7xDOAuGtmpTyOv1/5UdX/ZF/irqPF/lPFwAevijRan4TPjqGlzytV8hBoa98earXr9 PzuK3OBlOMiNWuEL38cj67abw/qo5e0+5XrTSeCkWPhWWkWyzYKtSFGSbF+8Mks2XYJX GCEg== X-Gm-Message-State: AOAM532A0roSTQG8yR7s0prly3oxowJHFrSG3B5VO3wecIU/dP3DqHL/ LUkKISyb6zsfp5jlwxzF/tE= X-Google-Smtp-Source: ABdhPJzqsjVQ6znu/N9rI2rKDxVe2CkckyAc6+QRRwom0lJMbL6h/lvoxW1DxoYzl7LpAKssIjcOzA== X-Received: by 2002:a17:907:97cc:b0:6df:83bc:314c with SMTP id js12-20020a17090797cc00b006df83bc314cmr917960ejc.587.1650065423606; Fri, 15 Apr 2022 16:30:23 -0700 (PDT) Received: from localhost.localdomain (host-79-33-253-62.retail.telecomitalia.it. [79.33.253.62]) by smtp.googlemail.com with ESMTPSA id z21-20020a1709063a1500b006da6436819dsm2114588eje.173.2022.04.15.16.30.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Apr 2022 16:30:23 -0700 (PDT) From: Ansuel Smith To: Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Jakub Kicinski , Paolo Abeni , Ansuel Smith , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [net-next PATCH v3 3/6] net: dsa: qca8k: rework and simplify mdiobus logic Date: Sat, 16 Apr 2022 01:30:14 +0200 Message-Id: <20220415233017.23275-4-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220415233017.23275-1-ansuelsmth@gmail.com> References: <20220415233017.23275-1-ansuelsmth@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" In an attempt to reduce qca8k_priv space, rework and simplify mdiobus logic. We now declare a mdiobus instead of relying on DSA phy_read/write even if a mdio node is not present. This is all to make the qca8k ops static and not switch specific. With a legacy implementation where port doesn't have a phy map declared in the dts with a mdio node, we declare a 'qca8k-legacy' mdiobus. The conversion logic is used as legacy read and write ops are used instead of the internal one. Also drop the legacy_phy_port_mapping as we now declare mdiobus with ops that already address the workaround. Signed-off-by: Ansuel Smith --- drivers/net/dsa/qca8k.c | 95 +++++++++++++---------------------------- drivers/net/dsa/qca8k.h | 1 - 2 files changed, 29 insertions(+), 67 deletions(-) diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c index 766db0d43092..24d57083ee2c 100644 --- a/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c @@ -1291,83 +1291,63 @@ qca8k_internal_mdio_read(struct mii_bus *slave_bus,= int phy, int regnum) } =20 static int -qca8k_phy_write(struct dsa_switch *ds, int port, int regnum, u16 data) +qca8k_legacy_mdio_write(struct mii_bus *slave_bus, int port, int regnum, u= 16 data) { - struct qca8k_priv *priv =3D ds->priv; - int ret; - - /* Check if the legacy mapping should be used and the - * port is not correctly mapped to the right PHY in the - * devicetree - */ - if (priv->legacy_phy_port_mapping) - port =3D qca8k_port_to_phy(port) % PHY_MAX_ADDR; + port =3D qca8k_port_to_phy(port) % PHY_MAX_ADDR; =20 - /* Use mdio Ethernet when available, fallback to legacy one on error */ - ret =3D qca8k_phy_eth_command(priv, false, port, regnum, 0); - if (!ret) - return ret; - - return qca8k_mdio_write(priv, port, regnum, data); + return qca8k_internal_mdio_write(slave_bus, port, regnum, data); } =20 static int -qca8k_phy_read(struct dsa_switch *ds, int port, int regnum) +qca8k_legacy_mdio_read(struct mii_bus *slave_bus, int port, int regnum) { - struct qca8k_priv *priv =3D ds->priv; - int ret; + port =3D qca8k_port_to_phy(port) % PHY_MAX_ADDR; =20 - /* Check if the legacy mapping should be used and the - * port is not correctly mapped to the right PHY in the - * devicetree - */ - if (priv->legacy_phy_port_mapping) - port =3D qca8k_port_to_phy(port) % PHY_MAX_ADDR; - - /* Use mdio Ethernet when available, fallback to legacy one on error */ - ret =3D qca8k_phy_eth_command(priv, true, port, regnum, 0); - if (ret >=3D 0) - return ret; - - ret =3D qca8k_mdio_read(priv, port, regnum); - - if (ret < 0) - return 0xffff; - - return ret; + return qca8k_internal_mdio_read(slave_bus, port, regnum); } =20 static int -qca8k_mdio_register(struct qca8k_priv *priv, struct device_node *mdio) +qca8k_mdio_register(struct qca8k_priv *priv) { struct dsa_switch *ds =3D priv->ds; + struct device_node *mdio; struct mii_bus *bus; =20 bus =3D devm_mdiobus_alloc(ds->dev); - if (!bus) return -ENOMEM; =20 bus->priv =3D (void *)priv; - bus->name =3D "qca8k slave mii"; - bus->read =3D qca8k_internal_mdio_read; - bus->write =3D qca8k_internal_mdio_write; - snprintf(bus->id, MII_BUS_ID_SIZE, "qca8k-%d", - ds->index); - bus->parent =3D ds->dev; bus->phy_mask =3D ~ds->phys_mii_mask; - ds->slave_mii_bus =3D bus; =20 - return devm_of_mdiobus_register(priv->dev, bus, mdio); + /* Check if the devicetree declare the port:phy mapping */ + mdio =3D of_get_child_by_name(priv->dev->of_node, "mdio"); + if (of_device_is_available(mdio)) { + snprintf(bus->id, MII_BUS_ID_SIZE, "qca8k-%d", ds->index); + bus->name =3D "qca8k slave mii"; + bus->read =3D qca8k_internal_mdio_read; + bus->write =3D qca8k_internal_mdio_write; + return devm_of_mdiobus_register(priv->dev, bus, mdio); + } + + /* If a mapping can't be found the legacy mapping is used, + * using the qca8k_port_to_phy function + */ + snprintf(bus->id, MII_BUS_ID_SIZE, "qca8k-%d.%d", + ds->dst->index, ds->index); + bus->name =3D "qca8k-legacy slave mii"; + bus->read =3D qca8k_legacy_mdio_read; + bus->write =3D qca8k_legacy_mdio_write; + return devm_mdiobus_register(priv->dev, bus); } =20 static int qca8k_setup_mdio_bus(struct qca8k_priv *priv) { u32 internal_mdio_mask =3D 0, external_mdio_mask =3D 0, reg; - struct device_node *ports, *port, *mdio; + struct device_node *ports, *port; phy_interface_t mode; int err; =20 @@ -1429,24 +1409,7 @@ qca8k_setup_mdio_bus(struct qca8k_priv *priv) QCA8K_MDIO_MASTER_EN); } =20 - /* Check if the devicetree declare the port:phy mapping */ - mdio =3D of_get_child_by_name(priv->dev->of_node, "mdio"); - if (of_device_is_available(mdio)) { - err =3D qca8k_mdio_register(priv, mdio); - if (err) - of_node_put(mdio); - - return err; - } - - /* If a mapping can't be found the legacy mapping is used, - * using the qca8k_port_to_phy function - */ - priv->legacy_phy_port_mapping =3D true; - priv->ops.phy_read =3D qca8k_phy_read; - priv->ops.phy_write =3D qca8k_phy_write; - - return 0; + return qca8k_mdio_register(priv); } =20 static int diff --git a/drivers/net/dsa/qca8k.h b/drivers/net/dsa/qca8k.h index 12d8d090298b..8bbe36f135b5 100644 --- a/drivers/net/dsa/qca8k.h +++ b/drivers/net/dsa/qca8k.h @@ -388,7 +388,6 @@ struct qca8k_priv { * Bit 1: port enabled. Bit 0: port disabled. */ u8 port_enabled_map; - bool legacy_phy_port_mapping; struct qca8k_ports_config ports_config; struct regmap *regmap; struct mii_bus *bus; --=20 2.34.1 From nobody Mon May 11 03:38:09 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id DF6A7C433EF for ; Fri, 15 Apr 2022 23:30:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1356546AbiDOXdM (ORCPT ); Fri, 15 Apr 2022 19:33:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57102 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1356517AbiDOXc4 (ORCPT ); Fri, 15 Apr 2022 19:32:56 -0400 Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com [IPv6:2a00:1450:4864:20::634]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8241AF39; Fri, 15 Apr 2022 16:30:26 -0700 (PDT) Received: by mail-ej1-x634.google.com with SMTP id bv19so17596465ejb.6; Fri, 15 Apr 2022 16:30:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=WmCZ9hRbB62an5GsVNkCfotTv1C+Pq+pqfoG0trXrYw=; b=NrbgmZ7/sPHWBOqLS6fclHUEmJUNvSvN9gBhl1GoqYHpgGoY89hGlVoYoznxsVSNEZ AJR2v03lgl2RPZLbZJv8UgzTD6qs9DG0JPODms2dHK+3QLCEZfZ2zZwRjRXsNt+mfmP2 vyx/H/Uzcsq3E8/Md2jppak6QVUgilREVt/RRkJvHJr5tGJy9vYPxChotcbnEwuY74vT UCtbclayPhrKTlq+lJyTdo6D/NLnTdBtnF7NHYpWS03n3oEXuox/qRxek2vVsH3r+4zo 1s3S1rGp/OzZUWFttzxjPo9523FeYwobI9fShTnTK1BQ/y6ziuLwOP1mUDjjNQvDSV0z BkyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WmCZ9hRbB62an5GsVNkCfotTv1C+Pq+pqfoG0trXrYw=; b=59yBGsLT3WLWKkfqVb5vtISuwCxangOLcWuH5bIw7qyBv8KRx3Cy0WfrL+D1CKtd3W 5PqO2dsdy3lCwDBHX2ZhmBjtoUnmAihYhbzRw//wdbpP87voKI3kSBh4GaQhVDx/lKEB lvCHm9IrfcWXIpgrJAwZ8lZyT2Ux3EezjIVoNAc/e7nkxeIEQxbNarR0Az9XD5HuY5Ve A/ohTy2R4xwdznAoo7f3YxHH787QDJTm7b5bbiHBJX76dkR657/mIpAWWdSyaLtCmLGp XbItZim7ppbhJVNSCSvF3y5CKuzKtil6dRdKCaQhE421dgf/txctTMK5Gyoaxx77g5Or ihSg== X-Gm-Message-State: AOAM530jnUFj02uIuYfrxd5HTtEGAJhjbMr/MmWnh6ORCIlIa0fx93D7 dtyFwvJTIRyasUcrTXEL3vA= X-Google-Smtp-Source: ABdhPJyt5wwii3OM3X+TFE42Z8wIB4/a5Emck5TpNUKAsDkl7Bfdive4nTTH4BiJgXjMSr74OTzobA== X-Received: by 2002:a17:906:3707:b0:6e8:6bfe:da0e with SMTP id d7-20020a170906370700b006e86bfeda0emr999346ejc.78.1650065425018; Fri, 15 Apr 2022 16:30:25 -0700 (PDT) Received: from localhost.localdomain (host-79-33-253-62.retail.telecomitalia.it. [79.33.253.62]) by smtp.googlemail.com with ESMTPSA id z21-20020a1709063a1500b006da6436819dsm2114588eje.173.2022.04.15.16.30.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Apr 2022 16:30:24 -0700 (PDT) From: Ansuel Smith To: Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Jakub Kicinski , Paolo Abeni , Ansuel Smith , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [net-next PATCH v3 4/6] net: dsa: qca8k: drop dsa_switch_ops from qca8k_priv Date: Sat, 16 Apr 2022 01:30:15 +0200 Message-Id: <20220415233017.23275-5-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220415233017.23275-1-ansuelsmth@gmail.com> References: <20220415233017.23275-1-ansuelsmth@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Now that dsa_switch_ops is not switch specific anymore, we can drop it from qca8k_priv and use the static ops directly for the dsa_switch pointer. Signed-off-by: Ansuel Smith Reviewed-by: Vladimir Oltean --- drivers/net/dsa/qca8k.c | 3 +-- drivers/net/dsa/qca8k.h | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c index 24d57083ee2c..ef8d686de609 100644 --- a/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c @@ -3157,8 +3157,7 @@ qca8k_sw_probe(struct mdio_device *mdiodev) priv->ds->dev =3D &mdiodev->dev; priv->ds->num_ports =3D QCA8K_NUM_PORTS; priv->ds->priv =3D priv; - priv->ops =3D qca8k_switch_ops; - priv->ds->ops =3D &priv->ops; + priv->ds->ops =3D &qca8k_switch_ops; mutex_init(&priv->reg_mutex); dev_set_drvdata(&mdiodev->dev, priv); =20 diff --git a/drivers/net/dsa/qca8k.h b/drivers/net/dsa/qca8k.h index 8bbe36f135b5..04408e11402a 100644 --- a/drivers/net/dsa/qca8k.h +++ b/drivers/net/dsa/qca8k.h @@ -394,7 +394,6 @@ struct qca8k_priv { struct dsa_switch *ds; struct mutex reg_mutex; struct device *dev; - struct dsa_switch_ops ops; struct gpio_desc *reset_gpio; struct net_device *mgmt_master; /* Track if mdio/mib Ethernet is availabl= e */ struct qca8k_mgmt_eth_data mgmt_eth_data; --=20 2.34.1 From nobody Mon May 11 03:38:09 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8113CC433F5 for ; Fri, 15 Apr 2022 23:30:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1356554AbiDOXdQ (ORCPT ); Fri, 15 Apr 2022 19:33:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57174 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1356521AbiDOXc6 (ORCPT ); Fri, 15 Apr 2022 19:32:58 -0400 Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com [IPv6:2a00:1450:4864:20::52a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A5664434A5; Fri, 15 Apr 2022 16:30:27 -0700 (PDT) Received: by mail-ed1-x52a.google.com with SMTP id z99so11418599ede.5; Fri, 15 Apr 2022 16:30:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=QPfpEFZ8aXDfQbxEKJbQpBAkzVCysTDwHsga4YqOSIU=; b=QISmEUBnclB/8FoC/OJH0P0MIX1gd+Q5qbkwA0HU4NLGZmHpKQep1CtSmP+uc8xVa0 +uvYQDcyKnDvQS0/Vtc1H8Gg+CiNqf/SpCj7Il/6580gnakyDJHkpMpJ3is/eI45AFOl C1kmOr6/7c0OMYqMIu67uA2m0fEVezN/KGFfYmxIpoCXYkbjGSZS3jKAW4cHJUIml8Hw HDVIYPLh+AxYqZcqFWBdGbXtLAupl+h8/aFEA6bNmsnGA7Hj0vFrRyn+d5GdxqJG0klr YOkoh/3JlUF/bFXiqdi460KZCbeabFsRMV1ME2lSlRNvg7kzOcmgo6zCeUBYCRIqQGwh AMPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=QPfpEFZ8aXDfQbxEKJbQpBAkzVCysTDwHsga4YqOSIU=; b=XHwLXg4ZDmBB6Cmx412SgkffvVjBod8MBuzlo/dW63ZOdFdR0M4pL6TpgmXTsZtHKJ pZMDR0spc1xTDL5VT5Ai2OSu9gotyeWjbAH2GqWrtMBUYEydx2QJhvBMjsMT/2NBomCd q1E/2tcJf4F1hfmGoHW5GcgbKYVVVNM2j0GCBNA8DNOYtk3B4i3dyKllXc8C0acXHTUD wfZQW8ZhaXCoIBn8dUXeeuXIFQ9Pz26saAR7/IGB05acHxuznVSAi6LgLb1zqwxsj0id 9jEWeB7LYpIe0KuY3ngw7dS9GT7kcK9+SjxxjRufQ0eVtBrPeUcHrTgaPc0HhDOf9BP9 fb2w== X-Gm-Message-State: AOAM530qzL0lTjoC+haN2sJFPt4cGrTfHLL88cjKv85XViUvb6pIOgLE ojnQVDca1oRRYg/Wk50r7jI= X-Google-Smtp-Source: ABdhPJyDSnRt33zQXhpordsy/GhKN6dmBG8R2b/yv9Bg+Cu5t4p4d54mONj3Shzct4xfhJbqou6E0Q== X-Received: by 2002:a05:6402:51cf:b0:419:63e2:2b96 with SMTP id r15-20020a05640251cf00b0041963e22b96mr1410938edd.336.1650065426148; Fri, 15 Apr 2022 16:30:26 -0700 (PDT) Received: from localhost.localdomain (host-79-33-253-62.retail.telecomitalia.it. [79.33.253.62]) by smtp.googlemail.com with ESMTPSA id z21-20020a1709063a1500b006da6436819dsm2114588eje.173.2022.04.15.16.30.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Apr 2022 16:30:25 -0700 (PDT) From: Ansuel Smith To: Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Jakub Kicinski , Paolo Abeni , Ansuel Smith , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [net-next PATCH v3 5/6] net: dsa: qca8k: correctly handle mdio read error Date: Sat, 16 Apr 2022 01:30:16 +0200 Message-Id: <20220415233017.23275-6-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220415233017.23275-1-ansuelsmth@gmail.com> References: <20220415233017.23275-1-ansuelsmth@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Restore original way to handle mdio read error by returning 0xffff. This was wrongly changed when the internal_mdio_read was introduced, now that both legacy and internal use the same function, make sure that they behave the same way. Fixes: ce062a0adbfe ("net: dsa: qca8k: fix kernel panic with legacy mdio ma= pping") Signed-off-by: Ansuel Smith --- drivers/net/dsa/qca8k.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c index ef8d686de609..4fb1486795c4 100644 --- a/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c @@ -1287,7 +1287,12 @@ qca8k_internal_mdio_read(struct mii_bus *slave_bus, = int phy, int regnum) if (ret >=3D 0) return ret; =20 - return qca8k_mdio_read(priv, phy, regnum); + ret =3D qca8k_mdio_read(priv, phy, regnum); + + if (ret < 0) + return 0xffff; + + return ret; } =20 static int --=20 2.34.1 From nobody Mon May 11 03:38:09 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4227BC433F5 for ; Fri, 15 Apr 2022 23:30:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242157AbiDOXdU (ORCPT ); Fri, 15 Apr 2022 19:33:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57208 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1356522AbiDOXc7 (ORCPT ); Fri, 15 Apr 2022 19:32:59 -0400 Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com [IPv6:2a00:1450:4864:20::62c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D80BD46B29; Fri, 15 Apr 2022 16:30:28 -0700 (PDT) Received: by mail-ej1-x62c.google.com with SMTP id y10so173568ejw.8; Fri, 15 Apr 2022 16:30:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=5nDzaaAHa7/WeJJ4E62iP/cCLjk44LELpCyD9uJYd+s=; b=Er6MHtpc4IdPXf5rUA2twJd83mpeYG8RTPD1ynVEcyTIsmSGpg5fzOQMKggdCaZ7Ns SDlRro9MmrPzqwd64tsuRwUVT9sOON87buwPW8GsoBqtT0yp8hyy0l7+p0R5N0VdQMbd ++FhrfYN8vPOJ0jwfKFMMmb8ctecs2kFxjZkNAtrKMIDDZ7Wir8fQH0FCLmWo4uEWMzO 5yw+5r6C0qUpmAOUqcYDyjVjp+/5Mnex1eZmGtHtGcU3XhjnV/zuBPxpKpLJM9srMm5r fu0OGUNAUHJfn/v5eCno5j15gb/iYfC1zcxVor245Sd0q8bP4idIpwkzjv9DuwXMUCTu 4Lkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5nDzaaAHa7/WeJJ4E62iP/cCLjk44LELpCyD9uJYd+s=; b=ZLef2j9jt8USlm397V7XCWRAJeSiEQcl6KNuD0ThjXwIC8TWubik3fBVehbWCcKcOS Mk88A9V0vtDhoWuzWQ2rnsm765DdEO3SKla+hc7bbgCuTa9m3i6gaQjyfdH4Sbfp+MX3 6wNQN88F+Aw0aZa6m68PkSoWl8ADtZDhAKJrNNff2XSGBUrNaxA3QzvLuObVtr1eaD8G ZbqaVOyhte9v5gJ/PGsODUNBIyGC8au8CCccXW24sFTmzTo8RXqMSYhqxu6Bcjj9TwSu Y9rcnh7xjya7hqPdCe+p9aiRVJ6eD1mqDTWy28McBILRl3sKeB9f6LLIWl8HNqnBcfvF dC5Q== X-Gm-Message-State: AOAM530ntxW3wV7n3gKcorAwuPLgz5iGb0/ujbs04lrs2941t26gH7D9 4WVWgL9vVPeR9lj4edEqNyU= X-Google-Smtp-Source: ABdhPJy5w+y12JaFpUfY7+rbhIopdcIzKnPNaEPw/Yn0VtjgDutavo3bdBPD9bXKy9IZ/uJBMCPt1A== X-Received: by 2002:a17:906:2991:b0:6cf:6b24:e92f with SMTP id x17-20020a170906299100b006cf6b24e92fmr943076eje.748.1650065427310; Fri, 15 Apr 2022 16:30:27 -0700 (PDT) Received: from localhost.localdomain (host-79-33-253-62.retail.telecomitalia.it. [79.33.253.62]) by smtp.googlemail.com with ESMTPSA id z21-20020a1709063a1500b006da6436819dsm2114588eje.173.2022.04.15.16.30.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Apr 2022 16:30:26 -0700 (PDT) From: Ansuel Smith To: Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Jakub Kicinski , Paolo Abeni , Ansuel Smith , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [net-next PATCH v3 6/6] net: dsa: qca8k: unify bus id naming with legacy and OF mdio bus Date: Sat, 16 Apr 2022 01:30:17 +0200 Message-Id: <20220415233017.23275-7-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220415233017.23275-1-ansuelsmth@gmail.com> References: <20220415233017.23275-1-ansuelsmth@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add support for multiple switch with OF mdio bus declaration. Unify the bus id naming and use the same logic for both legacy and OF mdio bus. Signed-off-by: Ansuel Smith --- drivers/net/dsa/qca8k.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c index 4fb1486795c4..2727d3169c25 100644 --- a/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c @@ -1323,6 +1323,8 @@ qca8k_mdio_register(struct qca8k_priv *priv) return -ENOMEM; =20 bus->priv =3D (void *)priv; + snprintf(bus->id, MII_BUS_ID_SIZE, "qca8k-%d.%d", + ds->dst->index, ds->index); bus->parent =3D ds->dev; bus->phy_mask =3D ~ds->phys_mii_mask; ds->slave_mii_bus =3D bus; @@ -1330,7 +1332,6 @@ qca8k_mdio_register(struct qca8k_priv *priv) /* Check if the devicetree declare the port:phy mapping */ mdio =3D of_get_child_by_name(priv->dev->of_node, "mdio"); if (of_device_is_available(mdio)) { - snprintf(bus->id, MII_BUS_ID_SIZE, "qca8k-%d", ds->index); bus->name =3D "qca8k slave mii"; bus->read =3D qca8k_internal_mdio_read; bus->write =3D qca8k_internal_mdio_write; @@ -1340,8 +1341,6 @@ qca8k_mdio_register(struct qca8k_priv *priv) /* If a mapping can't be found the legacy mapping is used, * using the qca8k_port_to_phy function */ - snprintf(bus->id, MII_BUS_ID_SIZE, "qca8k-%d.%d", - ds->dst->index, ds->index); bus->name =3D "qca8k-legacy slave mii"; bus->read =3D qca8k_legacy_mdio_read; bus->write =3D qca8k_legacy_mdio_write; --=20 2.34.1