1. 02 7月, 2016 3 次提交
    • S
      ACPI,PCI,IRQ: separate ISA penalty calculation · f7eca374
      Sinan Kaya 提交于
      Since commit 103544d8 (ACPI,PCI,IRQ: reduce resource requirements)
      the penalty values are calculated on the fly rather than at boot time.
      
      This works fine for PCI interrupts but not so well for ISA interrupts.
      
      The information on whether or not an ISA interrupt is in use is not
      available to the pci_link.c code directly.  That information is
      obtained from the outside via acpi_penalize_isa_irq().  [If its
      "active" argument is true, then the IRQ is in use by ISA.]
      
      Since the current code relies on PCI Link objects for determination
      of penalties, we are factoring in the PCI penalty twice after
      acpi_penalize_isa_irq() function is called.
      
      To avoid that, limit the newly added functionality to just PCI
      interrupts so that old behavior is still maintained.
      
      Fixes: 103544d8 (ACPI,PCI,IRQ: reduce resource requirements)
      Signed-off-by: NSinan Kaya <okaya@codeaurora.org>
      Tested-by: NWim Osterholt <wim@djo.tudelft.nl>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      f7eca374
    • S
      Revert "ACPI, PCI, IRQ: remove redundant code in acpi_irq_penalty_init()" · 487cf917
      Sinan Kaya 提交于
      Trying to make the ISA and PCI init functionality common turned out
      to be a bad idea, because the ISA path depends on external
      functionality.
      
      Restore the previous behavior and limit the refactoring to PCI
      interrupts only.
      
      Fixes: 1fcb6a81 "ACPI,PCI,IRQ: remove redundant code in acpi_irq_penalty_init()"
      Signed-off-by: NSinan Kaya <okaya@codeaurora.org>
      Tested-by: NWim Osterholt <wim@djo.tudelft.nl>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      487cf917
    • S
      ACPI,PCI,IRQ: factor in PCI possible · 4a6e68bf
      Sinan Kaya 提交于
      The change introduced in commit 103544d8 (ACPI,PCI,IRQ: reduce
      resource requirements) omitted the initially applied PCI_POSSIBLE
      penalty when the IRQ is active.
      
      Incorrect calculation of the penalty leads the ACPI code to assigning
      a wrong interrupt number to a PCI INTx interrupt.
      
      This would not be as bad as it sounds in theory.  It would just cause
      the interrupts to be shared and result in performance penalty.
      
      However, some drivers (like the parallel port driver) don't like
      interrupt sharing and in the above case they will causes all of
      the PCI drivers wanting to share the interrupt to be unable to
      request it.
      
      The issue has not been caught in testing because the behavior is
      platform-specific and depends on the peripherals ending up sharing
      the IRQ and their drivers.
      
      Before the above commit the code would add the PCI_POSSIBLE value
      divided by the number of possible IRQ users to the IRQ penalty
      during initialization.
      
      Later in that code path, if the IRQ is chosen as the active IRQ or
      if it is used by ISA; additional penalties are added.
      
      Fixes: 103544d8 (ACPI,PCI,IRQ: reduce resource requirements)
      Signed-off-by: NSinan Kaya <okaya@codeaurora.org>
      Tested-by: NWim Osterholt <wim@djo.tudelft.nl>
      [ rjw: Changelog ]
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      4a6e68bf
  2. 30 6月, 2016 1 次提交
  3. 27 6月, 2016 2 次提交
  4. 25 6月, 2016 34 次提交