1. 26 Nov, 2012 1 commit
    • Bjorn Helgaas's avatar
      Merge branch 'for-linus' into next · d3fe3988
      Bjorn Helgaas authored
      * for-linus:
        PCI/portdrv: Don't create hotplug slots unless port supports hotplug
        PCI/PM: Fix proc config reg access for D3cold and bridge suspending
        PCI/PM: Resume device before shutdown
        PCI/PM: Fix deadlock when unbinding device if parent in D3cold
      d3fe3988
  2. 13 Nov, 2012 4 commits
  3. 10 Nov, 2012 6 commits
  4. 09 Nov, 2012 5 commits
    • Jingoo Han's avatar
      PCI: Fix bit definitions of PCI_EXP_LNKCAP2 register · b891b4dc
      Jingoo Han authored
      According to the PCIe 3.0 spec, PCI_EXP_LNKCAP2_SLS_2_5GB is
      1st bit of PCI_EXP_LNKCAP2 register, not 0th bit. So, the bit
      definition of supported link speed vector should be fixed.
      
      [bhelgaas: change "Current" to "Supported"]
      Signed-off-by: default avatarJingoo Han <jg1.han@samsung.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      b891b4dc
    • Bjorn Helgaas's avatar
      Merge branch 'pci/mike-x86-tra' into next · 0dcccc5c
      Bjorn Helgaas authored
      * pci/mike-x86-tra:
        x86/PCI: Allow x86 platforms to use translation offsets
      0dcccc5c
    • Bjorn Helgaas's avatar
      Merge branch 'pci/taku-prt-cleanup' into next · 05508270
      Bjorn Helgaas authored
      * pci/taku-prt-cleanup:
        PCI/ACPI: Request _OSC control before scanning PCI root bus
        PCI: Don't pass pci_dev to pci_ext_cfg_avail()
        PCI/ACPI: Add _PRT interrupt routing info before enumerating devices
        ACPI: Pass segment/bus to _PRT add/del so they don't depend on pci_bus
      05508270
    • Bjorn Helgaas's avatar
      Merge branch 'pci/yinghai-for-pci-root-bus-hotplug' into next · fa20f6f2
      Bjorn Helgaas authored
      * pci/yinghai-for-pci-root-bus-hotplug:
        PCI/ACPI: Remove acpi_root_driver in reverse order
        PCI/ACPI: Delete host bridge _PRT during hot remove path
        PCI/ACPI: Make acpi_pci_root_remove() stop/remove pci root bus
        PCI: Add pci_stop_and_remove_root_bus()
        PCI/ACPI: Assign unassigned resource for hot-added root bus
        PCI: Move out pci_enable_bridges out of assign_unsigned_bus_res
        PCI: Move pci_rescan_bus() back to probe.c
        PCI: Separate out pci_assign_unassigned_bus_resources()
      fa20f6f2
    • Bjorn Helgaas's avatar
      Merge branch 'pci/misc' into next · 13a84687
      Bjorn Helgaas authored
      * pci/misc:
        PCI/PM: Add comments for PME poll support for PCIe
        PCI: Add PLX PCI 9050 workaround for some Meilhaus DAQ cards
        PCI: Add workaround for PLX PCI 9050 BAR alignment erratum
        PCI: Convert dev_printk(KERN_<LEVEL> to dev_<level>(
        x86/PCI: Ignore _SEG on HP xw9300
        PCI: Don't touch card regs after runtime suspend D3
      13a84687
  5. 07 Nov, 2012 9 commits
  6. 05 Nov, 2012 5 commits
  7. 03 Nov, 2012 7 commits
  8. 02 Nov, 2012 2 commits
    • Huang Ying's avatar
      PCI/PM: Resume device before shutdown · 3ff2de9b
      Huang Ying authored
      Some actions during shutdown need device to be in D0 state, such as
      MSI shutdown etc, so resume device before shutdown.
      
      Without this patch, a device may not be enumerated after a kexec
      because the corresponding bridge is not in D0, so that
      configuration space of the device is not accessible.
      Signed-off-by: default avatarHuang Ying <ying.huang@intel.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Acked-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      CC: stable@vger.kernel.org		# v3.6+
      3ff2de9b
    • Huang Ying's avatar
      PCI/PM: Fix deadlock when unbinding device if parent in D3cold · 90b5c1d7
      Huang Ying authored
      If a PCI device and its parents are put into D3cold, unbinding the
      device will trigger deadlock as follow:
      
      - driver_unbind
        - device_release_driver
          - device_lock(dev)				<--- previous lock here
          - __device_release_driver
            - pm_runtime_get_sync
              ...
                - rpm_resume(dev)
                  - rpm_resume(dev->parent)
                    ...
                      - pci_pm_runtime_resume
                        ...
                        - pci_set_power_state
                          - __pci_start_power_transition
                            - pci_wakeup_bus(dev->parent->subordinate)
                              - pci_walk_bus
                                - device_lock(dev)	<--- deadlock here
      
      
      If we do not do device_lock in pci_walk_bus, we can avoid deadlock.
      Device_lock in pci_walk_bus is introduced in commit:
      d71374da, corresponding email thread
      is: https://lkml.org/lkml/2006/5/26/38.  The patch author Zhang Yanmin
      said device_lock is added to pci_walk_bus because:
      
        Some error handling functions call pci_walk_bus. For example, PCIe
        aer. Here we lock the device, so the driver wouldn't detach from the
        device, as the cb might call driver's callback function.
      
      So I fixed the deadlock as follows:
      
      - remove device_lock from pci_walk_bus
      - add device_lock into callback if callback will call driver's callback
      
      I checked pci_walk_bus users one by one, and found only PCIe aer needs
      device lock.
      Signed-off-by: default avatarHuang Ying <ying.huang@intel.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Acked-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      CC: stable@vger.kernel.org		# v3.6+
      CC: Zhang Yanmin <yanmin.zhang@intel.com>
      90b5c1d7
  9. 30 Oct, 2012 1 commit