Re: [RFC] usb,serial: Make ZTE modem work again

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

 



On Tue, 14 Dec 2010 14:25:49 -0500
Don Zickus <dzickus@xxxxxxxxxx> wrote:

> Hi,
> 
> I am investigating a bug in RHEL-6 (2.6.32) where the ZTE modem isn't
> working (basically devid 19d2:2000).  This is one of those devices that
> start as a cd-rom that magically converts itself into a modem.
> 
> The initial addition was commit 5bb4bd9895df508ed2bd8b3280252d8a8170e4ac,
> but that seemed to have a typo that was fixed here
> 3b498a66a698c581535c0fcf1a8907f3fe9449cc (through testing).  Later, the
> device ids seemed to be removed on the basis they didn't belong there in
> commit c420befde6b2747ebc2b8f015687a5dbd6e167ca.  I believe that is when
> the device stopped working.
> 
> Adding the following patch (basically reverts part of the last commit),
> fixes the problem.
> 
> I don't know this code well enough to know if this is the right fix or if
> the device ids were supposed to be added somewhere else.
> 
> Hopefully someone smarter than me can help me out here.
> 
> Thoughts?

Your patch is wrong. We don't add the device id 19d2:2000 because it's a
CD-rom device id (usb-storage). If you notice, it has an /dev/srX entry in your
system. When you eject /dev/srX, the device 19d2:2000 disappears, then the real
modem device id appears, which then should be in the device id table of option
driver.

These usb modems expose this /dev/srX with windows drivers etc., but are of
no use in Linux. Newer distros automatically should eject this CD-rom only
devices to get the real modem, for example usb_modeswitch can be used for
this, see his page which also has more explanations:
http://www.draisberghof.de/usb_modeswitch/

The other two device ids (0x0001 and 0x0002) are already in device table.

> 
> Thanks,
> Don
> ---
>  drivers/usb/serial/option.c |    8 ++++++++
>  1 files changed, 8 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
> index d9b67a3..55967b1 100644
> --- a/drivers/usb/serial/option.c
> +++ b/drivers/usb/serial/option.c
> @@ -241,6 +241,11 @@ static void option_instat_callback(struct urb *urb);
>  #define AXESSTEL_VENDOR_ID			0x1726
>  #define AXESSTEL_PRODUCT_MV110H			0x1000
>  
> +#define ONDA_VENDOR_ID				0x19d2
> +#define ONDA_PRODUCT_MSA501HS			0x0001
> +#define ONDA_PRODUCT_ET502HS			0x0002
> +#define ONDA_PRODUCT_MT503HS			0x2000
> +
>  #define BANDRICH_VENDOR_ID			0x1A8D
>  #define BANDRICH_PRODUCT_C100_1			0x1002
>  #define BANDRICH_PRODUCT_C100_2			0x1003
> @@ -479,6 +484,9 @@ static struct usb_device_id option_ids[] = {
>  	{ USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) },
>  	{ USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_620UW) },
>  	{ USB_DEVICE(AXESSTEL_VENDOR_ID, AXESSTEL_PRODUCT_MV110H) },
> +	{ USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_MSA501HS) },
> +	{ USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_ET502HS) },
> +	{ USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_MT503HS) },
>  	{ USB_DEVICE(YISO_VENDOR_ID, YISO_PRODUCT_U893) },
>  	{ USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_1) },
>  	{ USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_2) },
> -- 
> 1.7.3.2
> 

--
[]'s
Herton
--
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