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

Bug#585661: linux-2.6: support for gobi 2000 WWAN devices



On Tue, 15, Jun, 2010 at 01:44:45AM +0100, Ben Hutchings spoke thus..
> > diff -u source/drivers/usb/serial/Kconfig b/drivers/usb/serial/Kconfig
> > --- source/drivers/usb/serial/Kconfig	2010-06-11 21:50:52.087338327 +0100
> > +++ b/drivers/usb/serial/Kconfig
> > @@ -474,6 +474,7 @@
> >  
> >  config USB_SERIAL_QUALCOMM
> >  	tristate "USB Qualcomm Serial modem"
> > +	select USB_SERIAL_WWAN
> 
> This presumably corrects a bug in gobi_2.6.32.patch.

Yes and I suspect I didn't notice before as USB_SERIAL_WWAN would have
been selected anyways.

> > -static const struct usb_device_id id_table[] = {
> > +static struct usb_device_id id_table[] = {
> >  	{USB_DEVICE(0x05c6, 0x9211)},	/* Acer Gobi QDL device */
> >  	{USB_DEVICE(0x05c6, 0x9212)},	/* Acer Gobi Modem Device */
> >  	{USB_DEVICE(0x03f0, 0x1f1d)},	/* HP un2400 Gobi Modem Device */

Upstream linux-2.6 has the version we now have with the split out code.

> >  		tty = tty_port_tty_get(&port->port);
> >  		if (urb->actual_length) {
> > -			tty_buffer_request_room(tty, urb->actual_length);
> 
> Should this really have been removed?
>
> > @@ -224,9 +224,9 @@
> >  		tty_kref_put(tty);
> >  
> >  		/* Resubmit urb so we continue receiving */
> > -		if (port->port.count && status != -ESHUTDOWN) {
> > +		if (status != -ESHUTDOWN) {
> >  			err = usb_submit_urb(urb, GFP_ATOMIC);
> > -			if (err)
> > +			if (err && err != -EPERM)
> 
> What's correct here?

For both of these, comparing what was merged upstream and what was in
the 2.6.32 original patch from Matthew's website, the split out version
from git is what was merged upstream.  I'd like to ask Matthew for
further details if that's ok (again, I'm not a kernel hacker, just
trying to get this device working in Squeeze).  I'm assuming it would
be safer and easier to merge what went into upstream git.

> >  				printk(KERN_ERR "%s: resubmit read urb failed. "
> >  				       "(%d)", __func__, err);
> >  			else
> > @@ -610,7 +610,7 @@
> >  	for (i = 0; i < serial->num_ports; i++) {
> >  		port = serial->port[i];
> >  		if (!port->interrupt_in_urb) {
> > -			dbg("%s: No interrupt URB for port %d\n", __func__, i);
> > +			dbg("%s: No interrupt URB for port %d", __func__, i);
> 
> The newline should definitely be included, though this is not really
> important.

It was merged upstream without the newline.

> > diff -u source/drivers/usb/serial/usb-wwan.h b/drivers/usb/serial/usb-wwan.h
> > --- source/drivers/usb/serial/usb-wwan.h	2010-06-11 21:50:52.103759088 +0100
> > +++ b/drivers/usb/serial/usb-wwan.h
> > @@ -39,6 +39,7 @@
> >  	unsigned int suspended:1;
> >  	int in_flight;
> >  	int (*send_setup) (struct usb_serial_port *port);
> > +	void *private;
> >  };
> >  
> >  struct usb_wwan_port_private {

The private pointer is in the upstream merged patch, but not the
original patch against 2.6.32.


-- 
Mark Hymers <mhy at debian dot org>

"++?????++ Out of Cheese Error. Redo From Start."
     Interesting Times, Terry Pratchett



Reply to: