* [PATCH] USB: serial: option: add support for D-Link DWM-157 C1
@ 2017-08-21 15:43 Maciej S. Szmigiero
2017-08-28 10:19 ` Johan Hovold
0 siblings, 1 reply; 10+ messages in thread
From: Maciej S. Szmigiero @ 2017-08-21 15:43 UTC (permalink / raw)
To: Johan Hovold; +Cc: Greg Kroah-Hartman, linux-usb, linux-kernel, stable
This commit adds support (IDs, really) for D-Link DWM-157 hardware version
C1 USB modem to option driver.
According to manufacturer-provided Windows INF file the device has four
serial ports:
"D-Link HSPA+DataCard Diagnostics Interface" (interface 2; modem port),
"D-Link HSPA+DataCard NMEA Device" (interface 3),
"D-Link HSPA+DataCard Speech Port" (interface 4),
"D-Link HSPA+DataCard Debug Port" (interface 5).
Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
Cc: stable@vger.kernel.org
---
drivers/usb/serial/option.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index fe123153b1a5..fa887c6e50e7 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -2023,6 +2023,8 @@ static const struct usb_device_id option_ids[] = {
{ USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d03, 0xff, 0x02, 0x01) },
{ USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d03, 0xff, 0x00, 0x00) },
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff) }, /* D-Link DWM-158 */
+ { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d0e, 0xff, 0x02, 0x01) }, /* D-Link DWM-157 C1 */
+ { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d0e, 0xff, 0x00, 0x00) },
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e19, 0xff), /* D-Link DWM-221 B1 */
.driver_info = (kernel_ulong_t)&net_intf4_blacklist },
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e35, 0xff), /* D-Link DWM-222 */
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] USB: serial: option: add support for D-Link DWM-157 C1
2017-08-21 15:43 [PATCH] USB: serial: option: add support for D-Link DWM-157 C1 Maciej S. Szmigiero
@ 2017-08-28 10:19 ` Johan Hovold
2017-08-28 14:32 ` Maciej S. Szmigiero
0 siblings, 1 reply; 10+ messages in thread
From: Johan Hovold @ 2017-08-28 10:19 UTC (permalink / raw)
To: Maciej S. Szmigiero
Cc: Johan Hovold, Greg Kroah-Hartman, linux-usb, linux-kernel, stable
On Mon, Aug 21, 2017 at 05:43:46PM +0200, Maciej S. Szmigiero wrote:
> This commit adds support (IDs, really) for D-Link DWM-157 hardware version
> C1 USB modem to option driver.
>
> According to manufacturer-provided Windows INF file the device has four
> serial ports:
> "D-Link HSPA+DataCard Diagnostics Interface" (interface 2; modem port),
> "D-Link HSPA+DataCard NMEA Device" (interface 3),
> "D-Link HSPA+DataCard Speech Port" (interface 4),
> "D-Link HSPA+DataCard Debug Port" (interface 5).
>
> Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
> Cc: stable@vger.kernel.org
> ---
> drivers/usb/serial/option.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
> index fe123153b1a5..fa887c6e50e7 100644
> --- a/drivers/usb/serial/option.c
> +++ b/drivers/usb/serial/option.c
> @@ -2023,6 +2023,8 @@ static const struct usb_device_id option_ids[] = {
> { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d03, 0xff, 0x02, 0x01) },
> { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d03, 0xff, 0x00, 0x00) },
> { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff) }, /* D-Link DWM-158 */
> + { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d0e, 0xff, 0x02, 0x01) }, /* D-Link DWM-157 C1 */
> + { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d0e, 0xff, 0x00, 0x00) },
What is the reason for not using a single USB_DEVICE_INTERFACE_CLASS
here instead?
Do you have access to this device so that you could post the output of
usb-devices (or "lsusb -v")?
> { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e19, 0xff), /* D-Link DWM-221 B1 */
> .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
> { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e35, 0xff), /* D-Link DWM-222 */
Thanks,
Johan
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] USB: serial: option: add support for D-Link DWM-157 C1
2017-08-28 10:19 ` Johan Hovold
@ 2017-08-28 14:32 ` Maciej S. Szmigiero
2017-08-29 7:41 ` Johan Hovold
0 siblings, 1 reply; 10+ messages in thread
From: Maciej S. Szmigiero @ 2017-08-28 14:32 UTC (permalink / raw)
To: Johan Hovold; +Cc: Greg Kroah-Hartman, linux-usb, linux-kernel, stable
[-- Attachment #1: Type: text/plain, Size: 1985 bytes --]
Hi Johan,
On 28.08.2017 12:19, Johan Hovold wrote:
> On Mon, Aug 21, 2017 at 05:43:46PM +0200, Maciej S. Szmigiero wrote:
>> This commit adds support (IDs, really) for D-Link DWM-157 hardware version
>> C1 USB modem to option driver.
>>
>> According to manufacturer-provided Windows INF file the device has four
>> serial ports:
>> "D-Link HSPA+DataCard Diagnostics Interface" (interface 2; modem port),
>> "D-Link HSPA+DataCard NMEA Device" (interface 3),
>> "D-Link HSPA+DataCard Speech Port" (interface 4),
>> "D-Link HSPA+DataCard Debug Port" (interface 5).
>>
>> Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
>> Cc: stable@vger.kernel.org
>> ---
>> drivers/usb/serial/option.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
>> index fe123153b1a5..fa887c6e50e7 100644
>> --- a/drivers/usb/serial/option.c
>> +++ b/drivers/usb/serial/option.c
>> @@ -2023,6 +2023,8 @@ static const struct usb_device_id option_ids[] = {
>> { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d03, 0xff, 0x02, 0x01) },
>> { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d03, 0xff, 0x00, 0x00) },
>> { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff) }, /* D-Link DWM-158 */
>> + { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d0e, 0xff, 0x02, 0x01) }, /* D-Link DWM-157 C1 */
>> + { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d0e, 0xff, 0x00, 0x00) },
>
> What is the reason for not using a single USB_DEVICE_INTERFACE_CLASS
> here instead?
This is done to be as specific as possible (in case D-Link makes a
similar device with a different interface list or changes it
with a firmware update).
Also, three other D-Link modems few lines above are using the same
USB_DEVICE_AND_INTERFACE_INFO() selectors.
> Do you have access to this device so that you could post the output of
> usb-devices (or "lsusb -v")?
I've attached lsusb output to this message, since it is pretty long.
> Thanks,
> Johan
Thanks,
Maciej
[-- Attachment #2: lsusb.txt --]
[-- Type: text/plain, Size: 10104 bytes --]
Bus 003 Device 007: ID 2001:7d0e D-Link Corp.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x2001 D-Link Corp.
idProduct 0x7d0e
bcdDevice 3.00
iManufacturer 9 D-Link,Inc
iProduct 10 D-Link DWM-157
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 228
bNumInterfaces 7
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 500mA
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 2
bFunctionClass 2 Communications
bFunctionSubClass 14
bFunctionProtocol 0
iFunction 1 COM(comm_if)
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 14
bInterfaceProtocol 0
iInterface 1 COM(comm_if)
CDC Header:
bcdCDC 1.10
CDC Union:
bMasterInterface 0
bSlaveInterface 1
CDC MBIM:
bcdMBIMVersion 1.00
wMaxControlMessage 512
bNumberFilters 16
bMaxFilterSize 64
wMaxSegmentSize 1500
bmNetworkCapabilities 0x20
8-byte ntb input size
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x88 EP 8 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0
bInterfaceProtocol 2
iInterface 2 COM(data_if)
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0
bInterfaceProtocol 2
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 1
iInterface 3 COM(comm_if)
** UNRECOGNIZED: 05 24 00 10 01
** UNRECOGNIZED: 04 24 02 0f
** UNRECOGNIZED: 05 24 06 02 03
** UNRECOGNIZED: 05 24 01 03 03
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x87 EP 7 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 3
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 5 COM(data_if)
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 4
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 6 COM(data_if)
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 5
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 7 COM(data_if)
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x85 EP 5 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x05 EP 5 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 6
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk-Only
iInterface 8 Mass Storage
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x86 EP 6 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x06 EP 6 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0002
(Bus Powered)
Remote Wakeup Enabled
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] USB: serial: option: add support for D-Link DWM-157 C1
2017-08-28 14:32 ` Maciej S. Szmigiero
@ 2017-08-29 7:41 ` Johan Hovold
2017-08-29 8:08 ` Bjørn Mork
0 siblings, 1 reply; 10+ messages in thread
From: Johan Hovold @ 2017-08-29 7:41 UTC (permalink / raw)
To: Maciej S. Szmigiero
Cc: Johan Hovold, Greg Kroah-Hartman, linux-usb, linux-kernel, stable
On Mon, Aug 28, 2017 at 04:32:53PM +0200, Maciej S. Szmigiero wrote:
> Hi Johan,
>
> On 28.08.2017 12:19, Johan Hovold wrote:
> > On Mon, Aug 21, 2017 at 05:43:46PM +0200, Maciej S. Szmigiero wrote:
> >> This commit adds support (IDs, really) for D-Link DWM-157 hardware version
> >> C1 USB modem to option driver.
> >>
> >> According to manufacturer-provided Windows INF file the device has four
> >> serial ports:
> >> "D-Link HSPA+DataCard Diagnostics Interface" (interface 2; modem port),
> >> "D-Link HSPA+DataCard NMEA Device" (interface 3),
> >> "D-Link HSPA+DataCard Speech Port" (interface 4),
> >> "D-Link HSPA+DataCard Debug Port" (interface 5).
> >>
> >> Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
> >> Cc: stable@vger.kernel.org
> >> ---
> >> drivers/usb/serial/option.c | 2 ++
> >> 1 file changed, 2 insertions(+)
> >>
> >> diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
> >> index fe123153b1a5..fa887c6e50e7 100644
> >> --- a/drivers/usb/serial/option.c
> >> +++ b/drivers/usb/serial/option.c
> >> @@ -2023,6 +2023,8 @@ static const struct usb_device_id option_ids[] = {
> >> { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d03, 0xff, 0x02, 0x01) },
> >> { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d03, 0xff, 0x00, 0x00) },
> >> { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff) }, /* D-Link DWM-158 */
> >> + { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d0e, 0xff, 0x02, 0x01) }, /* D-Link DWM-157 C1 */
> >> + { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d0e, 0xff, 0x00, 0x00) },
> >
> > What is the reason for not using a single USB_DEVICE_INTERFACE_CLASS
> > here instead?
>
> This is done to be as specific as possible (in case D-Link makes a
> similar device with a different interface list or changes it
> with a firmware update).
We can always add more specific matching if this ever becomes an issue.
> Also, three other D-Link modems few lines above are using the same
> USB_DEVICE_AND_INTERFACE_INFO() selectors.
Yeah, I noticed those, and I'm not sure why they're not using
class-matching only either (and note that we have some entries that do).
> > Do you have access to this device so that you could post the output of
> > usb-devices (or "lsusb -v")?
>
> I've attached lsusb output to this message, since it is pretty long.
Ok, thanks. So using USB_DEVICE_INTERFACE_CLASS() looks like it would
work for this device, so please use that instead.
If possible, try to include the more compact output of usb-devices in
the commit message so we have it easily accessible.
Thanks,
Johan
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] USB: serial: option: add support for D-Link DWM-157 C1
2017-08-29 7:41 ` Johan Hovold
@ 2017-08-29 8:08 ` Bjørn Mork
2017-08-29 8:27 ` Johan Hovold
0 siblings, 1 reply; 10+ messages in thread
From: Bjørn Mork @ 2017-08-29 8:08 UTC (permalink / raw)
To: Johan Hovold
Cc: Maciej S. Szmigiero, Greg Kroah-Hartman, linux-usb, linux-kernel, stable
Johan Hovold <johan@kernel.org> writes:
> On Mon, Aug 28, 2017 at 04:32:53PM +0200, Maciej S. Szmigiero wrote:
>
>> Also, three other D-Link modems few lines above are using the same
>> USB_DEVICE_AND_INTERFACE_INFO() selectors.
>
> Yeah, I noticed those, and I'm not sure why they're not using
> class-matching only either (and note that we have some entries that do).
I see that I'm responsible for those. They can probably be compressed to
USB_DEVICE_INTERFACE_CLASS(). I assume I just didn't think about it...
FWIW, I found this 'devices' listing for the 2001:7d01 device. I believe
the 7d02 and 7d03 are similar:
P: Vendor=2001 ProdID=7d01 Rev= 3.00
S: Manufacturer=D-Link,Inc
S: Product=D-Link DWM-156
C:* #Ifs= 7 Cfg#= 1 Atr=a0 MxPwr=500mA
A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=0e Prot=00
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0e Prot=00 Driver=cdc_mbim
E: Ad=88(I) Atr=03(Int.) MxPS= 64 Ivl=125us
I: If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
I:* If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=02 Prot=01 Driver=option
E: Ad=87(I) Atr=03(Int.) MxPS= 64 Ivl=500us
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 6 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
Bjørn
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] USB: serial: option: add support for D-Link DWM-157 C1
2017-08-29 8:08 ` Bjørn Mork
@ 2017-08-29 8:27 ` Johan Hovold
0 siblings, 0 replies; 10+ messages in thread
From: Johan Hovold @ 2017-08-29 8:27 UTC (permalink / raw)
To: Bjørn Mork
Cc: Johan Hovold, Maciej S. Szmigiero, Greg Kroah-Hartman, linux-usb,
linux-kernel, stable
On Tue, Aug 29, 2017 at 10:08:13AM +0200, Bjørn Mork wrote:
> Johan Hovold <johan@kernel.org> writes:
> > On Mon, Aug 28, 2017 at 04:32:53PM +0200, Maciej S. Szmigiero wrote:
> >
> >> Also, three other D-Link modems few lines above are using the same
> >> USB_DEVICE_AND_INTERFACE_INFO() selectors.
> >
> > Yeah, I noticed those, and I'm not sure why they're not using
> > class-matching only either (and note that we have some entries that do).
>
> I see that I'm responsible for those. They can probably be compressed to
> USB_DEVICE_INTERFACE_CLASS(). I assume I just didn't think about it...
Thanks for confirming.
> FWIW, I found this 'devices' listing for the 2001:7d01 device. I believe
> the 7d02 and 7d03 are similar:
>
> P: Vendor=2001 ProdID=7d01 Rev= 3.00
> S: Manufacturer=D-Link,Inc
> S: Product=D-Link DWM-156
> C:* #Ifs= 7 Cfg#= 1 Atr=a0 MxPwr=500mA
> A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=0e Prot=00
> I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0e Prot=00 Driver=cdc_mbim
> E: Ad=88(I) Atr=03(Int.) MxPS= 64 Ivl=125us
> I: If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
> I:* If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
> E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=02 Prot=01 Driver=option
> E: Ad=87(I) Atr=03(Int.) MxPS= 64 Ivl=500us
> E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
> E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
> E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> I:* If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
> E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> I:* If#= 6 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
> E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I guess we could use USB_DEVICE_INTERFACE_CLASS() for these three as
well then, if only to avoid having others reproducing this pattern.
Judging from the commit message of a2a2d6c7f93e ("USB: option: add a
D-Link DWM-156 variant") it seems we're not even sure anyone is using
0x7d02 and 0x7d03 so the risk of breaking something (by introducing new
dummy ports) should be low.
Do you want to submit a patch or should I do it?
Thanks,
Johan
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] USB: serial: option: add support for D-Link DWM-157 C1
@ 2017-08-29 8:27 ` Johan Hovold
0 siblings, 0 replies; 10+ messages in thread
From: Johan Hovold @ 2017-08-29 8:27 UTC (permalink / raw)
To: Bjørn Mork
Cc: Johan Hovold, Maciej S. Szmigiero, Greg Kroah-Hartman, linux-usb,
linux-kernel, stable
On Tue, Aug 29, 2017 at 10:08:13AM +0200, Bj�rn Mork wrote:
> Johan Hovold <johan@kernel.org> writes:
> > On Mon, Aug 28, 2017 at 04:32:53PM +0200, Maciej S. Szmigiero wrote:
> >
> >> Also, three other D-Link modems few lines above are using the same
> >> USB_DEVICE_AND_INTERFACE_INFO() selectors.
> >
> > Yeah, I noticed those, and I'm not sure why they're not using
> > class-matching only either (and note that we have some entries that do).
>
> I see that I'm responsible for those. They can probably be compressed to
> USB_DEVICE_INTERFACE_CLASS(). I assume I just didn't think about it...
Thanks for confirming.
> FWIW, I found this 'devices' listing for the 2001:7d01 device. I believe
> the 7d02 and 7d03 are similar:
>
> P: Vendor=2001 ProdID=7d01 Rev= 3.00
> S: Manufacturer=D-Link,Inc
> S: Product=D-Link DWM-156
> C:* #Ifs= 7 Cfg#= 1 Atr=a0 MxPwr=500mA
> A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=0e Prot=00
> I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0e Prot=00 Driver=cdc_mbim
> E: Ad=88(I) Atr=03(Int.) MxPS= 64 Ivl=125us
> I: If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
> I:* If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
> E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=02 Prot=01 Driver=option
> E: Ad=87(I) Atr=03(Int.) MxPS= 64 Ivl=500us
> E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
> E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
> E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> I:* If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
> E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> I:* If#= 6 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
> E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I guess we could use USB_DEVICE_INTERFACE_CLASS() for these three as
well then, if only to avoid having others reproducing this pattern.
Judging from the commit message of a2a2d6c7f93e ("USB: option: add a
D-Link DWM-156 variant") it seems we're not even sure anyone is using
0x7d02 and 0x7d03 so the risk of breaking something (by introducing new
dummy ports) should be low.
Do you want to submit a patch or should I do it?
Thanks,
Johan
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH] USB: serial: option: simplify 3 D-Link device entries
2017-08-29 8:27 ` Johan Hovold
(?)
@ 2017-08-29 8:45 ` Bjørn Mork
2017-08-29 14:41 ` Johan Hovold
-1 siblings, 1 reply; 10+ messages in thread
From: Bjørn Mork @ 2017-08-29 8:45 UTC (permalink / raw)
To: Johan Hovold
Cc: Maciej S . Szmigiero, Greg Kroah-Hartman, linux-usb,
linux-kernel, Bjørn Mork
All the vendor specific interfaces on these devices are serial
functions handled by this driver, so we can use a single class
match entry for each.
P: Vendor=2001 ProdID=7d01 Rev= 3.00
S: Manufacturer=D-Link,Inc
S: Product=D-Link DWM-156
C:* #Ifs= 7 Cfg#= 1 Atr=a0 MxPwr=500mA
A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=0e Prot=00
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0e Prot=00 Driver=cdc_mbim
E: Ad=88(I) Atr=03(Int.) MxPS= 64 Ivl=125us
I: If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
I:* If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=02 Prot=01 Driver=option
E: Ad=87(I) Atr=03(Int.) MxPS= 64 Ivl=500us
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 6 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
Signed-off-by: Bjørn Mork <bjorn@mork.no>
---
Johan Hovold <johan@kernel.org> writes:
> Do you want to submit a patch or should I do it?
Well, I can save you that job if this is fine with you. Feel
free to add a stable cc if you think it is appropriate. I am not
sure...
Bjørn
drivers/usb/serial/option.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index fe123153b1a5..05862b75f895 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -2016,12 +2016,9 @@ static const struct usb_device_id option_ids[] = {
{ USB_DEVICE(TPLINK_VENDOR_ID, 0x9000), /* TP-Link MA260 */
.driver_info = (kernel_ulong_t)&net_intf4_blacklist },
{ USB_DEVICE(CHANGHONG_VENDOR_ID, CHANGHONG_PRODUCT_CH690) },
- { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d01, 0xff, 0x02, 0x01) }, /* D-Link DWM-156 (variant) */
- { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d01, 0xff, 0x00, 0x00) }, /* D-Link DWM-156 (variant) */
- { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d02, 0xff, 0x02, 0x01) },
- { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d02, 0xff, 0x00, 0x00) },
- { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d03, 0xff, 0x02, 0x01) },
- { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d03, 0xff, 0x00, 0x00) },
+ { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d01, 0xff) }, /* D-Link DWM-156 (variant) */
+ { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) },
+ { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff) }, /* D-Link DWM-158 */
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e19, 0xff), /* D-Link DWM-221 B1 */
.driver_info = (kernel_ulong_t)&net_intf4_blacklist },
--
2.11.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] USB: serial: option: simplify 3 D-Link device entries
2017-08-29 8:45 ` [PATCH] USB: serial: option: simplify 3 D-Link device entries Bjørn Mork
@ 2017-08-29 14:41 ` Johan Hovold
2017-08-30 7:47 ` Johan Hovold
0 siblings, 1 reply; 10+ messages in thread
From: Johan Hovold @ 2017-08-29 14:41 UTC (permalink / raw)
To: Bjørn Mork
Cc: Johan Hovold, Maciej S . Szmigiero, Greg Kroah-Hartman,
linux-usb, linux-kernel
On Tue, Aug 29, 2017 at 10:45:13AM +0200, Bjørn Mork wrote:
> All the vendor specific interfaces on these devices are serial
> functions handled by this driver, so we can use a single class
> match entry for each.
>
> P: Vendor=2001 ProdID=7d01 Rev= 3.00
> S: Manufacturer=D-Link,Inc
> S: Product=D-Link DWM-156
> C:* #Ifs= 7 Cfg#= 1 Atr=a0 MxPwr=500mA
> A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=0e Prot=00
> I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0e Prot=00 Driver=cdc_mbim
> E: Ad=88(I) Atr=03(Int.) MxPS= 64 Ivl=125us
> I: If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
> I:* If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
> E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=02 Prot=01 Driver=option
> E: Ad=87(I) Atr=03(Int.) MxPS= 64 Ivl=500us
> E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
> E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
> E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> I:* If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
> E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> I:* If#= 6 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
> E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
>
> Signed-off-by: Bjørn Mork <bjorn@mork.no>
> ---
>
> Johan Hovold <johan@kernel.org> writes:
>
> > Do you want to submit a patch or should I do it?
>
> Well, I can save you that job if this is fine with you. Feel
> free to add a stable cc if you think it is appropriate. I am not
> sure...
Thanks! Yeah, not sure about stable either. Maybe I'll just apply this
one on top the new entry coming in, and we can defer the decision to the
stable maintainers next time there's a backport conflict.
Johan
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] USB: serial: option: simplify 3 D-Link device entries
2017-08-29 14:41 ` Johan Hovold
@ 2017-08-30 7:47 ` Johan Hovold
0 siblings, 0 replies; 10+ messages in thread
From: Johan Hovold @ 2017-08-30 7:47 UTC (permalink / raw)
To: Bjørn Mork
Cc: Johan Hovold, Maciej S . Szmigiero, Greg Kroah-Hartman,
linux-usb, linux-kernel
On Tue, Aug 29, 2017 at 04:41:21PM +0200, Johan Hovold wrote:
> On Tue, Aug 29, 2017 at 10:45:13AM +0200, Bjørn Mork wrote:
> > All the vendor specific interfaces on these devices are serial
> > functions handled by this driver, so we can use a single class
> > match entry for each.
> >
> > P: Vendor=2001 ProdID=7d01 Rev= 3.00
> > S: Manufacturer=D-Link,Inc
> > S: Product=D-Link DWM-156
> > C:* #Ifs= 7 Cfg#= 1 Atr=a0 MxPwr=500mA
> > A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=0e Prot=00
> > I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0e Prot=00 Driver=cdc_mbim
> > E: Ad=88(I) Atr=03(Int.) MxPS= 64 Ivl=125us
> > I: If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
> > I:* If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
> > E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> > E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> > I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=02 Prot=01 Driver=option
> > E: Ad=87(I) Atr=03(Int.) MxPS= 64 Ivl=500us
> > E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> > E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> > I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
> > E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> > E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> > I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
> > E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> > E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> > I:* If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
> > E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> > E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> > I:* If#= 6 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
> > E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> > E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> >
> > Signed-off-by: Bjørn Mork <bjorn@mork.no>
> > ---
> >
> > Johan Hovold <johan@kernel.org> writes:
> >
> > > Do you want to submit a patch or should I do it?
> >
> > Well, I can save you that job if this is fine with you. Feel
> > free to add a stable cc if you think it is appropriate. I am not
> > sure...
>
> Thanks! Yeah, not sure about stable either. Maybe I'll just apply this
> one on top the new entry coming in, and we can defer the decision to the
> stable maintainers next time there's a backport conflict.
Now applied (without stable-CC).
Thanks,
Johan
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2017-08-30 7:47 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-21 15:43 [PATCH] USB: serial: option: add support for D-Link DWM-157 C1 Maciej S. Szmigiero
2017-08-28 10:19 ` Johan Hovold
2017-08-28 14:32 ` Maciej S. Szmigiero
2017-08-29 7:41 ` Johan Hovold
2017-08-29 8:08 ` Bjørn Mork
2017-08-29 8:27 ` Johan Hovold
2017-08-29 8:27 ` Johan Hovold
2017-08-29 8:45 ` [PATCH] USB: serial: option: simplify 3 D-Link device entries Bjørn Mork
2017-08-29 14:41 ` Johan Hovold
2017-08-30 7:47 ` Johan Hovold
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.