H8/300 update (5/9) SCI driver fix
PATCH 1/1 H8/300 update (5/9) SCI driver fix
- fix h8300 depend setup sequence
Signature · 54 lines
Yoshinori Sato <[email protected]> diff -Nru linux-2.6.6/drivers/serial/sh-sci.c linux-2.6.6-h8300/drivers/serial/sh-sci.c --- linux-2.6.6/drivers/serial/sh-sci.c 2004-05-11 14:30:46.000000000 +0900 +++ linux-2.6.6-h8300/drivers/serial/sh-sci.c 2004-05-11 19:21:26.000000000 +0900 @@ -904,14 +904,14 @@ { struct sci_port *s = &sci_ports[port->line]; - sci_request_irq(s); - sci_start_tx(port, 1); - sci_start_rx(port, 1); - #if defined(__H8300S__) h8300_sci_enable(port, sci_enable); #endif + sci_request_irq(s); + sci_start_tx(port, 1); + sci_start_rx(port, 1); + return 0; } @@ -1328,6 +1328,7 @@ int bits = 8; int parity = 'n'; int flow = 'n'; + int ret; if (co->index >= SCI_NPORTS) co->index = 0; @@ -1345,10 +1346,19 @@ #else port->uartclk = CONFIG_CPU_CLOCK; #endif +#if defined(__H8300S__) + h8300_sci_enable(port, sci_enable); +#endif if (options) uart_parse_options(options, &baud, &parity, &bits, &flow); - return uart_set_options(port, co, baud, parity, bits, flow); + ret = uart_set_options(port, co, baud, parity, bits, flow); +#if defined(__H8300H__) || defined(__H8300S__) + /* disable rx interrupt */ + if (ret == 0) + sci_stop_rx(port); +#endif + return ret; } static struct console serial_console = {