diff mbox series

[net] net: wwan: Add WWAN port type attribute

Message ID 1621245214-19343-1-git-send-email-loic.poulain@linaro.org (mailing list archive)
State Accepted
Commit b3e22e10fdda8e7be3830289a4a63ae8b88d450c
Delegated to: Netdev Maintainers
Headers show
Series [net] net: wwan: Add WWAN port type attribute | expand

Checks

Context Check Description
netdev/cover_letter success Link
netdev/fixes_present fail Series targets non-next tree, but doesn't contain any Fixes tags
netdev/patch_count success Link
netdev/tree_selection success Clearly marked for net
netdev/subject_prefix success Link
netdev/cc_maintainers warning 1 maintainers not CCed: leon@kernel.org
netdev/source_inline success Was 0 now: 0
netdev/verify_signedoff success Link
netdev/module_param success Was 0 now: 0
netdev/build_32bit success Errors and warnings before: 0 this patch: 0
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/verify_fixes success Link
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 52 lines checked
netdev/build_allmodconfig_warn success Errors and warnings before: 0 this patch: 0
netdev/header_inline success Link

Commit Message

Loic Poulain May 17, 2021, 9:53 a.m. UTC
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>
---
 drivers/net/wwan/wwan_core.c | 34 +++++++++++++++++++++++++---------
 1 file changed, 25 insertions(+), 9 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org May 17, 2021, 10:50 p.m. UTC | #1
Hello:

This patch was applied to netdev/net-next.git (refs/heads/master):

On Mon, 17 May 2021 11:53:34 +0200 you wrote:
> 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>
> 
> [...]

Here is the summary with links:
  - [net] net: wwan: Add WWAN port type attribute
    https://git.kernel.org/netdev/net-next/c/b3e22e10fdda

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
Sergey Ryazanov May 17, 2021, 11:43 p.m. UTC | #2
Hello Loic,

On Mon, May 17, 2021 at 12:48 PM Loic Poulain <loic.poulain@linaro.org> wrote:
> 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>
> ---
>  drivers/net/wwan/wwan_core.c | 34 +++++++++++++++++++++++++---------
>  1 file changed, 25 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/net/wwan/wwan_core.c b/drivers/net/wwan/wwan_core.c
> index cff04e5..92a8a6f 100644
> --- a/drivers/net/wwan/wwan_core.c
> +++ b/drivers/net/wwan/wwan_core.c
> @@ -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"
> +};

A small nitpick, maybe this array should be defined in a such way:

static const char * const wwan_port_type_str[WWAN_PORT_MAX] = {
    [WWAN_PORT_AT] = "AT",
    [WWAN_PORT_MBIM] = "MBIM",
    [WWAN_PORT_QMI] = "QMI",
    [WWAN_PORT_QCDM] = "QCDM",
    [WWAN_PORT_FIREHOSE] = "FIREHOSE",
};

So the array index will be clear without additional notes.
Loic Poulain May 18, 2021, 10:31 a.m. UTC | #3
Hi Sergey,

On Tue, 18 May 2021 at 01:44, Sergey Ryazanov <ryazanov.s.a@gmail.com> wrote:
>
> Hello Loic,
>
> On Mon, May 17, 2021 at 12:48 PM Loic Poulain <loic.poulain@linaro.org> wrote:
> > 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>
> > ---
> >  drivers/net/wwan/wwan_core.c | 34 +++++++++++++++++++++++++---------
> >  1 file changed, 25 insertions(+), 9 deletions(-)
> >
> > diff --git a/drivers/net/wwan/wwan_core.c b/drivers/net/wwan/wwan_core.c
> > index cff04e5..92a8a6f 100644
> > --- a/drivers/net/wwan/wwan_core.c
> > +++ b/drivers/net/wwan/wwan_core.c
> > @@ -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"
> > +};
>
> A small nitpick, maybe this array should be defined in a such way:
>
> static const char * const wwan_port_type_str[WWAN_PORT_MAX] = {
>     [WWAN_PORT_AT] = "AT",
>     [WWAN_PORT_MBIM] = "MBIM",
>     [WWAN_PORT_QMI] = "QMI",
>     [WWAN_PORT_QCDM] = "QCDM",
>     [WWAN_PORT_FIREHOSE] = "FIREHOSE",
> };
>
> So the array index will be clear without additional notes.

You're right, it would indeed be more robust.
I'll submit that change in a subsequent patch.

Thanks,
Loic

>
> --
> Sergey
diff mbox series

Patch

diff --git a/drivers/net/wwan/wwan_core.c b/drivers/net/wwan/wwan_core.c
index cff04e5..92a8a6f 100644
--- a/drivers/net/wwan/wwan_core.c
+++ b/drivers/net/wwan/wwan_core.c
@@ -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);
@@ -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)
@@ -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,