Re: [PATCH] atmel_serial: Fix break handling

From: Ivan Kuten
Date: Mon Jun 18 2007 - 06:18:51 EST


On Tue, 5 Jun 2007 13:23:36 +0200
Haavard Skinnemoen wrote:

> On Tue, 5 Jun 2007 14:07:20 +0300
> Ivan Kuten <ivan.kuten@xxxxxxxxxxx> wrote:
>
> > I tried to test your patch on AT91RM9200 with Magic SysRq sequence, unfortunately without
> > success - SysRq still does not work. You mention "break count increments" where do you check it ? I have
> > cat /proc/tty/driver/atmel_serial
> > serinfo:1.0 driver revision:
> > 0: uart:ATMEL_SERIAL mmio:0xFEFFF200 irq:1 tx:8554 rx:623 fe:25 RTS|CTS|DTR|DSR|CD|RI
> > 1: uart:ATMEL_SERIAL mmio:0xFFFC0000 irq:6 tx:0 rx:0 CTS|DSR|CD|RI
> > 2: uart:ATMEL_SERIAL mmio:0xFFFC4000 irq:7 tx:0 rx:0 RI
> > 3: uart:ATMEL_SERIAL mmio:0xFFFC8000 irq:8 tx:0 rx:0 DSR|CD|RI
> > 4: uart:ATMEL_SERIAL mmio:0xFFFCC000 irq:9 tx:0 rx:0 CTS|DSR|CD|RI
> >
> > no any break counter.
>
> Andrew Victor pointed out that the RM9200 DBGU doesn't support break at
> all, and the data sheet seems to agree. The break counter seems to show
> up after the first break has been received and you're probably not
> receiving any.
>
> Is it possible for you to try a different USART as console?
>
> Haavard

Hi Haavard,

I tried /dev/ttyAT3, break appeared but not the way I expected, after: stty -F /dev/ttyAT3 brkint
I get:

cat /proc/tty/driver/atmel_serial
serinfo:1.0 driver revision:
0: uart:ATMEL_SERIAL mmio:0xFEFFF200 irq:1 tx:0 rx:0 CTS|DSR|CD|RI
1: uart:ATMEL_SERIAL mmio:0xFFFC0000 irq:6 tx:0 rx:0 CTS|DSR|CD|RI
2: uart:ATMEL_SERIAL mmio:0xFFFC4000 irq:7 tx:0 rx:0 RI
3: uart:ATMEL_SERIAL mmio:0xFFFC8000 irq:8 tx:1530 rx:115 brk:1 RTS|DTR|DSR|CD|RI
4: uart:ATMEL_SERIAL mmio:0xFFFCC000 irq:9 tx:0 rx:0 DSR|CD|RI

brk is 1 not depending on how many breaks was sent. May be I missunderstood "break" meaning?
I use from minicom: Main Functions : send break.........F .

I inserted printk:

/*
* Control the transmission of a break signal
*/
static void atmel_break_ctl(struct uart_port *port, int break_state)
{
printk(KERN_EMERG "atmel_break_ctl break_state %d", break_state);
if (break_state != 0)
UART_PUT_CR(port, ATMEL_US_STTBRK); /* start break */
else
UART_PUT_CR(port, ATMEL_US_STPBRK); /* stop break */
}

it's also not shown.

BR,
Ivan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/