Commit 1ab568e9 authored by Kurt Kanzenbach's avatar Kurt Kanzenbach Committed by David S. Miller

net: dsa: hellcreek: Report switch name and ID

Report the driver name, ASIC ID and the switch name via devlink. This is a
useful information for user space tooling.
Signed-off-by: default avatarKurt Kanzenbach <kurt@kmk-computers.de>
Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Reviewed-by: default avatarVladimir Oltean <olteanv@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9a255a06
...@@ -1082,6 +1082,22 @@ static int hellcreek_setup_fdb(struct hellcreek *hellcreek) ...@@ -1082,6 +1082,22 @@ static int hellcreek_setup_fdb(struct hellcreek *hellcreek)
return ret; return ret;
} }
static int hellcreek_devlink_info_get(struct dsa_switch *ds,
struct devlink_info_req *req,
struct netlink_ext_ack *extack)
{
struct hellcreek *hellcreek = ds->priv;
int ret;
ret = devlink_info_driver_name_put(req, "hellcreek");
if (ret)
return ret;
return devlink_info_version_fixed_put(req,
DEVLINK_INFO_VERSION_GENERIC_ASIC_ID,
hellcreek->pdata->name);
}
static u64 hellcreek_devlink_vlan_table_get(void *priv) static u64 hellcreek_devlink_vlan_table_get(void *priv)
{ {
struct hellcreek *hellcreek = priv; struct hellcreek *hellcreek = priv;
...@@ -1732,6 +1748,7 @@ static int hellcreek_port_setup_tc(struct dsa_switch *ds, int port, ...@@ -1732,6 +1748,7 @@ static int hellcreek_port_setup_tc(struct dsa_switch *ds, int port,
} }
static const struct dsa_switch_ops hellcreek_ds_ops = { static const struct dsa_switch_ops hellcreek_ds_ops = {
.devlink_info_get = hellcreek_devlink_info_get,
.get_ethtool_stats = hellcreek_get_ethtool_stats, .get_ethtool_stats = hellcreek_get_ethtool_stats,
.get_sset_count = hellcreek_get_sset_count, .get_sset_count = hellcreek_get_sset_count,
.get_strings = hellcreek_get_strings, .get_strings = hellcreek_get_strings,
...@@ -1909,6 +1926,7 @@ static int hellcreek_remove(struct platform_device *pdev) ...@@ -1909,6 +1926,7 @@ static int hellcreek_remove(struct platform_device *pdev)
} }
static const struct hellcreek_platform_data de1soc_r1_pdata = { static const struct hellcreek_platform_data de1soc_r1_pdata = {
.name = "r4c30",
.num_ports = 4, .num_ports = 4,
.is_100_mbits = 1, .is_100_mbits = 1,
.qbv_support = 1, .qbv_support = 1,
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include <linux/types.h> #include <linux/types.h>
struct hellcreek_platform_data { struct hellcreek_platform_data {
const char *name; /* Switch name */
int num_ports; /* Amount of switch ports */ int num_ports; /* Amount of switch ports */
int is_100_mbits; /* Is it configured to 100 or 1000 mbit/s */ int is_100_mbits; /* Is it configured to 100 or 1000 mbit/s */
int qbv_support; /* Qbv support on front TSN ports */ int qbv_support; /* Qbv support on front TSN ports */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment