21285.c (9a64e8e0ace51b309fdcff4b4754b3649250382a) 21285.c (2e124b4a390ca85325fae75764bef92f0547fa25)
1/*
2 * Driver for the serial port on the 21285 StrongArm-110 core logic chip.
3 *
4 * Based on drivers/char/serial.c
5 */
6#include <linux/module.h>
7#include <linux/tty.h>
8#include <linux/ioport.h>

--- 71 unchanged lines hidden (view full) ---

80
81static void serial21285_enable_ms(struct uart_port *port)
82{
83}
84
85static irqreturn_t serial21285_rx_chars(int irq, void *dev_id)
86{
87 struct uart_port *port = dev_id;
1/*
2 * Driver for the serial port on the 21285 StrongArm-110 core logic chip.
3 *
4 * Based on drivers/char/serial.c
5 */
6#include <linux/module.h>
7#include <linux/tty.h>
8#include <linux/ioport.h>

--- 71 unchanged lines hidden (view full) ---

80
81static void serial21285_enable_ms(struct uart_port *port)
82{
83}
84
85static irqreturn_t serial21285_rx_chars(int irq, void *dev_id)
86{
87 struct uart_port *port = dev_id;
88 struct tty_struct *tty = port->state->port.tty;
89 unsigned int status, ch, flag, rxs, max_count = 256;
90
91 status = *CSR_UARTFLG;
92 while (!(status & 0x10) && max_count--) {
93 ch = *CSR_UARTDR;
94 flag = TTY_NORMAL;
95 port->icount.rx++;
96

--- 13 unchanged lines hidden (view full) ---

110 else if (rxs & RXSTAT_FRAME)
111 flag = TTY_FRAME;
112 }
113
114 uart_insert_char(port, rxs, RXSTAT_OVERRUN, ch, flag);
115
116 status = *CSR_UARTFLG;
117 }
88 unsigned int status, ch, flag, rxs, max_count = 256;
89
90 status = *CSR_UARTFLG;
91 while (!(status & 0x10) && max_count--) {
92 ch = *CSR_UARTDR;
93 flag = TTY_NORMAL;
94 port->icount.rx++;
95

--- 13 unchanged lines hidden (view full) ---

109 else if (rxs & RXSTAT_FRAME)
110 flag = TTY_FRAME;
111 }
112
113 uart_insert_char(port, rxs, RXSTAT_OVERRUN, ch, flag);
114
115 status = *CSR_UARTFLG;
116 }
118 tty_flip_buffer_push(tty);
117 tty_flip_buffer_push(&port->state->port);
119
120 return IRQ_HANDLED;
121}
122
123static irqreturn_t serial21285_tx_chars(int irq, void *dev_id)
124{
125 struct uart_port *port = dev_id;
126 struct circ_buf *xmit = &port->state->xmit;

--- 386 unchanged lines hidden ---
118
119 return IRQ_HANDLED;
120}
121
122static irqreturn_t serial21285_tx_chars(int irq, void *dev_id)
123{
124 struct uart_port *port = dev_id;
125 struct circ_buf *xmit = &port->state->xmit;

--- 386 unchanged lines hidden ---