Bug 8783 - drivers/usb/serial/ipaq.c, synce does not work with Pocket PC (XDA), OS version 3.19
Summary: drivers/usb/serial/ipaq.c, synce does not work with Pocket PC (XDA), OS versi...
Status: REJECTED INSUFFICIENT_DATA
Alias: None
Product: Drivers
Classification: Unclassified
Component: USB (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Alan
URL:
Keywords:
Depends on:
Blocks: USB
  Show dependency tree
 
Reported: 2007-07-19 13:02 UTC by Ulrich M
Modified: 2009-03-23 11:24 UTC (History)
1 user (show)

See Also:
Kernel Version: 2.6.18 and later
Subsystem:
Regression: ---
Bisected commit-id:


Attachments
Diff for drivers/usb/serial/ipaq.c of kernel 2.6.28; diff -u ipaq.c.orig ipaq.c (2.10 KB, patch)
2007-07-22 11:56 UTC, Ulrich M
Details | Diff
Diff for drivers/usb/serial/ipaq.c of kernel 2.6.21.1; diff -u ipaq.c.back ipaq.c (1.20 KB, patch)
2007-07-22 12:07 UTC, Ulrich M
Details | Diff

Description Ulrich M 2007-07-19 13:02:16 UTC
Most recent kernel where this bug did not occur:2.6.17
Distribution:debian etch
Hardware Environment:
Software Environment:


Problem Description:
I can not get a connection with synce-serial-start. It works fine after some changes within ipaq.c (see below Possible Reason). It works fine with "normal" serial connection instead of "usb-to-serial".


Steps to reproduce:
1. Attach an XDA to USB. Kernel messages are fine at this moment:
Mar 22 05:47:41 ulli3 kernel: usb 4-2: new full speed USB device using uhci_hcd and address 2
Mar 22 05:47:42 ulli3 kernel: usb 4-2: configuration #1 chosen from 1 choice
Mar 22 05:47:42 ulli3 kernel: usbcore: registered new driver usbserial
Mar 22 05:47:42 ulli3 kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
Mar 22 05:47:42 ulli3 kernel: usbcore: registered new driver usbserial_generic
Mar 22 05:47:42 ulli3 kernel: drivers/usb/serial/usb-serial.c: USB Serial Driver core
Mar 22 05:47:42 ulli3 kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for PocketPC PDA
Mar 22 05:47:42 ulli3 kernel: drivers/usb/serial/ipaq.c: USB PocketPC PDA driver v0.5
Mar 22 05:47:42 ulli3 kernel: ipaq 4-2:1.0: PocketPC PDA converter detected
Mar 22 05:47:42 ulli3 kernel: usb 4-2: PocketPC PDA converter now attached to ttyUSB0
Mar 22 05:47:42 ulli3 kernel: usbcore: registered new driver ipaq

2. Try to get a connection with synce-serial-start. No connection can be established. Kernel messages like
Mar 22 05:49:07 ulli3 kernel: CSLIP: code copyright 1989 Regents of the University of California
Mar 22 05:49:07 ulli3 kernel: PPP generic driver version 2.4.2
Mar 22 05:49:07 ulli3 kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
Mar 22 05:49:07 ulli3 synce-serial-start: Executing '/usr/sbin/pppd call synce-device'
Mar 22 05:49:07 ulli3 pppd[3904]: pppd 2.4.4 started by root, uid 0
Mar 22 05:49:08 ulli3 pppd[3904]: Exit.

With an older kernel I get
Mar 22 05:40:46 ulli3 kernel: CSLIP: code copyright 1989 Regents of the University of California
Mar 22 05:40:47 ulli3 kernel: PPP generic driver version 2.4.2
Mar 22 05:40:47 ulli3 kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
Mar 22 05:40:47 ulli3 synce-serial-start: Executing '/usr/sbin/pppd call synce-device'
Mar 22 05:40:47 ulli3 pppd[3971]: pppd 2.4.4 started by root, uid 0
Mar 22 05:40:48 ulli3 pppd[3971]: Serial connection established.
Mar 22 05:40:48 ulli3 pppd[3971]: Using interface ppp0
Mar 22 05:40:48 ulli3 pppd[3971]: Connect: ppp0 <--> /dev/ttyUSB0
Mar 22 05:40:48 ulli3 kernel: PPP BSD Compression module registered
Mar 22 05:40:48 ulli3 kernel: PPP Deflate Compression module registered
Mar 22 05:40:48 ulli3 pppd[3971]: local  IP address 192.168.131.102
Mar 22 05:40:48 ulli3 pppd[3971]: remote IP address 192.168.131.201



Possible Reason:
There have been some changes within ipaq driver between 2.6.17 and 2.6.18. After reverting some of these all works fine again (compiling an own kernel). The diff is:
659a660,664
>       result = usb_submit_urb(port->read_urb, GFP_KERNEL);
>       if (result) {
>               err("%s - failed submitting read urb, error %d", __FUNCTION__,
>               result);
>               goto error;
>       }
674,678d678
<                       result = usb_submit_urb(port->read_urb, GFP_KERNEL);
<                       if (result) {
<                               err("%s - failed submitting read urb, error %d", __FUNCTION__, result);
<                               goto error;
<                       }
681d680
<               msleep(1000);

I tried also newer kernels. It works fine after similar changes.

Best regards,
Ulli
Comment 1 Anonymous Emailer 2007-07-19 13:24:52 UTC
Reply-To: akpm@linux-foundation.org

On Thu, 19 Jul 2007 12:56:59 -0700 (PDT)
bugme-daemon@bugzilla.kernel.org wrote:

> http://bugzilla.kernel.org/show_bug.cgi?id=8783
> 
>            Summary: drivers/usb/serial/ipaq.c, synce does not work with
>                     Pocket PC (XDA), OS version 3.19
>            Product: Drivers
>            Version: 2.5
>      KernelVersion: 2.6.18 and later
>           Platform: All
>         OS/Version: Linux
>               Tree: Mainline
>             Status: NEW
>           Severity: normal
>           Priority: P1
>          Component: USB
>         AssignedTo: greg@kroah.com
>         ReportedBy: ulrich.moehrke@gmx.de
> 
> 
> Most recent kernel where this bug did not occur:2.6.17
> Distribution:debian etch
> Hardware Environment:
> Software Environment:
> 
> 
> Problem Description:
> I can not get a connection with synce-serial-start. It works fine after some
> changes within ipaq.c (see below Possible Reason). It works fine with
> "normal"
> serial connection instead of "usb-to-serial".
> 
> 
> Steps to reproduce:
> 1. Attach an XDA to USB. Kernel messages are fine at this moment:
> Mar 22 05:47:41 ulli3 kernel: usb 4-2: new full speed USB device using
> uhci_hcd
> and address 2
> Mar 22 05:47:42 ulli3 kernel: usb 4-2: configuration #1 chosen from 1 choice
> Mar 22 05:47:42 ulli3 kernel: usbcore: registered new driver usbserial
> Mar 22 05:47:42 ulli3 kernel: drivers/usb/serial/usb-serial.c: USB Serial
> support registered for generic
> Mar 22 05:47:42 ulli3 kernel: usbcore: registered new driver
> usbserial_generic
> Mar 22 05:47:42 ulli3 kernel: drivers/usb/serial/usb-serial.c: USB Serial
> Driver core
> Mar 22 05:47:42 ulli3 kernel: drivers/usb/serial/usb-serial.c: USB Serial
> support registered for PocketPC PDA
> Mar 22 05:47:42 ulli3 kernel: drivers/usb/serial/ipaq.c: USB PocketPC PDA
> driver v0.5
> Mar 22 05:47:42 ulli3 kernel: ipaq 4-2:1.0: PocketPC PDA converter detected
> Mar 22 05:47:42 ulli3 kernel: usb 4-2: PocketPC PDA converter now attached to
> ttyUSB0
> Mar 22 05:47:42 ulli3 kernel: usbcore: registered new driver ipaq
> 
> 2. Try to get a connection with synce-serial-start. No connection can be
> established. Kernel messages like
> Mar 22 05:49:07 ulli3 kernel: CSLIP: code copyright 1989 Regents of the
> University of California
> Mar 22 05:49:07 ulli3 kernel: PPP generic driver version 2.4.2
> Mar 22 05:49:07 ulli3 kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
> Mar 22 05:49:07 ulli3 synce-serial-start: Executing '/usr/sbin/pppd call
> synce-device'
> Mar 22 05:49:07 ulli3 pppd[3904]: pppd 2.4.4 started by root, uid 0
> Mar 22 05:49:08 ulli3 pppd[3904]: Exit.
> 
> With an older kernel I get
> Mar 22 05:40:46 ulli3 kernel: CSLIP: code copyright 1989 Regents of the
> University of California
> Mar 22 05:40:47 ulli3 kernel: PPP generic driver version 2.4.2
> Mar 22 05:40:47 ulli3 kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
> Mar 22 05:40:47 ulli3 synce-serial-start: Executing '/usr/sbin/pppd call
> synce-device'
> Mar 22 05:40:47 ulli3 pppd[3971]: pppd 2.4.4 started by root, uid 0
> Mar 22 05:40:48 ulli3 pppd[3971]: Serial connection established.
> Mar 22 05:40:48 ulli3 pppd[3971]: Using interface ppp0
> Mar 22 05:40:48 ulli3 pppd[3971]: Connect: ppp0 <--> /dev/ttyUSB0
> Mar 22 05:40:48 ulli3 kernel: PPP BSD Compression module registered
> Mar 22 05:40:48 ulli3 kernel: PPP Deflate Compression module registered
> Mar 22 05:40:48 ulli3 pppd[3971]: local  IP address 192.168.131.102
> Mar 22 05:40:48 ulli3 pppd[3971]: remote IP address 192.168.131.201
> 
> 
> 
> Possible Reason:
> There have been some changes within ipaq driver between 2.6.17 and 2.6.18.
> After reverting some of these all works fine again (compiling an own kernel).
> The diff is:
> 659a660,664
> >       result = usb_submit_urb(port->read_urb, GFP_KERNEL);
> >       if (result) {
> >               err("%s - failed submitting read urb, error %d",
> __FUNCTION__, result);
> >               goto error;
> >       }
> 674,678d678
> <                       result = usb_submit_urb(port->read_urb, GFP_KERNEL);
> <                       if (result) {
> <                               err("%s - failed submitting read urb, error
> %d", __FUNCTION__, result);
> <                               goto error;
> <                       }
> 681d680
> <               msleep(1000);
> 
> I tried also newer kernels. It works fine after similar changes.
> 
> Best regards,
> Ulli
> 
> 
> -- 
> Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
> ------- You are receiving this mail because: -------
> You are on the CC list for the bug, or are watching someone who is.
Comment 2 Greg Kroah-Hartman 2007-07-19 21:21:20 UTC
Can you make a unified diff so that I can read it easier and apply it to the tree?
Comment 3 Ulrich M 2007-07-22 11:56:22 UTC
Created attachment 12095 [details]
Diff for drivers/usb/serial/ipaq.c of kernel 2.6.28; diff -u ipaq.c.orig ipaq.c

Should be a unified diff. Created using
diff -u ipaq.c.back ipaq.c
where ipaq.c.back is the original file drivers/usb/serial/ipaq.c from kernel 2.6.18.
Comment 4 Ulrich M 2007-07-22 12:04:45 UTC
I had an error within description of attachment. The diff is for kernel 2.6.18.
Comment 5 Ulrich M 2007-07-22 12:07:49 UTC
Created attachment 12096 [details]
Diff for drivers/usb/serial/ipaq.c of kernel 2.6.21.1; diff -u ipaq.c.back ipaq.c
Comment 6 Alan 2009-03-23 11:24:06 UTC
Cleaning out stale bugs

Note You need to log in before you can comment on or make changes to this bug.