diff options
author | Jamie Iles <jamie@jamieiles.com> | 2011-08-15 05:17:52 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-08-23 13:52:59 -0400 |
commit | 583d28e92f667eb6cc81ea87daaa7e321c23fe14 (patch) | |
tree | 69527bccf43c08d4aee538bc8b4469368908f9cb /include | |
parent | a74036f51272975e9538e80cd1bb64dce164b208 (diff) |
tty: serial8250: allow platforms to override irq handler
Some ports (e.g. Synopsys DesignWare 8250) have special requirements for
handling the interrupts. Allow these platforms to specify their own
interrupt handler that will override the default.
serial8250_handle_irq() is provided so that platforms can extend the IRQ
handler rather than completely replacing it.
Signed-off-by: Jamie Iles <jamie@jamieiles.com>
Acked-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/serial_8250.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/serial_8250.h b/include/linux/serial_8250.h index 97f5b45bbc07..1f05bbeac01e 100644 --- a/include/linux/serial_8250.h +++ b/include/linux/serial_8250.h | |||
@@ -35,6 +35,7 @@ struct plat_serial8250_port { | |||
35 | void (*set_termios)(struct uart_port *, | 35 | void (*set_termios)(struct uart_port *, |
36 | struct ktermios *new, | 36 | struct ktermios *new, |
37 | struct ktermios *old); | 37 | struct ktermios *old); |
38 | int (*handle_irq)(struct uart_port *); | ||
38 | void (*pm)(struct uart_port *, unsigned int state, | 39 | void (*pm)(struct uart_port *, unsigned int state, |
39 | unsigned old); | 40 | unsigned old); |
40 | }; | 41 | }; |
@@ -80,6 +81,7 @@ extern void serial8250_do_set_termios(struct uart_port *port, | |||
80 | struct ktermios *termios, struct ktermios *old); | 81 | struct ktermios *termios, struct ktermios *old); |
81 | extern void serial8250_do_pm(struct uart_port *port, unsigned int state, | 82 | extern void serial8250_do_pm(struct uart_port *port, unsigned int state, |
82 | unsigned int oldstate); | 83 | unsigned int oldstate); |
84 | int serial8250_handle_irq(struct uart_port *port, unsigned int iir); | ||
83 | 85 | ||
84 | extern void serial8250_set_isa_configurator(void (*v) | 86 | extern void serial8250_set_isa_configurator(void (*v) |
85 | (int port, struct uart_port *up, | 87 | (int port, struct uart_port *up, |