1. 22 5月, 2011 2 次提交
  2. 12 5月, 2011 3 次提交
  3. 04 5月, 2011 1 次提交
    • D
      vgaarb: use bridges to control VGA routing where possible. · 3448a19d
      Dave Airlie 提交于
      So in a lot of modern systems, a GPU will always be below a parent bridge that won't share with any other GPUs. This means VGA arbitration on those GPUs can be controlled by using the bridge routing instead of io/mem decodes.
      
      The problem is locating which GPUs share which upstream bridges. This patch attempts to identify all the GPUs which can be controlled via bridges, and ones that can't. This patch endeavours to work out the bridge sharing semantics.
      
      When disabling GPUs via a bridge, it doesn't do irq callbacks or touch the io/mem decodes for the gpu.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      3448a19d
  4. 22 3月, 2011 1 次提交
  5. 10 3月, 2011 1 次提交
  6. 17 2月, 2011 1 次提交
  7. 15 1月, 2011 3 次提交
  8. 24 12月, 2010 1 次提交
  9. 18 10月, 2010 1 次提交
  10. 16 10月, 2010 1 次提交
  11. 14 8月, 2010 1 次提交
  12. 31 7月, 2010 1 次提交
  13. 17 7月, 2010 1 次提交
    • B
      PCI: fall back to original BIOS BAR addresses · 58c84eda
      Bjorn Helgaas 提交于
      If we fail to assign resources to a PCI BAR, this patch makes us try the
      original address from BIOS rather than leaving it disabled.
      
      Linux tries to make sure all PCI device BARs are inside the upstream
      PCI host bridge or P2P bridge apertures, reassigning BARs if necessary.
      Windows does similar reassignment.
      
      Before this patch, if we could not move a BAR into an aperture, we left
      the resource unassigned, i.e., at address zero.  Windows leaves such BARs
      at the original BIOS addresses, and this patch makes Linux do the same.
      
      This is a bit ugly because we disable the resource long before we try to
      reassign it, so we have to keep track of the BIOS BAR address somewhere.
      For lack of a better place, I put it in the struct pci_dev.
      
      I think it would be cleaner to attempt the assignment immediately when the
      claim fails, so we could easily remember the original address.  But we
      currently claim motherboard resources in the middle, after attempting to
      claim PCI resources and before assigning new PCI resources, and changing
      that is a fairly big job.
      
      Addresses https://bugzilla.kernel.org/show_bug.cgi?id=16263Reported-by: NAndrew <nitr0@seti.kr.ua>
      Tested-by: NAndrew <nitr0@seti.kr.ua>
      Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      58c84eda
  14. 20 5月, 2010 1 次提交
  15. 10 5月, 2010 1 次提交
    • M
      i7core_edac: Add a code to probe Xeon 55xx bus · d1fd4fb6
      Mauro Carvalho Chehab 提交于
      This code changes the detection procedure of i7core_edac. Instead of
      directly probing for MC registers, it probes for another register found
      on Nehalem. If found, it tries to pick the first MC PCI BUS. This should
      work fine with Xeon 35xx, but, on Xeon 55xx, this is at bus 254 and 255
      that are not properly detected by the non-legacy PCI methods.
      
      The new detection code scans specifically at buses 254 and 255 for the
      Xeon 55xx devices.
      
      This code has not tested yet. After working, a change at the code will
      be needed, since the i7core is not yet ready for working with 2 sets of
      MC.
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      d1fd4fb6
  16. 10 4月, 2010 1 次提交
  17. 13 3月, 2010 2 次提交
  18. 28 2月, 2010 5 次提交
  19. 24 2月, 2010 2 次提交
    • 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: add pci_bus_for_each_resource(), remove direct bus->resource[] refs · 89a74ecc
      Bjorn Helgaas 提交于
      No functional change; this converts loops that iterate from 0 to
      PCI_BUS_NUM_RESOURCES through pci_bus resource[] table to use the
      pci_bus_for_each_resource() iterator instead.
      
      This doesn't change the way resources are stored; it merely removes
      dependencies on the fact that they're in a table.
      Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      89a74ecc
  20. 23 2月, 2010 10 次提交
    • R
      PCI PM: Run-time callbacks for PCI bus type · 6cbf8214
      Rafael J. Wysocki 提交于
      Introduce run-time PM callbacks for the PCI bus type.  Make the new
      callbacks work in analogy with the existing system sleep PM
      callbacks, so that the drivers already converted to struct dev_pm_ops
      can use their suspend and resume routines for run-time PM without
      modifications.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      6cbf8214
    • R
      PCI / ACPI / PM: Platform support for PCI PME wake-up · b67ea761
      Rafael J. Wysocki 提交于
      Although the majority of PCI devices can generate PMEs that in
      principle may be used to wake up devices suspended at run time,
      platform support is generally necessary to convert PMEs into wake-up
      events that can be delivered to the kernel.  If ACPI is used for this
      purpose, PME signals generated by a PCI device will trigger the ACPI
      GPE associated with the device to generate an ACPI wake-up event that
      we can set up a handler for, provided that everything is configured
      correctly.
      
      Unfortunately, the subset of PCI devices that have GPEs associated
      with them is quite limited.  The devices without dedicated GPEs have
      to rely on the GPEs associated with other devices (in the majority of
      cases their upstream bridges and, possibly, the root bridge) to
      generate ACPI wake-up events in response to PME signals from them.
      
      Add ACPI platform support for PCI PME wake-up:
      o Add a framework making is possible to use ACPI system notify
        handlers for run-time PM.
      o Add new PCI platform callback ->run_wake() to struct
        pci_platform_pm_ops allowing us to enable/disable the platform to
        generate wake-up events for given device.  Implemet this callback
        for the ACPI platform.
      o Define ACPI wake-up handlers for PCI devices and PCI root buses and
        make the PCI-ACPI binding code register wake-up notifiers for all
        PCI devices present in the ACPI tables.
      o Add function pci_dev_run_wake() which can be used by PCI drivers to
        check if given device is capable of generating wake-up events at
        run time.
      
      Developed in cooperation with Matthew Garrett <mjg@redhat.com>.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      b67ea761
    • R
      PCI PM: PCIe PME root port service driver · c7f48656
      Rafael J. Wysocki 提交于
      PCIe native PME detection mechanism is based on interrupts generated
      by root ports or event collectors every time a PCIe device sends a
      PME message upstream.
      
      Once a PME message has been sent by an endpoint device and received
      by its root port (or event collector in the case of root complex
      integrated endpoints), the Requester ID from the message header is
      registered in the root port's Root Status register.  At the same
      time, the PME Status bit of the Root Status register is set to
      indicate that there's a PME to handle.  If PCIe PME interrupt is
      enabled for the root port, it generates an interrupt once the PME
      Status has been set.  After receiving the interrupt, the kernel can
      identify the PCIe device that generated the PME using the Requester
      ID from the root port's Root Status register. [For details, see PCI
      Express Base Specification, Rev. 2.0.]
      
      Implement a driver for the PCIe PME root port service working in
      accordance with the above description.
      
      Based on a patch from Shaohua Li <shaohua.li@intel.com>.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      c7f48656
    • K
      PCI: mark is_pcie obsolete · 6d3be84a
      Kenji Kaneshige 提交于
      The "is_pcie" field in struct pci_dev is no longer needed because
      struct pci_dev has PCIe capability offset in "pcie_cap" field and
      (pcie_cap != 0) means the device is PCIe capable. This patch marks
      "is_pcie" fields obsolete.
      
      Current users of "is_pcie" field are:
      
      - drivers/ssb/scan.c
      - drivers/net/wireless/ath/ath9k/pci.c
      - drivers/net/wireless/ath/ath5k/attach.c
      - drivers/net/wireless/ath/ath5k/reset.c
      - drivers/acpi/hest.c
      - drivers/pci/pcie/pme/pcie_pme.c
      
      Will post patches for each to use pci_is_pcie() as a follow-up.
      Signed-off-by: NKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      6d3be84a
    • Y
      PCI: introduce pci_assign_unassigned_bridge_resources · 6841ec68
      Yinghai Lu 提交于
      For use by pciehp.
      
      pci_setup_bridge() will not check enabled for the slot bridge, otherwise
      update res is not updated to bridge BAR.  That is, bridge is already
      enabled for port service.
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Reviewed-by: NAlex Chiang <achiang@hp.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      6841ec68
    • T
      PCI: push deprecated pci_find_device() function to last user · 41a68a74
      Tilman Schmidt 提交于
      The ISDN4Linux HiSax driver family contains the last remaining users
      of the deprecated pci_find_device() function. This patch creates a
      private copy of that function in HiSax, and removes the now unused
      global function together with its controlling configuration option,
      CONFIG_PCI_LEGACY.
      Signed-off-by: NTilman Schmidt <tilman@imap.cc>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      41a68a74
    • D
      resource/PCI: mark struct resource as const · 3b7a17fc
      Dominik Brodowski 提交于
      Now that we return the new resource start position, there is no
      need to update "struct resource" inside the align function.
      Therefore, mark the struct resource as const.
      
      Cc: Bjorn Helgaas <bjorn.helgaas@hp.com>
      Cc: Yinghai Lu <yhlu.kernel@gmail.com>
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      3b7a17fc
    • D
      resource/PCI: align functions now return start of resource · b26b2d49
      Dominik Brodowski 提交于
      As suggested by Linus, align functions should return the start
      of a resource, not void. An update of "res->start" is no longer
      necessary.
      
      Cc: Bjorn Helgaas <bjorn.helgaas@hp.com>
      Cc: Yinghai Lu <yhlu.kernel@gmail.com>
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      b26b2d49
    • R
      PCI: Clean up build for CONFIG_PCI_QUIRKS unset · 93177a74
      Rafael J. Wysocki 提交于
      Currently, drivers/pci/quirks.c is built unconditionally, but if
      CONFIG_PCI_QUIRKS is unset, the only things actually built in this
      file are definitions of global variables and empty functions (due to
      the #ifdef CONFIG_PCI_QUIRKS embracing all of the code inside the
      file).  This is not particularly nice and if someone overlooks
      the #ifdef CONFIG_PCI_QUIRKS, build errors are introduced.
      
      To clean that up, move the definitions of the global variables in
      quirks.c that are always built to pci.c, move the definitions of
      the empty functions (compiled when CONFIG_PCI_QUIRKS is unset) to
      headers (additionally make these functions static inline) and modify
      drivers/pci/Makefile so that quirks.c is only built if
      CONFIG_PCI_QUIRKS is set.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      93177a74
    • M
      PCI: Add support for reporting PCIe 3.0 speeds · 9dfd97fe
      Matthew Wilcox 提交于
      Add the 8.0 GT/s speed.
      Signed-off-by: NMatthew Wilcox <willy@linux.intel.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      9dfd97fe