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);                        \


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to