Re: [BUG]: 2.6.19.2: Weird serial core issue

From: Aubrey Li
Date: Wed Jan 31 2007 - 21:34:00 EST


On 2/1/07, Alan <alan@xxxxxxxxxxxxxxxxxxx> wrote:
> When I telnet my board and run the following command:
> ---- root:~> stty -F /dev/ttyS0 -crtscts
>
> I got the following result from the console of my board:
> ---- root:~>new_termios flag: 0x1cb1, old_termios flag: 0x80001cb1
>
> That's correct. CRTSCTS flag is clear
>
> But when I type "ENTER" key on the console, I got:
> ----root:~>new_termios flag: 0x80001cb1, old_termios flag: 0x1cb1

What code is running on that console at the time. Most likely that user
code is also saving/restoring terminal settings so overwrite yours


I implemented the serial driver by myself, :). See the attachment.
I didn't save/restore terminal setting in the my_set_termios().

I trace this back till tty_tioctl(..., unsigned long arg), everytime I
type "ENTER" key,
the argument "arg" passed into tty_ioctl() is the address of a termios
structure, which include wrong c_cflag. It seems once the flag is
assigned by uart_set_options the first time, it's never changed. So
even userspace application changed the flag, it will be set back soon.
I'll dig into it. But I still think it's a bug.

-Aubrey

Attachment: bfin_5xx.c
Description: Binary data