public inbox for linux-serial@vger.kernel.org
 help / color / mirror / Atom feed
* RE: [PATCH 1/2] PNPACPI: support shareable interrupts
@ 2006-07-01  0:59 Brown, Len
  2006-07-01  1:14 ` Andrew Morton
  0 siblings, 1 reply; 5+ messages in thread
From: Brown, Len @ 2006-07-01  0:59 UTC (permalink / raw)
  To: Andrew Morton, Bjorn Helgaas
  Cc: ambx1, castet.matthieu, Li, Shaohua, linux-acpi, rmk+serial,
	linux-serial

>pnpacpi confuses me.  Who maintains it?  Is it considered an 
>APCI thing, or a PNP thing or a Bjorn thing?

PNP is Adam's generic Linux PNP layer.
It has "drivers" underneath is, such as pnp-isa, and pnp-bios

Shaohua invented pnp-acpi as a driver to replace pnp-bios
on ACPI-enabled systems.

So PNPACPI is the connection between ACPI and PNP,
and folks who conribute to either might contribute to it.
Most of the issues with it to date have been ACPI-specific,
rather than PNP-specific, including this one.

Bjorn, of course, is qualified to contribute to just about
any part of the kernel.  So a "Bjorn thing" could be just
about anything;-)

cheers,
-Len


^ permalink raw reply	[flat|nested] 5+ messages in thread
* [PATCH 1/2] PNPACPI: support shareable interrupts
@ 2006-06-30 18:58 Bjorn Helgaas
  2006-06-30 23:02 ` Andrew Morton
  0 siblings, 1 reply; 5+ messages in thread
From: Bjorn Helgaas @ 2006-06-30 18:58 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Adam Belay, Matthieu Castet, Li Shaohua, Len Brown, linux-acpi,
	Russell King, linux-serial

ACPI supplies a "shareable" indication, but PNPACPI ignores it.
If a PNP device uses a shared interrupt, request_irq() fails
because the PNP driver can't tell whether to supply SA_SHIRQ.

This patch allows PNP drivers to test
    (pnp_irq_flags(dev, 0) & IORESOURCE_IRQ_SHAREABLE)

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>

Index: work-mm7/include/linux/ioport.h
===================================================================
--- work-mm7.orig/include/linux/ioport.h	2006-06-30 11:52:21.000000000 -0600
+++ work-mm7/include/linux/ioport.h	2006-06-30 12:18:41.000000000 -0600
@@ -55,6 +55,7 @@
 #define IORESOURCE_IRQ_LOWEDGE		(1<<1)
 #define IORESOURCE_IRQ_HIGHLEVEL	(1<<2)
 #define IORESOURCE_IRQ_LOWLEVEL		(1<<3)
+#define IORESOURCE_IRQ_SHAREABLE	(1<<4)
 
 /* ISA PnP DMA specific bits (IORESOURCE_BITS) */
 #define IORESOURCE_DMA_TYPE_MASK	(3<<0)
Index: work-mm7/drivers/pnp/pnpacpi/rsparser.c
===================================================================
--- work-mm7.orig/drivers/pnp/pnpacpi/rsparser.c	2006-06-30 11:52:18.000000000 -0600
+++ work-mm7/drivers/pnp/pnpacpi/rsparser.c	2006-06-30 12:18:41.000000000 -0600
@@ -74,7 +74,7 @@
 
 static void
 pnpacpi_parse_allocated_irqresource(struct pnp_resource_table *res, u32 gsi,
-	int triggering, int polarity)
+	int triggering, int polarity, int shareable)
 {
 	int i = 0;
 	int irq;
@@ -95,6 +95,9 @@
 		return;
 	}
 
+	if (shareable)
+		res->irq_resource[i].flags |= IORESOURCE_IRQ_SHAREABLE;
+
 	res->irq_resource[i].start = irq;
 	res->irq_resource[i].end = irq;
 	pcibios_penalize_isa_irq(irq, 1);
@@ -197,7 +200,8 @@
 			pnpacpi_parse_allocated_irqresource(res_table,
 				res->data.irq.interrupts[i],
 				res->data.irq.triggering,
-				res->data.irq.polarity);
+				res->data.irq.polarity,
+				res->data.irq.sharable);
 		}
 		break;
 
@@ -263,7 +267,8 @@
 			pnpacpi_parse_allocated_irqresource(res_table,
 				res->data.extended_irq.interrupts[i],
 				res->data.extended_irq.triggering,
-				res->data.extended_irq.polarity);
+				res->data.extended_irq.polarity,
+				res->data.extended_irq.sharable);
 		}
 		break;
 

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2006-07-01  3:50 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-07-01  0:59 [PATCH 1/2] PNPACPI: support shareable interrupts Brown, Len
2006-07-01  1:14 ` Andrew Morton
2006-07-01  3:50   ` Bjorn Helgaas
  -- strict thread matches above, loose matches on Subject: below --
2006-06-30 18:58 Bjorn Helgaas
2006-06-30 23:02 ` Andrew Morton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox