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

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

 



On Wed, 15 Dec 2010 11:25:27 -0200
Herton Ronaldo Krzesinski <herton@xxxxxxxxxxxxxxx> wrote:

> 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/

Forgot to say, like zhao ming said, you can add a quirk to usb-storage too to
automatically eject the device, but may be the user space option to eject it
is more feasible.

> 
> 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

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