aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/serial/amba-pl011.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/serial/amba-pl011.c')
-rw-r--r--drivers/serial/amba-pl011.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/drivers/serial/amba-pl011.c b/drivers/serial/amba-pl011.c
index a8d7124e84a1..d503625730df 100644
--- a/drivers/serial/amba-pl011.c
+++ b/drivers/serial/amba-pl011.c
@@ -107,12 +107,7 @@ static void pl011_enable_ms(struct uart_port *port)
107 writew(uap->im, uap->port.membase + UART011_IMSC); 107 writew(uap->im, uap->port.membase + UART011_IMSC);
108} 108}
109 109
110static void 110static void pl011_rx_chars(struct uart_amba_port *uap)
111#ifdef SUPPORT_SYSRQ
112pl011_rx_chars(struct uart_amba_port *uap, struct pt_regs *regs)
113#else
114pl011_rx_chars(struct uart_amba_port *uap)
115#endif
116{ 111{
117 struct tty_struct *tty = uap->port.info->tty; 112 struct tty_struct *tty = uap->port.info->tty;
118 unsigned int status, ch, flag, max_count = 256; 113 unsigned int status, ch, flag, max_count = 256;
@@ -150,7 +145,7 @@ pl011_rx_chars(struct uart_amba_port *uap)
150 flag = TTY_FRAME; 145 flag = TTY_FRAME;
151 } 146 }
152 147
153 if (uart_handle_sysrq_char(&uap->port, ch & 255, regs)) 148 if (uart_handle_sysrq_char(&uap->port, ch & 255))
154 goto ignore_char; 149 goto ignore_char;
155 150
156 uart_insert_char(&uap->port, ch, UART011_DR_OE, ch, flag); 151 uart_insert_char(&uap->port, ch, UART011_DR_OE, ch, flag);
@@ -218,7 +213,7 @@ static void pl011_modem_status(struct uart_amba_port *uap)
218 wake_up_interruptible(&uap->port.info->delta_msr_wait); 213 wake_up_interruptible(&uap->port.info->delta_msr_wait);
219} 214}
220 215
221static irqreturn_t pl011_int(int irq, void *dev_id, struct pt_regs *regs) 216static irqreturn_t pl011_int(int irq, void *dev_id)
222{ 217{
223 struct uart_amba_port *uap = dev_id; 218 struct uart_amba_port *uap = dev_id;
224 unsigned int status, pass_counter = AMBA_ISR_PASS_LIMIT; 219 unsigned int status, pass_counter = AMBA_ISR_PASS_LIMIT;
@@ -234,11 +229,7 @@ static irqreturn_t pl011_int(int irq, void *dev_id, struct pt_regs *regs)
234 uap->port.membase + UART011_ICR); 229 uap->port.membase + UART011_ICR);
235 230
236 if (status & (UART011_RTIS|UART011_RXIS)) 231 if (status & (UART011_RTIS|UART011_RXIS))
237#ifdef SUPPORT_SYSRQ
238 pl011_rx_chars(uap, regs);
239#else
240 pl011_rx_chars(uap); 232 pl011_rx_chars(uap);
241#endif
242 if (status & (UART011_DSRMIS|UART011_DCDMIS| 233 if (status & (UART011_DSRMIS|UART011_DCDMIS|
243 UART011_CTSMIS|UART011_RIMIS)) 234 UART011_CTSMIS|UART011_RIMIS))
244 pl011_modem_status(uap); 235 pl011_modem_status(uap);