From f73717fc0f60dd0e9a3d1377e3092661881cb58d Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Sun, 20 Apr 2003 09:45:08 -0700 Subject: [PATCH] [SERIAL SPARC]: Update for irqreturn_t. --- drivers/serial/sunsab.c | 4 +++- drivers/serial/sunsu.c | 8 ++++++-- drivers/serial/sunzilog.c | 4 +++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/serial/sunsab.c b/drivers/serial/sunsab.c index 27d3277073586..d239dfcf91b49 100644 --- a/drivers/serial/sunsab.c +++ b/drivers/serial/sunsab.c @@ -290,7 +290,7 @@ static void check_status(struct uart_sunsab_port *up, wake_up_interruptible(&up->port.info->delta_msr_wait); } -static void sunsab_interrupt(int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t sunsab_interrupt(int irq, void *dev_id, struct pt_regs *regs) { struct uart_sunsab_port *up = dev_id; union sab82532_irq_status status; @@ -339,6 +339,8 @@ static void sunsab_interrupt(int irq, void *dev_id, struct pt_regs *regs) } spin_unlock_irqrestore(&up->port.lock, flags); + + return IRQ_HANDLED; } /* port->lock is not held. */ diff --git a/drivers/serial/sunsu.c b/drivers/serial/sunsu.c index 87407f38a5cd8..823377b4d562f 100644 --- a/drivers/serial/sunsu.c +++ b/drivers/serial/sunsu.c @@ -458,7 +458,7 @@ static _INLINE_ void check_modem_status(struct uart_sunsu_port *up) wake_up_interruptible(&up->port.info->delta_msr_wait); } -static void sunsu_serial_interrupt(int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t sunsu_serial_interrupt(int irq, void *dev_id, struct pt_regs *regs) { struct uart_sunsu_port *up = dev_id; unsigned long flags; @@ -476,6 +476,8 @@ static void sunsu_serial_interrupt(int irq, void *dev_id, struct pt_regs *regs) } while (!(serial_in(up, UART_IIR) & UART_IIR_NO_INT)); spin_unlock_irqrestore(&up->port.lock, flags); + + return IRQ_HANDLED; } /* Separate interrupt handling path for keyboard/mouse ports. */ @@ -548,7 +550,7 @@ static void receive_kbd_ms_chars(struct uart_sunsu_port *up, struct pt_regs *reg } while (serial_in(up, UART_LSR) & UART_LSR_DR); } -static void sunsu_kbd_ms_interrupt(int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t sunsu_kbd_ms_interrupt(int irq, void *dev_id, struct pt_regs *regs) { struct uart_sunsu_port *up = dev_id; @@ -559,6 +561,8 @@ static void sunsu_kbd_ms_interrupt(int irq, void *dev_id, struct pt_regs *regs) receive_kbd_ms_chars(up, regs, (status & UART_LSR_BI) != 0); } + + return IRQ_HANDLED; } static unsigned int sunsu_tx_empty(struct uart_port *port) diff --git a/drivers/serial/sunzilog.c b/drivers/serial/sunzilog.c index ab61f6342a999..99135a437fe2d 100644 --- a/drivers/serial/sunzilog.c +++ b/drivers/serial/sunzilog.c @@ -539,7 +539,7 @@ ack_tx_int: ZS_WSYNC(channel); } -static void sunzilog_interrupt(int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t sunzilog_interrupt(int irq, void *dev_id, struct pt_regs *regs) { struct uart_sunzilog_port *up = dev_id; @@ -587,6 +587,8 @@ static void sunzilog_interrupt(int irq, void *dev_id, struct pt_regs *regs) up = up->next; } + + return IRQ_HANDLED; } /* A convenient way to quickly get R0 status. The caller must _not_ hold the -- 2.53.0