Hi Hans,
we just tested against RELENG_7 with the patch and we get the same behaviour. First time we get carrier but not on the second or
subsequent try.
Here is the patch we used.
--- uftdi.c.orig 2008-12-04 15:54:42.000000000 -0500
+++ uftdi.c 2008-12-04 15:54:45.000000000 -0500
@@ -54,6 +54,7 @@
#include <sys/ioccom.h>
#include <sys/fcntl.h>
#include <sys/conf.h>
+#include <sys/serial.h>
#include <sys/tty.h>
#include <sys/file.h>
@@ -457,13 +458,25 @@
{
struct uftdi_softc *sc = vsc;
u_char msr, lsr;
+ u_char ftdi_msr;
DPRINTFN(15,("uftdi_read: sc=%p, port=%d count=%d\n", sc, portno,
*count));
- msr = FTDI_GET_MSR(*ptr);
+ ftdi_msr = FTDI_GET_MSR(*ptr);
lsr = FTDI_GET_LSR(*ptr);
+ msr = 0;
+ if (ftdi_msr & FTDI_SIO_CTS_MASK)
+ msr |= SER_CTS;
+ if (ftdi_msr & FTDI_SIO_DSR_MASK)
+ msr |= SER_DSR;
+ if (ftdi_msr & FTDI_SIO_RI_MASK)
+ msr |= SER_RI;
+ if (ftdi_msr & FTDI_SIO_RLSD_MASK)
+ msr |= SER_DCD;
+
+
#ifdef USB_DEBUG
if (*count != 2)
DPRINTFN(10,("uftdi_read: sc=%p, port=%d count=%d data[0]="
On 12/4/08 3:41 PM, Hans Petter Selasky wrote:
On Thursday 04 December 2008, Gabor wrote:
Hi Warner,
this patch did not seem to fix the issue. In fact this time after
unloading the module and reloading it, and then checking the carrier
doesn't raise carrier even on the first try.
Can it be that the new mpsafetty layer does not remember the TTY state (MSR
bits) betweeen two open/close sessions ?
The uftdi driver will only report deltas in the MSR register.
--HPS
--
Success is the result when preparation meets opportunity.
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "[EMAIL PROTECTED]"