]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
net: dsa: qca8k: move read_switch_id function to common code
authorChristian Marangi <ansuelsmth@gmail.com>
Wed, 27 Jul 2022 11:35:23 +0000 (13:35 +0200)
committerJakub Kicinski <kuba@kernel.org>
Fri, 29 Jul 2022 05:24:40 +0000 (22:24 -0700)
The same function to read the switch id is used by drivers based on
qca8k family switch. Move them to common code to make them accessible
also by other drivers.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/dsa/qca/qca8k-8xxx.c
drivers/net/dsa/qca/qca8k-common.c
drivers/net/dsa/qca/qca8k.h

index 4d6ea47a44698de09f03643f656bbd2ceef2fbcb..1d3e7782a71f2255d756b9b866875f0331977d1d 100644 (file)
@@ -1876,35 +1876,6 @@ static const struct dsa_switch_ops qca8k_switch_ops = {
        .connect_tag_protocol   = qca8k_connect_tag_protocol,
 };
 
-static int qca8k_read_switch_id(struct qca8k_priv *priv)
-{
-       u32 val;
-       u8 id;
-       int ret;
-
-       if (!priv->info)
-               return -ENODEV;
-
-       ret = qca8k_read(priv, QCA8K_REG_MASK_CTRL, &val);
-       if (ret < 0)
-               return -ENODEV;
-
-       id = QCA8K_MASK_CTRL_DEVICE_ID(val);
-       if (id != priv->info->id) {
-               dev_err(priv->dev,
-                       "Switch id detected %x but expected %x",
-                       id, priv->info->id);
-               return -ENODEV;
-       }
-
-       priv->switch_id = id;
-
-       /* Save revision to communicate to the internal PHY driver */
-       priv->switch_revision = QCA8K_MASK_CTRL_REV_ID(val);
-
-       return 0;
-}
-
 static int
 qca8k_sw_probe(struct mdio_device *mdiodev)
 {
index c881a95441dd31a3915382c7085b0db2038ced3d..bba95613e218375ab19b8a746f08288116d9f091 100644 (file)
@@ -1179,3 +1179,32 @@ int qca8k_port_lag_leave(struct dsa_switch *ds, int port,
 {
        return qca8k_lag_refresh_portmap(ds, port, lag, true);
 }
+
+int qca8k_read_switch_id(struct qca8k_priv *priv)
+{
+       u32 val;
+       u8 id;
+       int ret;
+
+       if (!priv->info)
+               return -ENODEV;
+
+       ret = qca8k_read(priv, QCA8K_REG_MASK_CTRL, &val);
+       if (ret < 0)
+               return -ENODEV;
+
+       id = QCA8K_MASK_CTRL_DEVICE_ID(val);
+       if (id != priv->info->id) {
+               dev_err(priv->dev,
+                       "Switch id detected %x but expected %x",
+                       id, priv->info->id);
+               return -ENODEV;
+       }
+
+       priv->switch_id = id;
+
+       /* Save revision to communicate to the internal PHY driver */
+       priv->switch_revision = QCA8K_MASK_CTRL_REV_ID(val);
+
+       return 0;
+}
index e87bfee837c19f851a6557d3582c6f7ad37fb191..e36ecc9777f437bcfc5f414335bef9ac8937abad 100644 (file)
@@ -432,6 +432,7 @@ extern const struct qca8k_mib_desc ar8327_mib[];
 extern const struct regmap_access_table qca8k_readable_table;
 int qca8k_mib_init(struct qca8k_priv *priv);
 void qca8k_port_set_status(struct qca8k_priv *priv, int port, int enable);
+int qca8k_read_switch_id(struct qca8k_priv *priv);
 
 /* Common read/write/rmw function */
 int qca8k_read(struct qca8k_priv *priv, u32 reg, u32 *val);