On Wed, 2016-11-16 at 11:49 -0600, Dan Williams wrote:
> On Tue, 2016-11-15 at 20:13 +0100, Giuseppe Lippolis wrote:
> >
> > Dear all,
> > I'm porting the Dlink DWR-512 device to LEDE (embedded linux).
> > This device embed a 3G modem connected through the usb bus .
> > The modem work properly with the option kernel module.
> >
> > I added these line in the
> >
> > #define DLINK_PRODUCT_DWM_652 0x3e04
> > #define DLINK_PRODUCT_DWM_652_U5 0xce16
> > #define DLINK_PRODUCT_DWM_652_U5A 0xce1e
> >
> > + #define DLINK_ATL_VENDOR_ID 0x
> > 20
> > 01
> > + #define DLINK_PRODUCT_DWM_158 0x7d04
> >
> > #define QISDA_VENDOR_ID 0x1da5
> > #define QISDA_PRODUCT_H21_4512 0x4512
> >
> > [...]
> >
> > { USB_DEVICE(ALINK_VENDOR_ID, DLINK_PRODUCT_DWM_652_U5) },
> > /*
> > Yes,
> > ALINK_VENDOR_ID */
> > { USB_DEVICE(ALINK_VENDOR_ID, DLINK_PRODUCT_DWM_652_U5A) },
> > + { USB_DEVICE(DLINK_ATL_VENDOR_ID, DLINK_PRODUCT_DWM_158) },
>
> This will make option grab all the ports, as shown by your dmesg
> output. But USB interfaces 0 and 1 are actually cdc-ether and should
> *not* be grabbed by option.
>
> You want to limit option to grabbing bInterfaceClass=255 to make sure
> it only gets the serial ports.
Also, is it really a D-Link DWM-158? That appears to be a USB dongle-
type device, while what's in the DWR-512 is a PCI-E minicard that looks
like a ZTE MF210, from the FCC pictures.
Dan
> Dan
>
> >
> > { USB_DEVICE(QISDA_VENDOR_ID, QISDA_PRODUCT_H21_4512) },
> > { USB_DEVICE(QISDA_VENDOR_ID, QISDA_PRODUCT_H21_4523) },
> >
> > And at the end the system work as expected:
> >
> > [ 11.659320] usbcore: registered new interface driver usbserial
> > [ 11.671412] usbcore: registered new interface driver
> > usbserial_generic
> > [ 11.684835] usbserial: USB Serial support registered for generic
> > [ 11.739752] xt_time: kernel timezone is -0000
> > [ 11.865508] PPP generic driver version 2.4.2
> > [ 11.880069] NET: Registered protocol family 24
> > [ 11.919594] usbcore: registered new interface driver option
> > [ 11.931155] usbserial: USB Serial support registered for GSM
> > modem
> > (1-port)
> > [ 11.945724] option 1-1:1.0: no of_node; not parsing pinctrl DT
> > [ 11.946566] option 1-1:1.0: GSM modem (1-port) converter
> > detected
> > [ 11.959201] option1 ttyUSB0: no of_node; not parsing pinctrl DT
> > [ 11.959661] option 1-1:1.1: no of_node; not parsing pinctrl DT
> > [ 11.960472] option 1-1:1.1: GSM modem (1-port) converter
> > detected
> > [ 11.973103] option1 ttyUSB1: no of_node; not parsing pinctrl DT
> > [ 11.973542] option 1-1:1.2: no of_node; not parsing pinctrl DT
> > [ 11.974347] option 1-1:1.2: GSM modem (1-port) converter
> > detected
> > [ 11.986980] option1 ttyUSB2: no of_node; not parsing pinctrl DT
> > [ 11.987462] usb 1-1: GSM modem (1-port) converter now attached
> > to
> > ttyUSB2
> > [ 12.001470] option 1-1:1.3: no of_node; not parsing pinctrl DT
> > [ 12.002354] option 1-1:1.3: GSM modem (1-port) converter
> > detected
> > [ 12.015005] option1 ttyUSB3: no of_node; not parsing pinctrl DT
> > [ 12.015479] usb 1-1: GSM modem (1-port) converter now attached
> > to
> > ttyUSB3
> > [ 12.029487] option 1-1:1.4: no of_node; not parsing pinctrl DT
> > [ 12.030327] option 1-1:1.4: GSM modem (1-port) converter
> > detected
> > [ 12.042978] option1 ttyUSB4: no of_node; not parsing pinctrl DT
> > [ 12.043463] usb 1-1: GSM modem (1-port) converter now attached
> > to
> > ttyUSB4
> > [ 12.057468] option 1-1:1.5: no of_node; not parsing pinctrl DT
> > [ 12.058395] option 1-1:1.5: GSM modem (1-port) converter
> > detected
> > [ 12.070971] option1 ttyUSB5: no of_node; not parsing pinctrl DT
> > [ 12.071482] usb 1-1: GSM modem (1-port) converter now attached
> > to
> > ttyUSB5
> > [ 12.085484] option 1-1:1.6: no of_node; not parsing pinctrl DT
> >
> >
> > Here the relevant lsusb info:
> >
> > Bus 001 Device 002: ID 2001:7d04 D-Link Corp.
> > Device Descriptor:
> > bLength 18
> > bDescriptorType 1
> > bcdUSB 2.00
> > bDeviceClass 2 Communications
> > bDeviceSubClass 0
> > bDeviceProtocol 0
> > bMaxPacketSize0 64
> > idVendor 0x2001 D-Link Corp.
> > idProduct 0x7d04
> > bcdDevice 3.00
> > iManufacturer 10 D-Link,Inc
> > iProduct 11 D-Link DWM-158
> > iSerial 0
> > bNumConfigurations 1
> > Configuration Descriptor:
> > bLength 9
> > bDescriptorType 2
> > wTotalLength 229
> > 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 6 Ethernet Networking
> > bFunctionProtocol 0
> > iFunction 2 COM(comm_if)
> > Interface Descriptor:
> > bLength 9
> > bDescriptorType 4
> > bInterfaceNumber 0
> > bAlternateSetting 0
> > bNumEndpoints 1
> > bInterfaceClass 2 Communications
> > bInterfaceSubClass 6 Ethernet Networking
> > bInterfaceProtocol 0
> > iInterface 2 COM(comm_if)
> > CDC Header:
> > bcdCDC 1.10
> > CDC Union:
> > bMasterInterface 0
> > bSlaveInterface 1
> > CDC Ethernet:
> > iMacAddress 1 0200FFAAAAAA
> > bmEthernetStatistics 0x7f180000
> > wMaxSegmentSize 1514
> > wNumberMCFilters 0x0000
> > bNumberPowerFilters 16
> > 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 Unused
> > bInterfaceProtocol 0
> > iInterface 3 COM(data_if)
> > Interface Descriptor:
> > bLength 9
> > bDescriptorType 4
> > bInterfaceNumber 1
> > bAlternateSetting 1
> > bNumEndpoints 2
> > bInterfaceClass 10 CDC Data
> > bInterfaceSubClass 0 Unused
> > bInterfaceProtocol 0
> > 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 4 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 1
> > 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 6 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 7 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 8 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 9 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 2 Communications
> > bDeviceSubClass 0
> > bDeviceProtocol 0
> > bMaxPacketSize0 64
> > bNumConfigurations 1
> > Device Status: 0x0002
> > (Bus Powered)
> > Remote Wakeup Enabled
> >
> >
> > Is it possible to register the device in the option.c code?
> >
> > Regards.
> >
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-
> > usb"
> > in
> > the body of a message to [email protected]
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb"
> in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html