[Damn this stupid email client!  Still eating tabs.  Resending patch as 
an inline attachement.]

On Friday 25 June 2004 21:56, Croy, Nathan wrote:
> SUMMARY
> =======
> ftdi_sio never reasserts modem control lines once the baud has been
> set to B0.
>
> DESCRIPTION
> ===========
> Setting the baud to B0 (hangup) drops DTR.  When the baud is raised
> again, DTR is not raised.  This can cause a modem to ignore any
> commands sent to it until the device is closed and reopened.  This
> renders minicom (and other software) useless, unless you instruct the
> modem to ignore DTR.
>
> The following patch is intended to make ftdi_sio act like other
> serial devices I have used (i.e. the standard serial ports
> (/dev/ttyS*) and stallion ports (/dev/ttyE*)).  Upon setting the baud
> to something other than B0, it ensures the modem control lines are
> set back to the way they were when the port was opened.
>
> Thanks to Ian Abbott for confirming my suspicions:
> 
http://sourceforge.net/mailarchive/forum.php?thread_id=4984710&forum_id=12120

Nathan's email suffered from a line-folding bug (blame M$, probably!), 
so his patch came out corrupted.  I reposted an uncorrupted version a 
few days later.  It showed up in 2.6.9, but not in 2.4.28, so I'm 
resubmitting the patch against 2.4.28.

Please apply to 2.4, thanks.

Signed off by: Ian Abbott <[EMAIL PROTECTED]>
diff -ur linux-2.4.28/drivers/usb/serial/ftdi_sio.c linux-2.4.28-ia/drivers/usb/serial/ftdi_sio.c
--- linux-2.4.28/drivers/usb/serial/ftdi_sio.c	2004-08-08 00:26:05.000000000 +0100
+++ linux-2.4.28-ia/drivers/usb/serial/ftdi_sio.c	2004-11-18 13:37:00.512114760 +0000
@@ -1857,6 +1857,13 @@
 		if (change_speed(port)) {
 			err("%s urb failed to set baurdrate", __FUNCTION__);
 		}
+		/* Ensure  RTS and DTR are raised */
+		else if (set_dtr(port, HIGH) < 0){
+			err("%s Error from DTR HIGH urb", __FUNCTION__);
+		}
+		else if (set_rts(port, HIGH) < 0){
+			err("%s Error from RTS HIGH urb", __FUNCTION__);
+		}
 	}
 
 	/* Set flow control */

Reply via email to