Commit b3e22e10 authored by Loic Poulain's avatar Loic Poulain Committed by David S. Miller

net: wwan: Add WWAN port type attribute

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: default avatarLoic Poulain <loic.poulain@linaro.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 885e4056
...@@ -169,6 +169,30 @@ static void wwan_remove_dev(struct wwan_device *wwandev) ...@@ -169,6 +169,30 @@ static void wwan_remove_dev(struct wwan_device *wwandev)
/* ------- WWAN port management ------- */ /* ------- 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) static void wwan_port_destroy(struct device *dev)
{ {
struct wwan_port *port = to_wwan_port(dev); struct wwan_port *port = to_wwan_port(dev);
...@@ -182,6 +206,7 @@ static void wwan_port_destroy(struct device *dev) ...@@ -182,6 +206,7 @@ static void wwan_port_destroy(struct device *dev)
static const struct device_type wwan_port_dev_type = { static const struct device_type wwan_port_dev_type = {
.name = "wwan_port", .name = "wwan_port",
.release = wwan_port_destroy, .release = wwan_port_destroy,
.groups = wwan_port_groups,
}; };
static int wwan_port_minor_match(struct device *dev, const void *minor) static int wwan_port_minor_match(struct device *dev, const void *minor)
...@@ -201,15 +226,6 @@ static struct wwan_port *wwan_port_get_by_minor(unsigned int minor) ...@@ -201,15 +226,6 @@ static struct wwan_port *wwan_port_get_by_minor(unsigned int minor)
return to_wwan_port(dev); 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, struct wwan_port *wwan_create_port(struct device *parent,
enum wwan_port_type type, enum wwan_port_type type,
const struct wwan_port_ops *ops, const struct wwan_port_ops *ops,
......
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