Messages in this thread |  | | Date | Tue, 17 Feb 2015 16:51:36 +0700 | From | Johan Hovold <> | Subject | Re: [PATCH V6 08/10] USB: f81232: fix read MSR strange value |
| |
On Mon, Feb 16, 2015 at 03:58:00PM +0800, Peter Hung wrote: > When we use RS232 loopback, assume doing RTS change will cause > CTS change, DTR change will cause DCD/DSR change too. > > Sometimes we got 7~4 bits of MSR changed but the 3~0 bits of > MSR(delta) maybe not changed when set & get MCR fasterly.
I think you mean "rapidly" here.
> So we add more check not only UART_MSR_ANY_DELTA but also with > comparing DCD/RI/DSR/CTS change with old value. Due to the state > bit is always correct, we direct save msr when read. > > The following step to reproduce this problem with while loop step 1~4: > 1. ioctl(fd, TIOCMSET, &data) to set RTS or DTR > 2. ioctl(fd, TIOCMGET, &data) to read CTS or DCD/DSR state > 3. ioctl(fd, TIOCMSET, &data) to unset RTS or DTR > 4. ioctl(fd, TIOCMGET, &data) to read CTS or DCD/DSR state
Without having looked at this very closely; are you sure this is a hardware issue and not related to the locking issues I pointed at in my comments to tiocmset?
Johan
|  |