Skip to content

Commit

Permalink
net: wwan: Add WWAN port type attribute
Browse files Browse the repository at this point in the history
The port type is by default part of the WWAN port device name.
However device name can not be considered as a 'stable' API and
may be subject to change in the future. This change adds a proper
device attribute that can be used to determine the WWAN protocol/
type.

Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Loic Poulain authored and David S. Miller committed May 17, 2021
1 parent 885e405 commit b3e22e1
Showing 1 changed file with 25 additions and 9 deletions.
34 changes: 25 additions & 9 deletions drivers/net/wwan/wwan_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,30 @@ static void wwan_remove_dev(struct wwan_device *wwandev)

/* ------- WWAN port management ------- */

/* Keep aligned with wwan_port_type enum */
static const char * const wwan_port_type_str[] = {
"AT",
"MBIM",
"QMI",
"QCDM",
"FIREHOSE"
};

static ssize_t type_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
struct wwan_port *port = to_wwan_port(dev);

return sprintf(buf, "%s\n", wwan_port_type_str[port->type]);
}
static DEVICE_ATTR_RO(type);

static struct attribute *wwan_port_attrs[] = {
&dev_attr_type.attr,
NULL,
};
ATTRIBUTE_GROUPS(wwan_port);

static void wwan_port_destroy(struct device *dev)
{
struct wwan_port *port = to_wwan_port(dev);
Expand All @@ -182,6 +206,7 @@ static void wwan_port_destroy(struct device *dev)
static const struct device_type wwan_port_dev_type = {
.name = "wwan_port",
.release = wwan_port_destroy,
.groups = wwan_port_groups,
};

static int wwan_port_minor_match(struct device *dev, const void *minor)
Expand All @@ -201,15 +226,6 @@ static struct wwan_port *wwan_port_get_by_minor(unsigned int minor)
return to_wwan_port(dev);
}

/* Keep aligned with wwan_port_type enum */
static const char * const wwan_port_type_str[] = {
"AT",
"MBIM",
"QMI",
"QCDM",
"FIREHOSE"
};

struct wwan_port *wwan_create_port(struct device *parent,
enum wwan_port_type type,
const struct wwan_port_ops *ops,
Expand Down

0 comments on commit b3e22e1

Please sign in to comment.