From cb6358eb69d9854f65f2979c0ce9280eee041828 Mon Sep 17 00:00:00 2001
From: Bjorn Helgaas <bjorn.helgaas@hp.com>
Date: Mon, 3 Jul 2006 00:24:12 -0700
Subject: [PATCH] [PATCH] SERIAL: allow shared 8250_pnp interrupts

PNP devices can use shared interrupts, so check to see whether we'll need
SA_SHIRQ for request_irq().

The builtin PDH UART on the HP rx8640 is an example of an ACPI/PNP device
that uses a shareable level-triggered, active-low interrupt.  The interrupt
can be shared in very large I/O configurations or by artificially lowering
IA64_DEF_LAST_DEVICE_VECTOR.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Cc: Adam Belay <ambx1@neo.rr.com>
Cc: Matthieu Castet <castet.matthieu@free.fr>
Cc: Li Shaohua <shaohua.li@intel.com>
Cc: Len Brown <len.brown@intel.com>
Acked-by: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
---
 drivers/serial/8250_pnp.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/serial/8250_pnp.c b/drivers/serial/8250_pnp.c
index 739bc84f91e9..632f62d6ec7e 100644
--- a/drivers/serial/8250_pnp.c
+++ b/drivers/serial/8250_pnp.c
@@ -431,6 +431,8 @@ serial_pnp_probe(struct pnp_dev *dev, const struct pnp_device_id *dev_id)
 #endif
 
 	port.flags |= UPF_SKIP_TEST | UPF_BOOT_AUTOCONF;
+	if (pnp_irq_flags(dev, 0) & IORESOURCE_IRQ_SHAREABLE)
+		port.flags |= UPF_SHARE_IRQ;
 	port.uartclk = 1843200;
 	port.dev = &dev->dev;
 
-- 
GitLab