diff options
Diffstat (limited to 'drivers/serial')
-rw-r--r-- | drivers/serial/8250_acpi.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/drivers/serial/8250_acpi.c b/drivers/serial/8250_acpi.c index 6b9ead288517..a802bdce6e5d 100644 --- a/drivers/serial/8250_acpi.c +++ b/drivers/serial/8250_acpi.c | |||
@@ -47,18 +47,30 @@ static acpi_status acpi_serial_port(struct uart_port *port, | |||
47 | static acpi_status acpi_serial_ext_irq(struct uart_port *port, | 47 | static acpi_status acpi_serial_ext_irq(struct uart_port *port, |
48 | struct acpi_resource_ext_irq *ext_irq) | 48 | struct acpi_resource_ext_irq *ext_irq) |
49 | { | 49 | { |
50 | if (ext_irq->number_of_interrupts > 0) | 50 | int rc; |
51 | port->irq = acpi_register_gsi(ext_irq->interrupts[0], | 51 | |
52 | if (ext_irq->number_of_interrupts > 0) { | ||
53 | rc = acpi_register_gsi(ext_irq->interrupts[0], | ||
52 | ext_irq->edge_level, ext_irq->active_high_low); | 54 | ext_irq->edge_level, ext_irq->active_high_low); |
55 | if (rc < 0) | ||
56 | return AE_ERROR; | ||
57 | port->irq = rc; | ||
58 | } | ||
53 | return AE_OK; | 59 | return AE_OK; |
54 | } | 60 | } |
55 | 61 | ||
56 | static acpi_status acpi_serial_irq(struct uart_port *port, | 62 | static acpi_status acpi_serial_irq(struct uart_port *port, |
57 | struct acpi_resource_irq *irq) | 63 | struct acpi_resource_irq *irq) |
58 | { | 64 | { |
59 | if (irq->number_of_interrupts > 0) | 65 | int rc; |
60 | port->irq = acpi_register_gsi(irq->interrupts[0], | 66 | |
67 | if (irq->number_of_interrupts > 0) { | ||
68 | rc = acpi_register_gsi(irq->interrupts[0], | ||
61 | irq->edge_level, irq->active_high_low); | 69 | irq->edge_level, irq->active_high_low); |
70 | if (rc < 0) | ||
71 | return AE_ERROR; | ||
72 | port->irq = rc; | ||
73 | } | ||
62 | return AE_OK; | 74 | return AE_OK; |
63 | } | 75 | } |
64 | 76 | ||