Skip to content

Commit

Permalink
net: dsa: hellcreek: Report switch name and ID
Browse files Browse the repository at this point in the history
Report the driver name, ASIC ID and the switch name via devlink. This is a
useful information for user space tooling.

Signed-off-by: Kurt Kanzenbach <kurt@kmk-computers.de>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Kurt Kanzenbach authored and David S. Miller committed Mar 23, 2021
1 parent 9a255a0 commit 1ab568e
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
18 changes: 18 additions & 0 deletions drivers/net/dsa/hirschmann/hellcreek.c
Original file line number Diff line number Diff line change
Expand Up @@ -1082,6 +1082,22 @@ static int hellcreek_setup_fdb(struct hellcreek *hellcreek)
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)
{
struct hellcreek *hellcreek = priv;
Expand Down Expand Up @@ -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 = {
.devlink_info_get = hellcreek_devlink_info_get,
.get_ethtool_stats = hellcreek_get_ethtool_stats,
.get_sset_count = hellcreek_get_sset_count,
.get_strings = hellcreek_get_strings,
Expand Down Expand Up @@ -1909,6 +1926,7 @@ static int hellcreek_remove(struct platform_device *pdev)
}

static const struct hellcreek_platform_data de1soc_r1_pdata = {
.name = "r4c30",
.num_ports = 4,
.is_100_mbits = 1,
.qbv_support = 1,
Expand Down
1 change: 1 addition & 0 deletions include/linux/platform_data/hirschmann-hellcreek.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include <linux/types.h>

struct hellcreek_platform_data {
const char *name; /* Switch name */
int num_ports; /* Amount of switch ports */
int is_100_mbits; /* Is it configured to 100 or 1000 mbit/s */
int qbv_support; /* Qbv support on front TSN ports */
Expand Down

0 comments on commit 1ab568e

Please sign in to comment.