net: dsa: sja1105: implement .devlink_info_get
authorVladimir Oltean <vladimir.oltean@nxp.com>
Fri, 25 Sep 2020 23:04:21 +0000 (02:04 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 25 Sep 2020 23:35:27 +0000 (16:35 -0700)
Return the driver name and ASIC ID so that generic user space
application are able to know they're looking at sja1105 devlink regions
when pretty-printing them.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/sja1105/sja1105.h
drivers/net/dsa/sja1105/sja1105_devlink.c
drivers/net/dsa/sja1105/sja1105_main.c

index 4af70f6..d582308 100644 (file)
@@ -255,6 +255,9 @@ int sja1105_devlink_param_get(struct dsa_switch *ds, u32 id,
                              struct devlink_param_gset_ctx *ctx);
 int sja1105_devlink_param_set(struct dsa_switch *ds, u32 id,
                              struct devlink_param_gset_ctx *ctx);
+int sja1105_devlink_info_get(struct dsa_switch *ds,
+                            struct devlink_info_req *req,
+                            struct netlink_ext_ack *extack);
 
 /* From sja1105_spi.c */
 int sja1105_xfer_buf(const struct sja1105_private *priv,
index 07ae691..b4bf1b1 100644 (file)
@@ -214,6 +214,23 @@ static void sja1105_teardown_devlink_params(struct dsa_switch *ds)
                                      ARRAY_SIZE(sja1105_devlink_params));
 }
 
+int sja1105_devlink_info_get(struct dsa_switch *ds,
+                            struct devlink_info_req *req,
+                            struct netlink_ext_ack *extack)
+{
+       struct sja1105_private *priv = ds->priv;
+       int rc;
+
+       rc = devlink_info_driver_name_put(req, "sja1105");
+       if (rc)
+               return rc;
+
+       rc = devlink_info_version_fixed_put(req,
+                                           DEVLINK_INFO_VERSION_GENERIC_ASIC_ID,
+                                           priv->info->name);
+       return rc;
+}
+
 int sja1105_devlink_setup(struct dsa_switch *ds)
 {
        int rc;
index de4773e..547487c 100644 (file)
@@ -3316,6 +3316,7 @@ static const struct dsa_switch_ops sja1105_switch_ops = {
        .crosschip_bridge_leave = sja1105_crosschip_bridge_leave,
        .devlink_param_get      = sja1105_devlink_param_get,
        .devlink_param_set      = sja1105_devlink_param_set,
+       .devlink_info_get       = sja1105_devlink_info_get,
 };
 
 static const struct of_device_id sja1105_dt_ids[];