Re: cdc_acm: Zero length descriptor references with Motorola H24

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux