1. 25 8月, 2008 1 次提交
    • B
      PNPACPI: ignore the producer/consumer bit for extended IRQ descriptors · de82ff78
      Bjorn Helgaas 提交于
      The Extended Interrupt descriptor has a producer/consumer bit, but
      it's not clear what that would mean, and existing BIOSes use the bit
      inconsistently.  This patch makes Linux PNPACPI ignore the bit.
      
      The ACPI spec contains examples of PCI Interrupt Link devices marked
      as ResourceProducers, but many BIOSes mark them as ResourceConsumers.
      
      I also checked with a Windows contact, who said:
      
          Windows uses only "resource consumer" when dealing with
          interrupts.  There's no useful way of looking at a resource
          producer of interrupts.
      
          ... NT-based Windows largely infers the producer/consumer stuff
          from the device type and ignores the bits in the namespace.  This
          was necessary because Windows 98 ignored them and early namespaces
          contained random junk.
      
      The reason I want to change this is because if PNPACPI devices exclude
      ResourceProducer IRQ resources, we can't write PNP drivers for those
      devices.
      
      For example, on machines such as the the HP rx7620, rx7640, rx8620,
      rx8640, and Superdome, HPET interrupts are ResourceProducers.  The
      HPET driver currently has to use acpi_bus_register_driver() and do its
      own _CRS parsing, even though it requires absolutely no ACPI-specific
      functionality.
      
      It would be better if the HPET driver were a PNP driver and took
      advantage of the _CRS parsing built into PNPACPI.
      
      This producer/consumer check was originally added here:
          http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=2b8de5f50e4a302b83ebcd5b0120621336d50bd6
      
      to fix this bug:
          http://bugzilla.kernel.org/show_bug.cgi?id=6292
      
      However, the bug was related only to memory and I/O port resources,
      where the distinction is sensible and important to Linux.  Given that
      the distinction is muddled for IRQ resources, I think it was a mistake
      to add the check there.
      Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: NAndi Kleen <ak@linux.intel.com>
      de82ff78
  2. 14 8月, 2008 39 次提交