1. 10 7月, 2012 5 次提交
  2. 19 6月, 2012 2 次提交
  3. 17 6月, 2012 1 次提交
  4. 12 6月, 2012 3 次提交
    • A
      PCI: add ACS validation utility · ad805758
      Alex Williamson 提交于
      In a PCI environment, transactions aren't always required to reach
      the root bus before being re-routed.  Intermediate switches between
      an endpoint and the root bus can redirect DMA back downstream before
      things like IOMMUs have a chance to intervene.  Legacy PCI is always
      susceptible to this as it operates on a shared bus.  PCIe added a
      new capability to describe and control this behavior, Access Control
      Services, or ACS.
      
      The utility function pci_acs_enabled() allows us to test the ACS
      capabilities of an individual devices against a set of flags while
      pci_acs_path_enabled() tests a complete path from a given downstream
      device up to the specified upstream device.  We also include the
      ability to add device specific tests as it's likely we'll see
      devices that do not implement ACS, but want to indicate support
      for various capabilities in this space.
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      ad805758
    • S
      PCI: move fixup hooks from __init to __devinit · b99ea85a
      Sebastian Andrzej Siewior 提交于
      The fixups are executed once the pci-device is found which is during
      boot process so __init seems fine as long as the platform does not
      support hotplug.
      
      However it is possible to remove the PCI bus at run time and have it
      rediscovered again via "echo 1 > /sys/bus/pci/rescan" and this will call
      the fixups again.
      Signed-off-by: NSebastian Andrzej Siewior <sebastian@breakpoint.cc>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      b99ea85a
    • A
      PCI: add PCI DMA source ID quirk · 12ea6cad
      Alex Williamson 提交于
      DMA transactions are tagged with the source ID of the device making
      the request.  Occasionally hardware screws this up and uses the
      source ID of a different device (often the wrong function number of
      a multifunction device).  A specific Ricoh multifunction device is
      a prime example of this problem and included in this patch.
      
      Given a pci_dev, this function returns the pci_dev to use as the
      source ID for DMA.  When hardware works correctly, this returns
      the input device.  For the components of the Ricoh multifunction
      device, it returns the pci_dev for function 0.
      
      This will be used by IOMMU drivers for determining the boundaries
      of IOMMU groups as multiple devices using the same source ID must
      be contained within the same group.  This can also be used by
      existing streaming DMA paths for the same purpose.
      
      [bhelgaas: fold in pci_dev_get() for !CONFIG_PCI]
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      12ea6cad
  5. 03 5月, 2012 1 次提交
  6. 01 5月, 2012 1 次提交
  7. 05 3月, 2012 1 次提交
  8. 25 2月, 2012 9 次提交
  9. 15 2月, 2012 2 次提交
    • T
      PCI: Add quirk for still enabled interrupts on Intel Sandy Bridge GPUs · f67fd55f
      Thomas Jarosch 提交于
      Some BIOS implementations leave the Intel GPU interrupts enabled,
      even though no one is handling them (f.e. i915 driver is never loaded).
      Additionally the interrupt destination is not set up properly
      and the interrupt ends up -somewhere-.
      
      These spurious interrupts are "sticky" and the kernel disables
      the (shared) interrupt line after 100.000+ generated interrupts.
      
      Fix it by disabling the still enabled interrupts.
      This resolves crashes often seen on monitor unplug.
      
      Tested on the following boards:
      - Intel DH61CR: Affected
      - Intel DH67BL: Affected
      - Intel S1200KP server board: Affected
      - Asus P8H61-M LE: Affected, but system does not crash.
        Probably the IRQ ends up somewhere unnoticed.
      
      According to reports on the net, the Intel DH61WW board is also affected.
      
      Many thanks to Jesse Barnes from Intel for helping
      with the register configuration and to Intel in general
      for providing public hardware documentation.
      Signed-off-by: NThomas Jarosch <thomas.jarosch@intra2net.com>
      Tested-by: NCharlie Suffin <charlie.suffin@stratus.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      f67fd55f
    • A
      PCI: Annotate PCI quirks in initcall_debug style · 3209874a
      Arjan van de Ven 提交于
      While diagnosing some boot time issues on a platform, all that I
      could see in the bootgraph/dmesg was that the system was spending
      a lot of time in applying one or more PCI quirks... which
      was virtually undebuggable.
      
      This patch adds printk's in "initcall_debug" style to the dmesg,
      which are added when the user asks for the initcall_debug
      (the nr one tool to use when debugging boot hangs or boot time issues)
      kernel command line option.
      
      v2: add #includes so quirks can build on non-x86
      Signed-off-by: NArjan van de Ven <arjan@linux.intel.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      3209874a
  10. 01 11月, 2011 1 次提交
  11. 28 10月, 2011 1 次提交
  12. 15 10月, 2011 2 次提交
  13. 21 9月, 2011 1 次提交
  14. 21 7月, 2011 1 次提交
  15. 19 6月, 2011 1 次提交
  16. 22 5月, 2011 1 次提交
  17. 11 5月, 2011 3 次提交
  18. 31 3月, 2011 1 次提交
  19. 05 3月, 2011 2 次提交
    • J
      PCI: do not create quirk I/O regions below PCIBIOS_MIN_IO for ICH · 87e3dc38
      Jiri Slaby 提交于
      Some broken BIOSes on ICH4 chipset report an ACPI region which is in
      conflict with legacy IDE ports when ACPI is disabled. Even though the
      regions overlap, IDE ports are working correctly (we cannot find out
      the decoding rules on chipsets).
      
      So the only problem is the reported region itself, if we don't reserve
      the region in the quirk everything works as expected.
      
      This patch avoids reserving any quirk regions below PCIBIOS_MIN_IO
      which is 0x1000. Some regions might be (and are by a fast google
      query) below this border, but the only difference is that they won't
      be reserved anymore. They should still work though the same as before.
      
      The conflicts look like (1f.0 is bridge, 1f.1 is IDE ctrl):
      pci 0000:00:1f.1: address space collision: [io 0x0170-0x0177] conflicts with 0000:00:1f.0 [io  0x0100-0x017f]
      
      At 0x0100 a 128 bytes long ACPI region is reported in the quirk for
      ICH4. ata_piix then fails to find disks because the IDE legacy ports
      are zeroed:
      ata_piix 0000:00:1f.1: device not available (can't reserve [io 0x0000-0x0007])
      
      References: https://bugzilla.novell.com/show_bug.cgi?id=558740Signed-off-by: NJiri Slaby <jslaby@suse.cz>
      Cc: Bjorn Helgaas <bjorn.helgaas@hp.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Thomas Renninger <trenn@suse.de>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      87e3dc38
    • J
      PCI: add more checking to ICH region quirks · cdb97558
      Jiri Slaby 提交于
      Per ICH4 and ICH6 specs, ACPI and GPIO regions are valid iff ACPI_EN
      and GPIO_EN bits are set to 1. Add checks for these bits into the
      quirks prior to the region creation.
      
      While at it, name the constants by macros.
      Signed-off-by: NJiri Slaby <jslaby@suse.cz>
      Cc: Bjorn Helgaas <bjorn.helgaas@hp.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Thomas Renninger <trenn@suse.de>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      cdb97558
  20. 17 2月, 2011 1 次提交