Hello Oliver, Am Dienstag, 8. Mai 2012, 16:15:24 schrieb Oliver Neukum: > Am Dienstag, 8. Mai 2012, 16:09:31 schrieb Alexander Stein: > > Hello, > > > > I have a H24 modem which is configured in with "AT+MCONN=4" to use 2 > > interfaces for Data and Control. The Data interface is used by cdc_acm and > > works find, but the control interface generates the following error > > messages each time the driver/device binding happens. > > [ 47.985329] cdc_acm 8-1:1.0: ttyACM1: USB ACM device > > [ 47.992386] cdc_acm 8-1:1.2: Zero length descriptor references > > [ 47.998417] cdc_acm: probe of 8-1:1.2 failed with error -22 > > > > The control interface can be used by usbserial as referenced in the "H24 > > AT > > Commands Refernece Guide" using > > > > > modprobe usbserial vendor=0x22b8 product=0x2d93 > > > > Is there a way either cdc_acm can use the Control interface or silently > > ignore it? > > This is possible, but not necessarily sensible. It depends on whether the > device sends notifications. Please add it to this list: > > static const struct usb_device_id acm_ids[] = { > /* quirky and broken devices */ > { USB_DEVICE(0x0870, 0x0001), /* Metricom GS Modem */ > .driver_info = NO_UNION_NORMAL, /* has no union descriptor */ > }, > { USB_DEVICE(0x0e8d, 0x0003), /* FIREFLY, MediaTek Inc; > andrey.arapov@xxxxxxxxx */ .driver_info = NO_UNION_NORMAL, /* has no union > descriptor */ > > with a NO_UNION_NORMAL quirk and retest. Well there is already an entry for the device itself. { USB_DEVICE(0x22b8, 0x2d93) }, /* modem + AT port */ So I added the following patch: @@ -1471,11 +1471,13 @@ static const struct usb_device_id acm_ids[] = { { USB_DEVICE(0x22b8, 0x6425), /* Motorola MOTOMAGX phones */ }, /* Motorola H24 HSPA module: */ { USB_DEVICE(0x22b8, 0x2d91) }, /* modem */ { USB_DEVICE(0x22b8, 0x2d92) }, /* modem + diagnostics */ - { USB_DEVICE(0x22b8, 0x2d93) }, /* modem + AT port */ + { USB_DEVICE(0x22b8, 0x2d93), /* modem + AT port */ + .driver_info = NO_UNION_NORMAL, + }, { USB_DEVICE(0x22b8, 0x2d95) }, /* modem + AT port + diagnostics */ { USB_DEVICE(0x22b8, 0x2d96) }, /* modem + NMEA */ { USB_DEVICE(0x22b8, 0x2d97) }, /* modem + diagnostics + NMEA */ { USB_DEVICE(0x22b8, 0x2d99) }, /* modem + AT port + NMEA */ { USB_DEVICE(0x22b8, 0x2d9a) }, /* modem + AT port + diagnostics + NMEA */ After that I get a ttyACM for the modem interface and there is no more error message. But I still need the usbserial driver for the control interface. I'm not exactly sure if that is what you intended. At least the error message is gone. Best regards, Alexander -- Dipl.-Inf. Alexander Stein SYS TEC electronic GmbH August-Bebel-Str. 29 D-07973 Greiz Tel: +49-3661-6279-0, Fax: +49-3661-6279-99 eMail: Alexander.Stein@xxxxxxxxxxxxxxxxxxxxx Internet: http://www.systec-electronic.com Managing Director: Dipl.-Phys. Siegmar Schmidt Commercial registry: Amtsgericht Jena, HRB 205563 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html