aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/serial/pxa.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2006-10-05 19:32:01 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-10-05 19:32:01 -0400
commit44aefd2706bb6f5b65ba2c38cd89e7609e2b43d3 (patch)
tree93824f573767da634fbc82c388b6d33cc454212b /drivers/serial/pxa.c
parentc1a26e7d40fb814716950122353a1a556844286b (diff)
parent7d12e780e003f93433d49ce78cfedf4b4c52adc5 (diff)
Merge git://git.infradead.org/~dhowells/irq-2.6
* git://git.infradead.org/~dhowells/irq-2.6: IRQ: Maintain regs pointer globally rather than passing to IRQ handlers IRQ: Typedef the IRQ handler function type IRQ: Typedef the IRQ flow handler function type
Diffstat (limited to 'drivers/serial/pxa.c')
-rw-r--r--drivers/serial/pxa.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/serial/pxa.c b/drivers/serial/pxa.c
index a720953a404e..846089f222d4 100644
--- a/drivers/serial/pxa.c
+++ b/drivers/serial/pxa.c
@@ -98,8 +98,7 @@ static void serial_pxa_stop_rx(struct uart_port *port)
98 serial_out(up, UART_IER, up->ier); 98 serial_out(up, UART_IER, up->ier);
99} 99}
100 100
101static inline void 101static inline void receive_chars(struct uart_pxa_port *up, int *status)
102receive_chars(struct uart_pxa_port *up, int *status, struct pt_regs *regs)
103{ 102{
104 struct tty_struct *tty = up->port.info->tty; 103 struct tty_struct *tty = up->port.info->tty;
105 unsigned int ch, flag; 104 unsigned int ch, flag;
@@ -153,7 +152,7 @@ receive_chars(struct uart_pxa_port *up, int *status, struct pt_regs *regs)
153 flag = TTY_FRAME; 152 flag = TTY_FRAME;
154 } 153 }
155 154
156 if (uart_handle_sysrq_char(&up->port, ch, regs)) 155 if (uart_handle_sysrq_char(&up->port, ch))
157 goto ignore_char; 156 goto ignore_char;
158 157
159 uart_insert_char(&up->port, *status, UART_LSR_OE, ch, flag); 158 uart_insert_char(&up->port, *status, UART_LSR_OE, ch, flag);
@@ -231,8 +230,7 @@ static inline void check_modem_status(struct uart_pxa_port *up)
231/* 230/*
232 * This handles the interrupt from one port. 231 * This handles the interrupt from one port.
233 */ 232 */
234static inline irqreturn_t 233static inline irqreturn_t serial_pxa_irq(int irq, void *dev_id)
235serial_pxa_irq(int irq, void *dev_id, struct pt_regs *regs)
236{ 234{
237 struct uart_pxa_port *up = (struct uart_pxa_port *)dev_id; 235 struct uart_pxa_port *up = (struct uart_pxa_port *)dev_id;
238 unsigned int iir, lsr; 236 unsigned int iir, lsr;
@@ -242,7 +240,7 @@ serial_pxa_irq(int irq, void *dev_id, struct pt_regs *regs)
242 return IRQ_NONE; 240 return IRQ_NONE;
243 lsr = serial_in(up, UART_LSR); 241 lsr = serial_in(up, UART_LSR);
244 if (lsr & UART_LSR_DR) 242 if (lsr & UART_LSR_DR)
245 receive_chars(up, &lsr, regs); 243 receive_chars(up, &lsr);
246 check_modem_status(up); 244 check_modem_status(up);
247 if (lsr & UART_LSR_THRE) 245 if (lsr & UART_LSR_THRE)
248 transmit_chars(up); 246 transmit_chars(up);