lkml.org 
[lkml]   [2003]   [Sep]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [linux-usb-devel] 2.6.0-test4 - PL2303 OOPS - see also 2.4.22: OOPS on disconnect PL2303 adapter
On Wed, Sep 03, 2003 at 06:13:19AM +0800, Michael Frank wrote:
> On Wednesday 03 September 2003 00:43, Greg KH wrote:
> > On Tue, Sep 02, 2003 at 01:39:08AM +0800, Michael Frank wrote:
> > > PL2303 is used to connect the serial console on a classic serial port
> > > of a test machine. HW nandshaking is used
> > > The test machine reboots once a minute and dumps lots of messages
> > >
> > > Frequently:
> > > - driver hangs
> > > - userspace (cu) can't be stopped
> > > - pl2303 and/or usbserial can't be unloaded
> > > - USB interrupts stop
> > > - problems result in requiring a reboot.
> >
> > Hm, it looks like you physically removed the device, is that correct?
> > Or were you just unloading the pl2303 and other USB drivers and then
> > reloading them?
> >
> > What exactly were you doing in this log?
> >
> > Oh, and can you send a copy of /proc/bus/usb/devices with your pl2303
> > device plugged in?
> >
>
> Whenever it stops working I follow this sequence, which you can match
> to the logs.
>
> 1) Exit cu by ~.
> - if this does not work
> try \r~.
> - if this does not work
> Send SIGHUP, (which so far always worked)
>
> 2) Start cu again
> - if it prints leftover characters
> exit cu again by ~. and continue from step 2)

Ah, I think I just found this problem.

Try the patch below and let me know if this solves it for you or not.

Oh, and where is the copy of /proc/bus/usb/devices with your device
plugged in? :)

thanks,

greg k-h


# USB: fix data toggle problem for pl2303 driver.

diff -Nru a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
--- a/drivers/usb/serial/pl2303.c Tue Sep 2 16:49:31 2003
+++ b/drivers/usb/serial/pl2303.c Tue Sep 2 16:49:31 2003
@@ -404,6 +404,9 @@

dbg("%s - port %d", __FUNCTION__, port->number);

+ usb_clear_halt(serial->dev, port->write_urb->pipe);
+ usb_clear_halt(serial->dev, port->read_urb->pipe);
+
#define FISH(a,b,c,d) \
result=usb_control_msg(serial->dev, usb_rcvctrlpipe(serial->dev,0), \
b, a, c, d, buf, 1, 100); \
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 13:48    [W:0.071 / U:0.276 seconds]
©2003-2014 Jasper Spaans. Advertise on this site