linux/drivers/pnp
Bjorn Helgaas d5ebde6ef5 PNP: support optional IRQ resources
This patch adds an IORESOURCE_IRQ_OPTIONAL flag for use when
assigning resources to a device.  If the flag is set and we are
unable to assign an IRQ to the device, we can leave the IRQ
disabled but allow the overall resource allocation to succeed.

Some devices request an IRQ, but can run without an IRQ
(possibly with degraded performance).  This flag lets us run
the device without the IRQ instead of just leaving the
device disabled.

This is a reimplementation of this previous change by Rene
Herman <rene.herman@gmail.com>:
    http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3b73a223661ed137c5d3d2635f954382e94f5a43

I reimplemented this for two reasons:
    - to prepare for converting all resource options into a single linked
      list, as opposed to the per-resource-type lists we have now, and
    - to preserve the order and number of resource options.

In PNPBIOS and ACPI, we configure a device by giving firmware a
list of resource assignments.  It is important that this list
has exactly the same number of resources, in the same order,
as the "template" list we got from the firmware in the first
place.

The problem of a sound card MPU401 being left disabled for want of
an IRQ was reported by Uwe Bugla <uwe.bugla@gmx.de>.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Acked-by: Rene Herman <rene.herman@gmail.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2008-07-16 23:27:07 +02:00
..
isapnp PNP: centralize resource option allocations 2008-07-16 23:27:07 +02:00
pnpacpi PNPACPI: ignore _PRS interrupt numbers larger than PNP_IRQ_NR 2008-07-16 23:27:07 +02:00
pnpbios PNP: centralize resource option allocations 2008-07-16 23:27:07 +02:00
base.h PNP: centralize resource option allocations 2008-07-16 23:27:07 +02:00
card.c PNP: add pnp_alloc_card() 2008-04-29 03:22:17 -04:00
core.c PNP: replace pnp_resource_table with dynamically allocated resources 2008-07-16 23:27:05 +02:00
driver.c PNP: change pnp_add_id() to allocate its own pnp_id structures 2008-04-29 03:22:16 -04:00
interface.c PNP: support optional IRQ resources 2008-07-16 23:27:07 +02:00
Kconfig Use menuconfig objects: PNP 2007-07-16 09:05:40 -07:00
Makefile PNP: use dev_info(), dev_err(), etc in core 2007-10-17 08:43:04 -07:00
manager.c PNP: support optional IRQ resources 2008-07-16 23:27:07 +02:00
quirks.c PNP: support optional IRQ resources 2008-07-16 23:27:07 +02:00
resource.c PNP: rename pnp_register_*_resource() local variables 2008-07-16 23:27:07 +02:00
support.c PNP: in debug resource dump, make empty list obvious 2008-07-16 23:27:06 +02:00
system.c PNP: replace pnp_resource_table with dynamically allocated resources 2008-07-16 23:27:05 +02:00