Re: [Bug 10868] Oops on loading ipaq module since 2.6.26, preventsuse of device

From: Adrian Bunk
Date: Thu Jul 03 2008 - 09:09:21 EST


On Thu, Jul 03, 2008 at 10:05:57AM +0200, Oliver Neukum wrote:
> Am Mittwoch 02 Juli 2008 23:41:40 schrieb Adam Williamson:
> > On Wed, 2008-07-02 at 23:33 +0200, Oliver Neukum wrote:
> >
> > > This is odd. Your device shows one interface with one endpoint bulk and
> > > bulk out respectively. Yet two ports are created. Odd.
> >
> > OK. If you mean /dev/ttyUSB0 and /dev/ttyUSB1 are always both created
> > when the device is plugged in - yep. This is the case in the working
>
> Now this is very hard to explain. From the code in 2.6.25 it is clear that
> only ttyUSB0 will be created. Please verify that indeed you get ttyUSB0
> and ttyUSB1 with the kernel working for you.
>
> > kernel too. From what I've seen in howtos and the like, this seems to be
> > the case for most such devices. Well, let me know what else you need
> > from me. :)
>
> As far as I can tell somebody changed the ipaq driver in 2.6.26-rc6. I cannot
> find the exact patch that did it in Greg's directory. As it causes a regression
> here's a reversal.


It was changed by:


commit e1879b19b0abdb387e4aeb0b935a486cc75042fb
Author: Matthias Geissert <matthias.geissert@xxxxxx>
Date: Thu Mar 6 22:00:33 2008 +0100

USB: ipaq: fix devices having more than one endpoint

The ipaq module supports devices with one endpoint only. Some devices,
e.g. Yakumo Delta 300, have more than one endpoint.

This patch fixes support for devices having up to 2 endpoints which used
to work on older kernel versions.

Signed-off-by: Matthias Geissert <matthias.geissert@xxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxx>

diff --git a/drivers/usb/serial/ipaq.c b/drivers/usb/serial/ipaq.c
index 9b38a08..17f2a53 100644
--- a/drivers/usb/serial/ipaq.c
+++ b/drivers/usb/serial/ipaq.c
@@ -571,9 +571,9 @@ static struct usb_serial_driver ipaq_device = {
.usb_driver = &ipaq_driver,
.id_table = ipaq_id_table,
.num_interrupt_in = NUM_DONT_CARE,
- .num_bulk_in = 1,
- .num_bulk_out = 1,
- .num_ports = 1,
+ .num_bulk_in = NUM_DONT_CARE,
+ .num_bulk_out = NUM_DONT_CARE,
+ .num_ports = 2,
.open = ipaq_open,
.close = ipaq_close,
.attach = ipaq_startup,


> Regards
> Oliver
>
> Signed-off-by: Oliver Neukum <oneukum@xxxxxxx>
>
> ---
>
> --- linux-2.6.26-greg/drivers/usb/serial/ipaq.alt.c 2008-07-03 09:01:37.000000000 +0200
> +++ linux-2.6.26-greg/drivers/usb/serial/ipaq.c 2008-07-03 09:01:47.000000000 +0200
> @@ -570,7 +570,7 @@ static struct usb_serial_driver ipaq_dev
> .description = "PocketPC PDA",
> .usb_driver = &ipaq_driver,
> .id_table = ipaq_id_table,
> - .num_ports = 2,
> + .num_ports = 1,
> .open = ipaq_open,
> .close = ipaq_close,
> .attach = ipaq_startup,
>

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/