📄 serial.patch
字号:
Index: linux-2.6.11-rc5/drivers/serial/au1x00_uart.c===================================================================--- linux-2.6.11-rc5.orig/drivers/serial/au1x00_uart.c+++ linux-2.6.11-rc5/drivers/serial/au1x00_uart.c@@ -206,6 +206,7 @@ static void serial8250_stop_rx(struct ua serial_out(up, UART_IER, up->ier); } +#ifndef CONFIG_SOC_AU1200 static void serial8250_enable_ms(struct uart_port *port) { struct uart_8250_port *up = (struct uart_8250_port *)port;@@ -213,6 +214,7 @@ static void serial8250_enable_ms(struct up->ier |= UART_IER_MSI; serial_out(up, UART_IER, up->ier); }+#endif static _INLINE_ void receive_chars(struct uart_8250_port *up, int *status, struct pt_regs *regs)@@ -365,11 +367,13 @@ serial8250_handle_port(struct uart_8250_ DEBUG_INTR("status = %x...", status); - if (status & UART_LSR_DR)+ if (status & UART_LSR_DR) { receive_chars(up, &status, regs);+ } check_modem_status(up);- if (status & UART_LSR_THRE)+ if (status & UART_LSR_THRE) { transmit_chars(up);+ } } /*@@ -399,11 +403,13 @@ static irqreturn_t serial8250_interrupt( l = i->head; do { struct uart_8250_port *up;- unsigned int iir;+ unsigned int iir, msr; up = list_entry(l, struct uart_8250_port, list); iir = serial_in(up, UART_IIR);+ msr = serial_in(up, UART_MSR);+ if (!(iir & UART_IIR_NO_INT)) { spin_lock(&up->port.lock); serial8250_handle_port(up, regs);@@ -838,9 +844,11 @@ serial8250_set_termios(struct uart_port * CTS flow control flag and modem status interrupts */ up->ier &= ~UART_IER_MSI;- if (UART_ENABLE_MS(&up->port, termios->c_cflag))- up->ier |= UART_IER_MSI; +#ifndef CONFIG_SOC_AU1200+ if (UART_ENABLE_MS(&up->port, termios->c_cflag)) + up->ier |= UART_IER_MSI;+#endif serial_out(up, UART_IER, up->ier); serial_outp(up, 0x28, quot & 0xffff); up->lcr = cval; /* Save LCR */@@ -1016,7 +1024,9 @@ static struct uart_ops serial8250_pops = .stop_tx = serial8250_stop_tx, .start_tx = serial8250_start_tx, .stop_rx = serial8250_stop_rx,+#ifndef CONFIG_SOC_AU1200 .enable_ms = serial8250_enable_ms,+#endif .break_ctl = serial8250_break_ctl, .startup = serial8250_startup, .shutdown = serial8250_shutdown,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -