1. 06 7月, 2014 1 次提交
  2. 12 6月, 2014 1 次提交
  3. 11 6月, 2014 2 次提交
  4. 10 6月, 2014 1 次提交
  5. 29 5月, 2014 3 次提交
  6. 21 5月, 2014 1 次提交
    • A
      PCI: Mark RTL8110SC INTx masking as broken · 3cb30b73
      Alex Williamson 提交于
      INTx masking does not work on this device.  To see this, configure the
      network device UP on an active network, note that the interrupt count
      continues to increment for the device in /proc/interrupts.  Use setpci to
      set the PCI_COMMAND_INTX_DISABLE bit in the PCI_COMMAND register.  As
      expected, the interrupt count ceases to increment.  However, reading the
      PCI_STATUS_INTERRUPT bit of the PCI_STATUS register does not indicate that
      interrupts are pending and clearing PCI_COMMAND_INTX_DISABLE in the
      PCI_COMMAND register does not allow the device to continue operation.
      
      This does not affect operation of the host r8169 driver, but it does
      prevent the device from being functional when assigned to a VM, such as
      with QEMU and VFIO.  The guest driver successfully probes the device, but
      there is no traffic.  Mark INTx masking as broken, allowing the more
      restrictive APIC masking to be used instead.
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      3cb30b73
  7. 29 4月, 2014 1 次提交
  8. 15 4月, 2014 1 次提交
  9. 28 2月, 2014 1 次提交
  10. 12 2月, 2014 2 次提交
  11. 22 12月, 2013 1 次提交
    • Y
      PCI: Convert pcibios_resource_to_bus() to take a pci_bus, not a pci_dev · fc279850
      Yinghai Lu 提交于
      These interfaces:
      
        pcibios_resource_to_bus(struct pci_dev *dev, *bus_region, *resource)
        pcibios_bus_to_resource(struct pci_dev *dev, *resource, *bus_region)
      
      took a pci_dev, but they really depend only on the pci_bus.  And we want to
      use them in resource allocation paths where we have the bus but not a
      device, so this patch converts them to take the pci_bus instead of the
      pci_dev:
      
        pcibios_resource_to_bus(struct pci_bus *bus, *bus_region, *resource)
        pcibios_bus_to_resource(struct pci_bus *bus, *resource, *bus_region)
      
      In fact, with standard PCI-PCI bridges, they only depend on the host
      bridge, because that's the only place address translation occurs, but
      we aren't going that far yet.
      
      [bhelgaas: changelog]
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      fc279850
  12. 28 11月, 2013 1 次提交
  13. 15 11月, 2013 1 次提交
  14. 26 9月, 2013 1 次提交
    • T
      PCI: Remove Intel Haswell D3 delays · b8cac70a
      Todd E Brandt 提交于
      The latest Intel Haswell chipsets have a hardware optimization which
      allows on-chip PCI devices to ignore the 10ms delay before entering
      or exiting D3 suspend.
      
      This patch implements the optimization as a PCI quirk, since we want
      tight control over which devices use it. This way we can test each device
      individually to be sure there are no issues before we enable the quirk.
      The first set of devices are from the Haswell platform, which includes
      every PCI device that is on the northbridge and southbridge.
      
      This patch reduces the Haswell suspend time from 93 ms to 47 ms and resume
      time from 160 ms to 64 ms.
      Signed-off-by: NTodd Brandt <todd.e.brandt@linux.intel.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      Acked-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      b8cac70a
  15. 13 8月, 2013 2 次提交
  16. 26 7月, 2013 1 次提交
  17. 19 6月, 2013 1 次提交
  18. 04 6月, 2013 1 次提交
  19. 16 5月, 2013 1 次提交
  20. 16 4月, 2013 1 次提交
  21. 05 4月, 2013 1 次提交
  22. 27 12月, 2012 1 次提交
  23. 29 11月, 2012 1 次提交
  24. 08 11月, 2012 2 次提交
    • I
      PCI: Add PLX PCI 9050 workaround for some Meilhaus DAQ cards · 2794bb28
      Ian Abbott 提交于
      The Meilhaus ME-2000i and ME-2600i data acquisition cards supported by
      the Comedi "me_daq" driver use the PLX PCI 9050 PCI Target bridge chip
      affected by the bug that prevents the chip's local configuration
      registers being read from BAR0 or BAR1 base addresses that are an odd
      multiple of 128 bytes.  Use the PLX PCI 9050 quirk handler for these
      devices to re-allocate affected regions to a 256-byte boundary.
      Signed-off-by: NIan Abbott <abbotti@mev.co.uk>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      2794bb28
    • I
      PCI: Add workaround for PLX PCI 9050 BAR alignment erratum · 21c5fd97
      Ian Abbott 提交于
      The PLX PCI 9050 PCI Target bridge controller has a bug that prevents
      its local configuration registers being read through BAR0 (memory) or
      BAR1 (i/o) if the base address lies on an odd 128-byte boundary, i.e. if
      bit 7 of the base address is non-zero.  This bug is described in the PCI
      9050 errata list, version 1.4, May 2005.  It was fixed in the
      pin-compatible PCI 9052, which can be distinguished from the PCI 9050 by
      checking the revision in the PCI header, which is hard-coded for these
      chips.
      
      Workaround the problem by re-allocating the affected regions to a
      256-byte boundary.  Note that BAR0 and/or BAR1 may have been disabled
      (size 0) during initialization of the PCI chip when its configuration is
      read from a serial EEPROM.
      
      Currently, the fix-up has only been used for devices with the default
      vendor and device ID of the PLX PCI 9050.  The PCI 9052 shares the same
      default device ID as the PCI 9050 but they have different PCI revision
      codes.
      Signed-off-by: NIan Abbott <abbotti@mev.co.uk>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      21c5fd97
  25. 24 8月, 2012 1 次提交
  26. 23 8月, 2012 1 次提交
  27. 19 7月, 2012 1 次提交
  28. 16 7月, 2012 1 次提交
  29. 11 7月, 2012 1 次提交
    • A
      PCI: EHCI: fix crash during suspend on ASUS computers · dbf0e4c7
      Alan Stern 提交于
      Quite a few ASUS computers experience a nasty problem, related to the
      EHCI controllers, when going into system suspend.  It was observed
      that the problem didn't occur if the controllers were not put into the
      D3 power state before starting the suspend, and commit
      151b6128 (USB: EHCI: fix crash during
      suspend on ASUS computers) was created to do this.
      
      It turned out this approach messed up other computers that didn't have
      the problem -- it prevented USB wakeup from working.  Consequently
      commit c2fb8a3f (USB: add
      NO_D3_DURING_SLEEP flag and revert 151b6128) was merged; it
      reverted the earlier commit and added a whitelist of known good board
      names.
      
      Now we know the actual cause of the problem.  Thanks to AceLan Kao for
      tracking it down.
      
      According to him, an engineer at ASUS explained that some of their
      BIOSes contain a bug that was added in an attempt to work around a
      problem in early versions of Windows.  When the computer goes into S3
      suspend, the BIOS tries to verify that the EHCI controllers were first
      quiesced by the OS.  Nothing's wrong with this, but the BIOS does it
      by checking that the PCI COMMAND registers contain 0 without checking
      the controllers' power state.  If the register isn't 0, the BIOS
      assumes the controller needs to be quiesced and tries to do so.  This
      involves making various MMIO accesses to the controller, which don't
      work very well if the controller is already in D3.  The end result is
      a system hang or memory corruption.
      
      Since the value in the PCI COMMAND register doesn't matter once the
      controller has been suspended, and since the value will be restored
      anyway when the controller is resumed, we can work around the BIOS bug
      simply by setting the register to 0 during system suspend.  This patch
      (as1590) does so and also reverts the second commit mentioned above,
      which is now unnecessary.
      
      In theory we could do this for every PCI device.  However to avoid
      introducing new problems, the patch restricts itself to EHCI host
      controllers.
      
      Finally the affected systems can suspend with USB wakeup working
      properly.
      
      Reference: https://bugzilla.kernel.org/show_bug.cgi?id=37632
      Reference: https://bugzilla.kernel.org/show_bug.cgi?id=42728Based-on-patch-by: NAceLan Kao <acelan.kao@canonical.com>
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Tested-by: NDâniel Fraga <fragabr@gmail.com>
      Tested-by: NJavier Marcet <jmarcet@gmail.com>
      Tested-by: NAndrey Rahmatullin <wrar@wrar.name>
      Tested-by: NOleksij Rempel <bug-track@fisher-privat.net>
      Tested-by: NPavel Pisa <pisa@cmp.felk.cvut.cz>
      Cc: stable <stable@vger.kernel.org>
      Acked-by: NBjorn Helgaas <bhelgaas@google.com>
      Acked-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      dbf0e4c7
  30. 10 7月, 2012 5 次提交
    • M
      PCI: call final fixups hot-added devices · 735bff10
      Myron Stowe 提交于
      Final fixups are currently applied only at boot-time by
      pci_apply_final_quirks(), which is an fs_initcall().  Hot-added devices
      don't get these fixups, so they may not be completely initialized.
      
      This patch makes us run final fixups for hot-added devices in
      pci_bus_add_device() just before the new device becomes eligible for driver
      binding.
      
      This patch keeps the fs_initcall() for devices present at boot because we
      do resource assignment between pci_bus_add_device and the fs_initcall(),
      and we don't want to break any fixups that depend on that assignment.  This
      is a design issue that may be addressed in the future -- any resource
      assignment should be done *before* device_add().
      
      [bhelgaas: changelog]
      Signed-off-by: NMyron Stowe <myron.stowe@redhat.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      735bff10
    • M
      PCI: move final fixups from __init to __devinit · 3274c8eb
      Myron Stowe 提交于
      Final fixups are executed during device enumeration.  If we support
      hotplug, this may be after boot, so final fixups cannot be __init.
      
      [bhelgaas: changelog]
      Signed-off-by: NMyron Stowe <myron.stowe@redhat.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      3274c8eb
    • B
      PCI: reimplement P2P bridge 1K I/O windows (Intel P64H2) · 2b28ae19
      Bjorn Helgaas 提交于
      9d265124 and 15a260d5 added quirks for P2P bridges that support
      I/O windows that start/end at 1K boundaries, not just the 4K boundaries
      defined by the PCI spec.  For details, see the IOBL_ADR register and the
      EN1K bit in the CNF register in the Intel 82870P2 (P64H2).
      
      These quirks complicate the code that reads P2P bridge windows
      (pci_read_bridge_io() and pci_cfg_fake_ranges()) because the bridge
      I/O resource is updated in the HEADER quirk, in pci_read_bridge_io(),
      in pci_setup_bridge(), and again in the FINAL quirk.  This is confusing
      and makes it impossible to reassign the bridge windows after FINAL
      quirks are run.
      
      This patch adds support for 1K windows in the generic paths, so the
      HEADER quirk only has to enable this support.  The FINAL quirk, which
      used to undo damage done by pci_setup_bridge(), is no longer needed.
      
      This removes "if (!res->start) res->start = ..." from pci_read_bridge_io();
      that was part of 9d265124 to avoid overwriting the resource filled in
      by the quirk.  Since pci_read_bridge_io() itself now knows about
      granularity, the quirk no longer updates the resource and this test is no
      longer needed.
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      2b28ae19
    • M
      PCI: never discard enable/suspend/resume_early/resume fixups · 25e742b2
      Myron Stowe 提交于
      The enable/suspend/resume_early/resume fixups can be called at any time, so
      they can't be __init or __devinit.
      
      [bhelgaas: changelog]
      Signed-off-by: NMyron Stowe <myron.stowe@redhat.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      25e742b2
    • M
      PCI: release temporary reference in __nv_msi_ht_cap_quirk() · dff3aef7
      Myron Stowe 提交于
      __nv_msi_ht_cap_quirk() acquires a temporary reference via
      'pci_get_bus_and_slot()' that is never released.
      
      This patch releases the temporary reference.
      Signed-off-by: NMyron Stowe <myron.stowe@redhat.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      dff3aef7