summaryrefslogtreecommitdiff
path: root/drivers/serial
diff options
context:
space:
mode:
authorRussell King <rmk@flint.arm.linux.org.uk>2003-05-13 02:22:25 +0100
committerRussell King <rmk@flint.arm.linux.org.uk>2003-05-13 02:22:25 +0100
commitcb4169bc1fca8ee86e79ccfcc6a4586586cece42 (patch)
treeeddc1db4cf1bcea75be235db8b2a461581b4ee41 /drivers/serial
parentd24804947d7844e4cf116cb1e42d7abed9b06c5e (diff)
[ARM] Update a variety of ARM drivers to use irqreturn_t.
Diffstat (limited to 'drivers/serial')
-rw-r--r--drivers/serial/21285.c16
-rw-r--r--drivers/serial/amba.c4
-rw-r--r--drivers/serial/sa1100.c6
3 files changed, 18 insertions, 8 deletions
diff --git a/drivers/serial/21285.c b/drivers/serial/21285.c
index a5315c3100df..1ed0bfcfa1e4 100644
--- a/drivers/serial/21285.c
+++ b/drivers/serial/21285.c
@@ -85,7 +85,7 @@ static void serial21285_enable_ms(struct uart_port *port)
{
}
-static void serial21285_rx_chars(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t serial21285_rx_chars(int irq, void *dev_id, struct pt_regs *regs)
{
struct uart_port *port = dev_id;
struct tty_struct *tty = port->info->tty;
@@ -97,7 +97,7 @@ static void serial21285_rx_chars(int irq, void *dev_id, struct pt_regs *regs)
tty->flip.work.func((void *)tty);
if (tty->flip.count >= TTY_FLIPBUF_SIZE) {
printk(KERN_WARNING "TTY_DONT_FLIP set\n");
- return;
+ goto out;
}
}
@@ -143,9 +143,12 @@ static void serial21285_rx_chars(int irq, void *dev_id, struct pt_regs *regs)
status = *CSR_UARTFLG;
}
tty_flip_buffer_push(tty);
+
+ out:
+ return IRQ_HANDLED;
}
-static void serial21285_tx_chars(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t serial21285_tx_chars(int irq, void *dev_id, struct pt_regs *regs)
{
struct uart_port *port = dev_id;
struct circ_buf *xmit = &port->info->xmit;
@@ -155,11 +158,11 @@ static void serial21285_tx_chars(int irq, void *dev_id, struct pt_regs *regs)
*CSR_UARTDR = port->x_char;
port->icount.tx++;
port->x_char = 0;
- return;
+ goto out;
}
if (uart_circ_empty(xmit) || uart_tx_stopped(port)) {
serial21285_stop_tx(port, 0);
- return;
+ goto out;
}
do {
@@ -175,6 +178,9 @@ static void serial21285_tx_chars(int irq, void *dev_id, struct pt_regs *regs)
if (uart_circ_empty(xmit))
serial21285_stop_tx(port, 0);
+
+ out:
+ return IRQ_HANDLED;
}
static unsigned int serial21285_tx_empty(struct uart_port *port)
diff --git a/drivers/serial/amba.c b/drivers/serial/amba.c
index 7ffa50b6f00b..34ae5a57b1bf 100644
--- a/drivers/serial/amba.c
+++ b/drivers/serial/amba.c
@@ -278,7 +278,7 @@ static void ambauart_modem_status(struct uart_port *port)
wake_up_interruptible(&uap->port.info->delta_msr_wait);
}
-static void ambauart_int(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t ambauart_int(int irq, void *dev_id, struct pt_regs *regs)
{
struct uart_port *port = dev_id;
unsigned int status, pass_counter = AMBA_ISR_PASS_LIMIT;
@@ -302,6 +302,8 @@ static void ambauart_int(int irq, void *dev_id, struct pt_regs *regs)
status = UART_GET_INT_STATUS(port);
} while (status & (AMBA_UARTIIR_RTIS | AMBA_UARTIIR_RIS |
AMBA_UARTIIR_TIS));
+
+ return IRQ_HANDLED;
}
static unsigned int ambauart_tx_empty(struct uart_port *port)
diff --git a/drivers/serial/sa1100.c b/drivers/serial/sa1100.c
index 98e8231ec722..d7765bf8f224 100644
--- a/drivers/serial/sa1100.c
+++ b/drivers/serial/sa1100.c
@@ -312,7 +312,7 @@ static void sa1100_tx_chars(struct sa1100_port *sport)
sa1100_stop_tx(&sport->port, 0);
}
-static void sa1100_int(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t sa1100_int(int irq, void *dev_id, struct pt_regs *regs)
{
struct sa1100_port *sport = dev_id;
unsigned int status, pass_counter = 0;
@@ -347,6 +347,8 @@ static void sa1100_int(int irq, void *dev_id, struct pt_regs *regs)
~UTSR0_TFS;
} while (status & (UTSR0_TFS | UTSR0_RFS | UTSR0_RID));
spin_unlock(&sport->port.lock);
+
+ return IRQ_HANDLED;
}
/*
@@ -830,7 +832,7 @@ static struct console sa1100_console = {
.setup = sa1100_console_setup,
.flags = CON_PRINTBUFFER,
.index = -1,
- .data = sa1100_reg,
+ .data = &sa1100_reg,
};
static int __init sa1100_rs_console_init(void)