* [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.