2022-07-21 16:07:43

by sdlyyxy

[permalink] [raw]
Subject: [PATCH v2] USB: serial: usb_wwan: replace DTR/RTS magic numbers with macros

The usb_wwan_send_setup function generates DTR/RTS signals in compliance
with CDC ACM standard. This patch changes magic numbers in this function
to equivalent macros.

Signed-off-by: Yan Xinyu <[email protected]>
---
v1->v2:
* Fix Signed-off-by name.
---
drivers/usb/serial/usb_wwan.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/usb/serial/usb_wwan.c b/drivers/usb/serial/usb_wwan.c
index dab38b63eaf7..a6bd6144702d 100644
--- a/drivers/usb/serial/usb_wwan.c
+++ b/drivers/usb/serial/usb_wwan.c
@@ -29,10 +29,14 @@
#include <linux/bitops.h>
#include <linux/uaccess.h>
#include <linux/usb.h>
+#include <linux/usb/cdc.h>
#include <linux/usb/serial.h>
#include <linux/serial.h>
#include "usb-wwan.h"

+#define ACM_CTRL_DTR 0x01
+#define ACM_CTRL_RTS 0x02
+
/*
* Generate DTR/RTS signals on the port using the SET_CONTROL_LINE_STATE request
* in CDC ACM.
@@ -48,9 +52,9 @@ static int usb_wwan_send_setup(struct usb_serial_port *port)
portdata = usb_get_serial_port_data(port);

if (portdata->dtr_state)
- val |= 0x01;
+ val |= ACM_CTRL_DTR;
if (portdata->rts_state)
- val |= 0x02;
+ val |= ACM_CTRL_RTS;

ifnum = serial->interface->cur_altsetting->desc.bInterfaceNumber;

@@ -59,8 +63,9 @@ static int usb_wwan_send_setup(struct usb_serial_port *port)
return res;

res = usb_control_msg(serial->dev, usb_sndctrlpipe(serial->dev, 0),
- 0x22, 0x21, val, ifnum, NULL, 0,
- USB_CTRL_SET_TIMEOUT);
+ USB_CDC_REQ_SET_CONTROL_LINE_STATE,
+ USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE,
+ val, ifnum, NULL, 0, USB_CTRL_SET_TIMEOUT);

usb_autopm_put_interface(port->serial->interface);

--
2.25.1




2022-07-21 18:56:24

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH v2] USB: serial: usb_wwan: replace DTR/RTS magic numbers with macros

On Thu, Jul 21, 2022 at 11:52:57PM +0800, Yan Xinyu wrote:
> The usb_wwan_send_setup function generates DTR/RTS signals in compliance
> with CDC ACM standard. This patch changes magic numbers in this function
> to equivalent macros.
>
> Signed-off-by: Yan Xinyu <[email protected]>
> ---
> v1->v2:
> * Fix Signed-off-by name.
> ---
> drivers/usb/serial/usb_wwan.c | 13 +++++++++----
> 1 file changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/usb/serial/usb_wwan.c b/drivers/usb/serial/usb_wwan.c
> index dab38b63eaf7..a6bd6144702d 100644
> --- a/drivers/usb/serial/usb_wwan.c
> +++ b/drivers/usb/serial/usb_wwan.c
> @@ -29,10 +29,14 @@
> #include <linux/bitops.h>
> #include <linux/uaccess.h>
> #include <linux/usb.h>
> +#include <linux/usb/cdc.h>
> #include <linux/usb/serial.h>
> #include <linux/serial.h>
> #include "usb-wwan.h"
>
> +#define ACM_CTRL_DTR 0x01
> +#define ACM_CTRL_RTS 0x02

Why are these not in the cdc.h file already?

thanks,

greg k-h

2022-07-22 03:27:41

by sdlyyxy

[permalink] [raw]
Subject: Re: [PATCH v2] USB: serial: usb_wwan: replace DTR/RTS magic numbers with macros

> On Jul 22, 2022, at 02:18, Greg KH <[email protected]> wrote:
>
> On Thu, Jul 21, 2022 at 11:52:57PM +0800, Yan Xinyu wrote:
>> The usb_wwan_send_setup function generates DTR/RTS signals in compliance
>> with CDC ACM standard. This patch changes magic numbers in this function
>> to equivalent macros.
>>
>> Signed-off-by: Yan Xinyu <[email protected]>
>> ---
>> v1->v2:
>> * Fix Signed-off-by name.
>> ---
>> drivers/usb/serial/usb_wwan.c | 13 +++++++++----
>> 1 file changed, 9 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/usb/serial/usb_wwan.c b/drivers/usb/serial/usb_wwan.c
>> index dab38b63eaf7..a6bd6144702d 100644
>> --- a/drivers/usb/serial/usb_wwan.c
>> +++ b/drivers/usb/serial/usb_wwan.c
>> @@ -29,10 +29,14 @@
>> #include <linux/bitops.h>
>> #include <linux/uaccess.h>
>> #include <linux/usb.h>
>> +#include <linux/usb/cdc.h>
>> #include <linux/usb/serial.h>
>> #include <linux/serial.h>
>> #include "usb-wwan.h"
>>
>> +#define ACM_CTRL_DTR 0x01
>> +#define ACM_CTRL_RTS 0x02
>
> Why are these not in the cdc.h file already?

These are defined in the drivers/usb/class/cdc-acm.h file. Is it safe
to include it?

Thanks,
sdlyyxy


2022-07-22 07:14:54

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH v2] USB: serial: usb_wwan: replace DTR/RTS magic numbers with macros

On Fri, Jul 22, 2022 at 10:40:51AM +0800, Yan Xinyu wrote:
> > On Jul 22, 2022, at 02:18, Greg KH <[email protected]> wrote:
> >
> > On Thu, Jul 21, 2022 at 11:52:57PM +0800, Yan Xinyu wrote:
> >> The usb_wwan_send_setup function generates DTR/RTS signals in compliance
> >> with CDC ACM standard. This patch changes magic numbers in this function
> >> to equivalent macros.
> >>
> >> Signed-off-by: Yan Xinyu <[email protected]>
> >> ---
> >> v1->v2:
> >> * Fix Signed-off-by name.
> >> ---
> >> drivers/usb/serial/usb_wwan.c | 13 +++++++++----
> >> 1 file changed, 9 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/drivers/usb/serial/usb_wwan.c b/drivers/usb/serial/usb_wwan.c
> >> index dab38b63eaf7..a6bd6144702d 100644
> >> --- a/drivers/usb/serial/usb_wwan.c
> >> +++ b/drivers/usb/serial/usb_wwan.c
> >> @@ -29,10 +29,14 @@
> >> #include <linux/bitops.h>
> >> #include <linux/uaccess.h>
> >> #include <linux/usb.h>
> >> +#include <linux/usb/cdc.h>
> >> #include <linux/usb/serial.h>
> >> #include <linux/serial.h>
> >> #include "usb-wwan.h"
> >>
> >> +#define ACM_CTRL_DTR 0x01
> >> +#define ACM_CTRL_RTS 0x02
> >
> > Why are these not in the cdc.h file already?
>
> These are defined in the drivers/usb/class/cdc-acm.h file. Is it safe
> to include it?

Yes, of course!