1. 25 3月, 2010 3 次提交
  2. 27 2月, 2010 1 次提交
    • R
      PM: Allow PCI devices to suspend/resume asynchronously · a1e4d72c
      Rafael J. Wysocki 提交于
      Set power.async_suspend for all PCI devices and PCIe port services,
      so that they can be suspended and resumed in parallel with other
      devices they don't depend on in a known way (i.e. devices which are
      not their parents or children).
      
      This only affects the "regular" suspend and resume stages, which
      means in particular that the restoration of the PCI devices' standard
      configuration registers during resume will still be carried out
      synchronously (at the "early" resume stage).
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      a1e4d72c
  3. 24 2月, 2010 3 次提交
    • B
      PCI: augment bus resource table with a list · 2fe2abf8
      Bjorn Helgaas 提交于
      Previously we used a table of size PCI_BUS_NUM_RESOURCES (16) for resources
      forwarded to a bus by its upstream bridge.  We've increased this size
      several times when the table overflowed.
      
      But there's no good limit on the number of resources because host bridges
      and subtractive decode bridges can forward any number of ranges to their
      secondary buses.
      
      This patch reduces the table to only PCI_BRIDGE_RESOURCE_NUM (4) entries,
      which corresponds to the number of windows a PCI-to-PCI (3) or CardBus (4)
      bridge can positively decode.  Any additional resources, e.g., PCI host
      bridge windows or subtractively-decoded regions, are kept in a list.
      
      I'd prefer a single list rather than this split table/list approach, but
      that requires simultaneous changes to every architecture.  This approach
      only requires immediate changes where we set up (a) host bridges with more
      than four windows and (b) subtractive-decode P2P bridges, and we can
      incrementally change other architectures to use the list.
      Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      2fe2abf8
    • B
      PCI: read bridge windows before filling in subtractive decode resources · 2adf7516
      Bjorn Helgaas 提交于
      No functional change; this fills in the bus subtractive decode resources
      after reading the bridge window information rather than before.  Also,
      print out the subtractive decode resources as we already do for the
      positive decode windows.
      Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      2adf7516
    • B
      PCI: split up pci_read_bridge_bases() · fa27b2d1
      Bjorn Helgaas 提交于
      No functional change; this breaks up pci_read_bridge_bases() into separate
      pieces for the I/O, memory, and prefetchable memory windows, similar to how
      Yinghai recently split up pci_setup_bridge() in 68e84ff3bdc.
      Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      fa27b2d1
  4. 23 2月, 2010 7 次提交
  5. 29 1月, 2010 1 次提交
  6. 05 12月, 2009 1 次提交
    • C
      PCI: add pci_request_acs · 5d990b62
      Chris Wright 提交于
      Commit ae21ee65 "PCI: acs p2p upsteram
      forwarding enabling" doesn't actually enable ACS.
      
      Add a function to pci core to allow an IOMMU to request that ACS
      be enabled.  The existing mechanism of using iommu_found() in the pci
      core to know when ACS should be enabled doesn't actually work due to
      initialization order;  iommu has only been detected not initialized.
      
      Have Intel and AMD IOMMUs request ACS, and Xen does as well during early
      init of dom0.
      
      Cc: Allen Kay <allen.m.kay@intel.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Jeremy Fitzhardinge <jeremy@goop.org>
      Cc: Joerg Roedel <joerg.roedel@amd.com>
      Signed-off-by: NChris Wright <chrisw@sous-sol.org>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      5d990b62
  7. 25 11月, 2009 1 次提交
  8. 07 11月, 2009 1 次提交
  9. 05 11月, 2009 9 次提交
  10. 15 9月, 2009 1 次提交
    • R
      PCI: Clear saved_state after the state has been restored · 4b77b0a2
      Rafael J. Wysocki 提交于
      Some PCI devices fail if their standard configuration registers are
      restored twice in a row.  Prevent this from happening by making
      pci_restore_state() clear the saved_state flag of the device right
      after the device's standard configuration registers have been
      populated with the previously saved values.
      
      Simplify PCI PM callbacks by removing the direct clearing of
      state_saved from them, as it shouldn't be necessary any more (except
      in pci_pm_thaw(), where it has to be cleared, so that the values saved
      during the "freeze" phase of hibernation are not used later by mistake).
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      4b77b0a2
  11. 10 9月, 2009 3 次提交
  12. 17 6月, 2009 1 次提交
  13. 12 6月, 2009 1 次提交
  14. 04 6月, 2009 1 次提交
  15. 23 4月, 2009 1 次提交
  16. 07 4月, 2009 1 次提交
    • A
      PCI: annotate pci_rescan_bus as __ref, not __devinit · 5446a6bd
      Alex Chiang 提交于
      pci_rescan_bus was annotated as __devinit, which is wrong,
      because it will never be part of device initialization.
      Howevever, we can't simply drop the annotation, because then we
      get section warnings about calling pci_scan_child_bus (which is
      correctly marked as __devinit).
      
      pci_rescan_bus will only get built when CONFIG_HOTPLUG is set,
      meaning that __devinit is a nop, so we know that pci_scan_child_bus
      has not been freed.
      
      Annotate as __ref to silence modpost.
      Signed-off-by: NAlex Chiang <achiang@hp.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      5446a6bd
  17. 27 3月, 2009 1 次提交
  18. 21 3月, 2009 3 次提交
    • A
      PCI: Introduce /sys/bus/pci/rescan · 705b1aaa
      Alex Chiang 提交于
      This interface allows the user to force a rescan of all PCI buses
      in system, and rediscover devices that have been removed earlier.
      
      pci_bus_attrs implementation from Trent Piepho.
      
      Thanks to Vegard Nossum for discovering locking issues with the
      sysfs interface.
      
      Cc: Trent Piepho <xyzzy@speakeasy.org>
      Signed-off-by: NAlex Chiang <achiang@hp.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      705b1aaa
    • A
      PCI: Introduce pci_rescan_bus() · 3ed4fd96
      Alex Chiang 提交于
      This API is used by the PCI core to rescan a bus and rediscover
      newly added devices.
      
      Over time, it is expected that the various PCI hotplug drivers
      will migrate to this interface and away from the old
      pci_do_scan_bus() interface.
      Signed-off-by: NAlex Chiang <achiang@hp.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      3ed4fd96
    • A
      PCI: always scan child buses · 74710ded
      Alex Chiang 提交于
      While scanning bridges, we stop our scan if we encounter a bus
      that we've seen before, to work around some buggy chipsets. This
      is a good idea, but prevents us from fully scanning the PCI bus
      at a future time (to find newly hot-added devices, for example).
      
      Change the logic so that we skip _re-adding_ an existing bus
      that we've seen before, but also allow the scan to descend to
      all child buses.
      
      Now that we're potentially scanning our child buses again, we
      also need to be sure not to attempt re-initializing their BARs
      so we avoid that.
      
      This patch lays the groundwork to allow the user to issue a
      rescan of the PCI bus at any time.
      Signed-off-by: NAlex Chiang <achiang@hp.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      74710ded