On Mon, 2010-06-14 at 14:15 +0100, Mark Hymers wrote: > On Sun, 13, Jun, 2010 at 03:33:43AM +0100, Ben Hutchings spoke thus.. > > I would prefer if you could provide one patch corresponding to each of > > the upstream commits, for 2.6.32. This makes it easier to compare > > versions and to resolve any future conflicts with stable updates. > > Ok. I've attached four patches which seem to be the relevant ones from > git. Note that I had to modify the second patch in order to apply on > top of the current tree. I've compiled and tested this and the device > works fine. Please note that I'm not a kernel hacker by any stretch of > the imagination, so let me know if I need to improve anything. > > > There is no point in doing this for 2.6.34 as we will shortly be moving > > to 2.6.35 release candidates in experimental. > > Ok, thanks. These don't quite sum up to gobi_2.6.32.patch; the interdiff from gobi_2.6.32.patch to these is: > 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. > help > Say Y here if you have a Qualcomm USB modem device. These are > usually wireless cellular modems. > @@ -566,7 +567,7 @@ > module will be called keyspan_pda. > > config USB_SERIAL_WWAN > - tristate > + tristate > > config USB_SERIAL_OPTION > tristate "USB driver for GSM and CDMA modems" > diff -u source/drivers/usb/serial/qcserial.c b/drivers/usb/serial/qcserial.c > --- source/drivers/usb/serial/qcserial.c 2010-06-11 21:52:03.599336246 +0100 > +++ b/drivers/usb/serial/qcserial.c > @@ -15,6 +15,7 @@ > #include <linux/tty_flip.h> > #include <linux/usb.h> > #include <linux/usb/serial.h> > +#include <linux/slab.h> > #include "usb-wwan.h" > > #define DRIVER_AUTHOR "Qualcomm Inc" > @@ -22,7 +23,7 @@ > > static int debug; > > -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 */ > diff -u source/drivers/usb/serial/usb_wwan.c b/drivers/usb/serial/usb_wwan.c > --- source/drivers/usb/serial/usb_wwan.c 2010-06-11 21:50:52.110835306 +0100 > +++ b/drivers/usb/serial/usb_wwan.c > @@ -26,6 +26,7 @@ > #include <linux/kernel.h> > #include <linux/jiffies.h> > #include <linux/errno.h> > +#include <linux/slab.h> > #include <linux/tty.h> > #include <linux/tty_flip.h> > #include <linux/module.h> > @@ -216,7 +217,6 @@ > } else { > 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? > tty_insert_flip_string(tty, data, urb->actual_length); > tty_flip_buffer_push(tty); > } else > @@ -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? > 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. > continue; > } > err = usb_submit_urb(port->interrupt_in_urb, GFP_NOIO); > 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 { Ben. -- Ben Hutchings Once a job is fouled up, anything done to improve it makes it worse.
Attachment:
signature.asc
Description: This is a digitally signed message part