24 Nov, 2016

1 commit


08 Oct, 2016

1 commit

  • Pull PCI updates from Bjorn Helgaas:
    "Summary of PCI changes for the v4.9 merge window:

    Enumeration:
    - microblaze: Add multidomain support for procfs (Bharat Kumar Gogada)

    Resource management:
    - Ignore requested alignment for PROBE_ONLY and fixed resources (Yongji Xie)
    - Ignore requested alignment for VF BARs (Yongji Xie)

    PCI device hotplug:
    - Make core explicitly non-modular (Paul Gortmaker)

    PCIe native device hotplug:
    - Rename pcie_isr() locals for clarity (Bjorn Helgaas)
    - Return IRQ_NONE when we can't read interrupt status (Bjorn Helgaas)
    - Remove unnecessary guard (Bjorn Helgaas)
    - Clean up dmesg "Slot(%s)" messages (Bjorn Helgaas)
    - Remove useless pciehp_get_latch_status() calls (Bjorn Helgaas)
    - Clear attention LED on device add (Keith Busch)
    - Allow exclusive userspace control of indicators (Keith Busch)
    - Process all hotplug events before looking for new ones (Mayurkumar Patel)
    - Don't re-read Slot Status when queuing hotplug event (Mayurkumar Patel)
    - Don't re-read Slot Status when handling surprise event (Mayurkumar Patel)
    - Make explicitly non-modular (Paul Gortmaker)

    Power management:
    - Afford direct-complete to devices with non-standard PM (Lukas Wunner)
    - Query platform firmware for device power state (Lukas Wunner)
    - Recognize D3cold in pci_update_current_state() (Lukas Wunner)
    - Avoid unnecessary resume after direct-complete (Lukas Wunner)
    - Make explicitly non-modular (Paul Gortmaker)

    Virtualization:
    - Mark Atheros AR9580 to avoid bus reset (Maik Broemme)
    - Check for pci_setup_device() failure in pci_iov_add_virtfn() (Po Liu)

    MSI:
    - Enable PCI_MSI_IRQ_DOMAIN support for ARC (Joao Pinto)

    AER:
    - Remove aerdriver.nosourceid kernel parameter (Bjorn Helgaas)
    - Remove aerdriver.forceload kernel parameter (Bjorn Helgaas)
    - Fix aer_probe() kernel-doc comment (Cao jin)
    - Add bus flag to skip source ID matching (Jon Derrick)
    - Avoid memory allocation in interrupt handling path (Jon Derrick)
    - Cache capability position (Keith Busch)
    - Make explicitly non-modular (Paul Gortmaker)
    - Remove duplicate AER severity translation (Tyler Baicar)
    - Send correct severity to calculate AER severity (Tyler Baicar)

    Precision Time Measurement:
    - Add Precision Time Measurement (PTM) support (Jonathan Yong)
    - Add PTM clock granularity information (Bjorn Helgaas)
    - Add pci_enable_ptm() for drivers to enable PTM on endpoints (Bjorn Helgaas)

    Generic host bridge driver:
    - Fix pci_remap_iospace() failure path (Lorenzo Pieralisi)
    - Make explicitly non-modular (Paul Gortmaker)

    Altera host bridge driver:
    - Remove redundant platform_get_resource() return value check (Bjorn Helgaas)
    - Poll for link training status after retraining the link (Ley Foon Tan)
    - Rework config accessors for use without a struct pci_bus (Ley Foon Tan)
    - Move retrain from fixup to altera_pcie_host_init() (Ley Foon Tan)
    - Make MSI explicitly non-modular (Paul Gortmaker)
    - Make explicitly non-modular (Paul Gortmaker)
    - Relax device number checking to allow SR-IOV (Po Liu)

    ARM Versatile host bridge driver:
    - Fix pci_remap_iospace() failure path (Lorenzo Pieralisi)

    Axis ARTPEC-6 host bridge driver:
    - Drop __init from artpec6_add_pcie_port() (Niklas Cassel)

    Freescale i.MX6 host bridge driver:
    - Make explicitly non-modular (Paul Gortmaker)

    Intel VMD host bridge driver:
    - Add quirk for AER to ignore source ID (Jon Derrick)
    - Allocate IRQ lists with correct MSI-X count (Jon Derrick)
    - Convert to use pci_alloc_irq_vectors() API (Jon Derrick)
    - Eliminate vmd_vector member from list type (Jon Derrick)
    - Eliminate index member from IRQ list (Jon Derrick)
    - Synchronize with RCU freeing MSI IRQ descs (Keith Busch)
    - Request userspace control of PCIe hotplug indicators (Keith Busch)
    - Move VMD driver to drivers/pci/host (Keith Busch)

    Marvell Aardvark host bridge driver:
    - Fix pci_remap_iospace() failure path (Lorenzo Pieralisi)
    - Remove redundant dev_err call in advk_pcie_probe() (Wei Yongjun)

    Microsoft Hyper-V host bridge driver:
    - Use zero-length array in struct pci_packet (Dexuan Cui)
    - Use pci_function_description[0] in struct definitions (Dexuan Cui)
    - Remove the unused 'wrk' in struct hv_pcibus_device (Dexuan Cui)
    - Handle vmbus_sendpacket() failure in hv_compose_msi_msg() (Dexuan Cui)
    - Handle hv_pci_generic_compl() error case (Dexuan Cui)
    - Use list_move_tail() instead of list_del() + list_add_tail() (Wei Yongjun)

    NVIDIA Tegra host bridge driver:
    - Fix pci_remap_iospace() failure path (Lorenzo Pieralisi)
    - Remove redundant _data suffix (Thierry Reding)
    - Use of_device_get_match_data() (Thierry Reding)

    Qualcomm host bridge driver:
    - Make explicitly non-modular (Paul Gortmaker)

    Renesas R-Car host bridge driver:
    - Consolidate register space lookup and ioremap (Bjorn Helgaas)
    - Don't disable/unprepare clocks on prepare/enable failure (Geert Uytterhoeven)
    - Add multi-MSI support (Grigory Kletsko)
    - Fix pci_remap_iospace() failure path (Lorenzo Pieralisi)
    - Fix some checkpatch warnings (Sergei Shtylyov)
    - Try increasing PCIe link speed to 5 GT/s at boot (Sergei Shtylyov)

    Rockchip host bridge driver:
    - Add DT bindings for Rockchip PCIe controller (Shawn Lin)
    - Add Rockchip PCIe controller support (Shawn Lin)
    - Improve the deassert sequence of four reset pins (Shawn Lin)
    - Fix wrong transmitted FTS count (Shawn Lin)
    - Increase the Max Credit update interval (Rajat Jain)

    Samsung Exynos host bridge driver:
    - Make explicitly non-modular (Paul Gortmaker)

    ST Microelectronics SPEAr13xx host bridge driver:
    - Make explicitly non-modular (Paul Gortmaker)

    Synopsys DesignWare host bridge driver:
    - Return data directly from dw_pcie_readl_rc() (Bjorn Helgaas)
    - Exchange viewport of `MEMORYs' and `CFGs/IOs' (Dong Bo)
    - Check LTSSM training bit before deciding link is up (Jisheng Zhang)
    - Move link wait definitions to .c file (Joao Pinto)
    - Wait for iATU enable (Joao Pinto)
    - Add iATU Unroll feature (Joao Pinto)
    - Fix pci_remap_iospace() failure path (Lorenzo Pieralisi)
    - Make explicitly non-modular (Paul Gortmaker)
    - Relax device number checking to allow SR-IOV (Po Liu)
    - Keep viewport fixed for IO transaction if num_viewport > 2 (Pratyush Anand)
    - Remove redundant platform_get_resource() return value check (Wei Yongjun)

    TI DRA7xx host bridge driver:
    - Make explicitly non-modular (Paul Gortmaker)

    TI Keystone host bridge driver:
    - Propagate request_irq() failure (Wei Yongjun)

    Xilinx AXI host bridge driver:
    - Keep both legacy and MSI interrupt domain references (Bharat Kumar Gogada)
    - Clear interrupt register for invalid interrupt (Bharat Kumar Gogada)
    - Clear correct MSI set bit (Bharat Kumar Gogada)
    - Dispose of MSI virtual IRQ (Bharat Kumar Gogada)
    - Make explicitly non-modular (Paul Gortmaker)
    - Relax device number checking to allow SR-IOV (Po Liu)

    Xilinx NWL host bridge driver:
    - Expand error logging (Bharat Kumar Gogada)
    - Enable all MSI interrupts using MSI mask (Bharat Kumar Gogada)
    - Make explicitly non-modular (Paul Gortmaker)

    Miscellaneous:
    - Drop CONFIG_KEXEC_CORE ifdeffery (Lukas Wunner)
    - portdrv: Make explicitly non-modular (Paul Gortmaker)
    - Make DPC explicitly non-modular (Paul Gortmaker)"

    * tag 'pci-v4.9-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (105 commits)
    x86/PCI: VMD: Move VMD driver to drivers/pci/host
    PCI: rockchip: Fix wrong transmitted FTS count
    PCI: rockchip: Improve the deassert sequence of four reset pins
    PCI: rockchip: Increase the Max Credit update interval
    PCI: rcar: Try increasing PCIe link speed to 5 GT/s at boot
    PCI/AER: Fix aer_probe() kernel-doc comment
    PCI: Ignore requested alignment for VF BARs
    PCI: Ignore requested alignment for PROBE_ONLY and fixed resources
    PCI: Avoid unnecessary resume after direct-complete
    PCI: Recognize D3cold in pci_update_current_state()
    PCI: Query platform firmware for device power state
    PCI: Afford direct-complete to devices with non-standard PM
    PCI/AER: Cache capability position
    PCI/AER: Avoid memory allocation in interrupt handling path
    x86/PCI: VMD: Request userspace control of PCIe hotplug indicators
    PCI: pciehp: Allow exclusive userspace control of indicators
    ACPI / APEI: Send correct severity to calculate AER severity
    PCI/AER: Remove duplicate AER severity translation
    x86/PCI: VMD: Synchronize with RCU freeing MSI IRQ descs
    x86/PCI: VMD: Eliminate index member from IRQ list
    ...

    Linus Torvalds
     

06 Oct, 2016

1 commit

  • * pci/host-vmd:
    x86/PCI: VMD: Move VMD driver to drivers/pci/host
    x86/PCI: VMD: Synchronize with RCU freeing MSI IRQ descs
    x86/PCI: VMD: Eliminate index member from IRQ list
    x86/PCI: VMD: Eliminate vmd_vector member from list type
    x86/PCI: VMD: Convert to use pci_alloc_irq_vectors() API
    x86/PCI: VMD: Allocate IRQ lists with correct MSI-X count
    PCI: Use positive flags in pci_alloc_irq_vectors()
    PCI: Update "pci=resource_alignment" documentation

    Conflicts:
    drivers/pci/host/Kconfig
    drivers/pci/host/Makefile

    Bjorn Helgaas
     

04 Oct, 2016

1 commit

  • Pull irq updates from Thomas Gleixner:
    "The irq departement proudly presents:

    - A rework of the core infrastructure to optimally spread interrupt
    for multiqueue devices. The first version was a bit naive and
    failed to take thread siblings and other details into account.
    Developed in cooperation with Christoph and Keith.

    - Proper delegation of softirqs to ksoftirqd, so if ksoftirqd is
    active then no further softirq processsing on interrupt return
    happens. Otherwise we try to delegate and still run another batch
    of network packets in the irq return path, which then tries to
    delegate to ksoftirqd .....

    - A proper machine parseable sysfs based alternative for
    /proc/interrupts.

    - ACPI support for the GICV3-ITS and ARM interrupt remapping

    - Two new irq chips from the ARM SoC zoo: STM32-EXTI and MVEBU-PIC

    - A new irq chip for the JCore (SuperH)

    - The usual pile of small fixlets in core and irqchip drivers"

    * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (42 commits)
    softirq: Let ksoftirqd do its job
    genirq: Make function __irq_do_set_handler() static
    ARM/dts: Add EXTI controller node to stm32f429
    ARM/STM32: Select external interrupts controller
    drivers/irqchip: Add STM32 external interrupts support
    Documentation/dt-bindings: Document STM32 EXTI controller bindings
    irqchip/mips-gic: Use for_each_set_bit to iterate over local IRQs
    pci/msi: Retrieve affinity for a vector
    genirq/affinity: Remove old irq spread infrastructure
    genirq/msi: Switch to new irq spreading infrastructure
    genirq/affinity: Provide smarter irq spreading infrastructure
    genirq/msi: Add cpumask allocation to alloc_msi_entry
    genirq: Expose interrupt information through sysfs
    irqchip/gicv3-its: Use MADT ITS subtable to do PCI/MSI domain initialization
    irqchip/gicv3-its: Factor out PCI-MSI part that might be reused for ACPI
    irqchip/gicv3-its: Probe ITS in the ACPI way
    irqchip/gicv3-its: Refactor ITS DT init code to prepare for ACPI
    irqchip/gicv3-its: Cleanup for ITS domain initialization
    PCI/MSI: Setup MSI domain on a per-device basis using IORT ACPI table
    ACPI: Add new IORT functions to support MSI domain handling
    ...

    Linus Torvalds
     

03 Oct, 2016

2 commits

  • * pci/hotplug:
    x86/PCI: VMD: Request userspace control of PCIe hotplug indicators
    PCI: pciehp: Allow exclusive userspace control of indicators
    PCI: pciehp: Remove useless pciehp_get_latch_status() calls
    PCI: pciehp: Clean up dmesg "Slot(%s)" messages
    PCI: pciehp: Remove unnecessary guard
    PCI: pciehp: Don't re-read Slot Status when handling surprise event
    PCI: pciehp: Don't re-read Slot Status when queuing hotplug event
    PCI: pciehp: Process all hotplug events before looking for new ones
    PCI: pciehp: Return IRQ_NONE when we can't read interrupt status
    PCI: pciehp: Rename pcie_isr() locals for clarity
    PCI: pciehp: Clear attention LED on device add

    Bjorn Helgaas
     
  • * pci/aer:
    PCI/AER: Fix aer_probe() kernel-doc comment
    PCI/AER: Cache capability position
    PCI/AER: Avoid memory allocation in interrupt handling path
    ACPI / APEI: Send correct severity to calculate AER severity
    PCI/AER: Remove duplicate AER severity translation
    PCI/AER: Remove aerdriver.forceload kernel parameter
    PCI/AER: Remove aerdriver.nosourceid kernel parameter
    x86/PCI: VMD: Add quirk for AER to ignore source ID
    PCI/AER: Add bus flag to skip source ID matching

    Conflicts:
    drivers/pci/probe.c

    Bjorn Helgaas
     

28 Sep, 2016

1 commit


23 Sep, 2016

1 commit

  • PCIe hotplug supports optional Attention and Power Indicators, which are
    used internally by pciehp. Users can't control the Power Indicator, but
    they can control the Attention Indicator by writing to a sysfs "attention"
    file.

    The Slot Control register has two bits for each indicator, and the PCIe
    spec defines the encodings for each as (Reserved/On/Blinking/Off). For
    sysfs "attention" writes, pciehp_set_attention_status() maps into these
    encodings, so the only useful write values are 0 (Off), 1 (On), and 2
    (Blinking).

    However, some platforms use all four bits for platform-specific indicators,
    and they need to allow direct user control of them while preventing pciehp
    from using them at all.

    Add a "hotplug_user_indicators" flag to the pci_dev structure. When set,
    pciehp does not use either the Attention Indicator or the Power Indicator,
    and the low four bits (values 0x0 - 0xf) of sysfs "attention" write values
    are written directly to the Attention Indicator Control and Power Indicator
    Control fields.

    [bhelgaas: changelog, rename flag and accessors to s/attention/indicator/]
    Signed-off-by: Keith Busch
    Signed-off-by: Bjorn Helgaas

    Keith Busch
     

17 Sep, 2016

1 commit

  • Add a new helper function pci_find_resource() that can be used to find out
    whether a given resource (for example from a child device) is contained
    within given PCI device's standard resources.

    Signed-off-by: Mika Westerberg
    Acked-by: Bjorn Helgaas
    Signed-off-by: Rafael J. Wysocki

    Mika Westerberg
     

15 Sep, 2016

1 commit

  • Add a helper to get the affinity mask for a given PCI irq vector. For MSI or
    MSI-X vectors these are stored by the IRQ core, while for legacy interrupts
    we will always return cpu_possible_map.

    [hch: updated to follow the style of pci_irq_vector()]

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Christoph Hellwig
    Cc: axboe@fb.com
    Cc: keith.busch@intel.com
    Cc: agordeev@redhat.com
    Cc: linux-block@vger.kernel.org
    Link: http://lkml.kernel.org/r/1473862739-15032-6-git-send-email-hch@lst.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     

07 Sep, 2016

1 commit

  • Allow root port buses to choose to skip source id matching when finding the
    faulting device. Certain root port devices may return an incorrect source
    ID and recommend to scan child device registers for AER notifications.

    Signed-off-by: Jon Derrick
    Signed-off-by: Bjorn Helgaas

    Jon Derrick
     

02 Sep, 2016

1 commit


25 Aug, 2016

1 commit

  • The PTM Control register (PCIe r3.1, sec 7.32.3) contains an Effective
    Granularity field:

    This provides information relating to the expected accuracy of the PTM
    clock, but does not otherwise affect the PTM mechanism.

    Set the Effective Granularity based on the PTM Root and any intervening PTM
    Time Sources.

    This does not set Effective Granularity for Root Complex Integrated
    Endpoints because I don't know how to figure out clock granularity for
    them. The spec says:

    ... system software must set [Effective Granularity] to the value
    reported in the Local Clock Granularity field by the associated PTM
    Time Source.

    but I don't know how to identify the associated PTM Time Source. Normally
    it's the upstream bridge, but an integrated endpoint has no upstream
    bridge.

    Signed-off-by: Bjorn Helgaas

    Bjorn Helgaas
     

19 Aug, 2016

1 commit


17 Aug, 2016

1 commit

  • Instead of passing negative flags like PCI_IRQ_NOMSI to prevent use of
    certain interrupt types, pass positive flags like PCI_IRQ_LEGACY,
    PCI_IRQ_MSI, etc., to specify the acceptable interrupt types.

    This is based on a number of pending driver conversions that just happend
    to be a whole more obvious to read this way, and given that we have no
    users in the tree yet it can still easily be done.

    I've also added a PCI_IRQ_ALL_TYPES catchall to keep the case of accepting
    all interrupt types very simple.

    [bhelgaas: changelog, fix PCI_IRQ_AFFINITY doc typo, remove mention of
    PCI_IRQ_NOLEGACY]
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Alexander Gordeev

    Christoph Hellwig
     

16 Aug, 2016

1 commit

  • Add Precision Time Measurement (PTM) support (see PCIe r3.1, sec 6.22).

    Enable PTM on PTM Root devices and switch ports. This does not enable PTM
    on endpoints.

    There currently are no PTM-capable devices on the market, but it is
    expected to be supported by the Intel Apollo Lake platform.

    [bhelgaas: complete rework]
    Signed-off-by: Jonathan Yong
    Signed-off-by: Bjorn Helgaas

    Jonathan Yong
     

03 Aug, 2016

1 commit

  • Pull PCI updates from Bjorn Helgaas:
    "Highlights:

    - ARM64 support for ACPI host bridges

    - new drivers for Axis ARTPEC-6 and Marvell Aardvark

    - new pci_alloc_irq_vectors() interface for MSI-X, MSI, legacy INTx

    - pci_resource_to_user() cleanup (more to come)

    Detailed summary:

    Enumeration:
    - Move ecam.h to linux/include/pci-ecam.h (Jayachandran C)
    - Add parent device field to ECAM struct pci_config_window (Jayachandran C)
    - Add generic MCFG table handling (Tomasz Nowicki)
    - Refactor pci_bus_assign_domain_nr() for CONFIG_PCI_DOMAINS_GENERIC (Tomasz Nowicki)
    - Factor DT-specific pci_bus_find_domain_nr() code out (Tomasz Nowicki)

    Resource management:
    - Add devm_request_pci_bus_resources() (Bjorn Helgaas)
    - Unify pci_resource_to_user() declarations (Bjorn Helgaas)
    - Implement pci_resource_to_user() with pcibios_resource_to_bus() (microblaze, powerpc, sparc) (Bjorn Helgaas)
    - Request host bridge window resources (designware, iproc, rcar, xgene, xilinx, xilinx-nwl) (Bjorn Helgaas)
    - Make PCI I/O space optional on ARM32 (Bjorn Helgaas)
    - Ignore write combining when mapping I/O port space (Bjorn Helgaas)
    - Claim bus resources on MIPS PCI_PROBE_ONLY set-ups (Bjorn Helgaas)
    - Remove unicore32 pci=firmware command line parameter handling (Bjorn Helgaas)
    - Support I/O resources when parsing host bridge resources (Jayachandran C)
    - Add helpers to request/release memory and I/O regions (Johannes Thumshirn)
    - Use pci_(request|release)_mem_regions (NVMe, lpfc, GenWQE, ethernet/intel, alx) (Johannes Thumshirn)
    - Extend pci=resource_alignment to specify device/vendor IDs (Koehrer Mathias (ETAS/ESW5))
    - Add generic pci_bus_claim_resources() (Lorenzo Pieralisi)
    - Claim bus resources on ARM32 PCI_PROBE_ONLY set-ups (Lorenzo Pieralisi)
    - Remove ARM32 and ARM64 arch-specific pcibios_enable_device() (Lorenzo Pieralisi)
    - Add pci_unmap_iospace() to unmap I/O resources (Sinan Kaya)
    - Remove powerpc __pci_mmap_set_pgprot() (Yinghai Lu)

    PCI device hotplug:
    - Allow additional bus numbers for hotplug bridges (Keith Busch)
    - Ignore interrupts during D3cold (Lukas Wunner)

    Power management:
    - Enforce type casting for pci_power_t (Andy Shevchenko)
    - Don't clear d3cold_allowed for PCIe ports (Mika Westerberg)
    - Put PCIe ports into D3 during suspend (Mika Westerberg)
    - Power on bridges before scanning new devices (Mika Westerberg)
    - Runtime resume bridge before rescan (Mika Westerberg)
    - Add runtime PM support for PCIe ports (Mika Westerberg)
    - Remove redundant check of pcie_set_clkpm (Shawn Lin)

    Virtualization:
    - Add function 1 DMA alias quirk for Marvell 88SE9182 (Aaron Sierra)
    - Add DMA alias quirk for Adaptec 3805 (Alex Williamson)
    - Mark Atheros AR9485 and QCA9882 to avoid bus reset (Chris Blake)
    - Add ACS quirk for Solarflare SFC9220 (Edward Cree)

    MSI:
    - Fix PCI_MSI dependencies (Arnd Bergmann)
    - Add pci_msix_desc_addr() helper (Christoph Hellwig)
    - Switch msix_program_entries() to use pci_msix_desc_addr() (Christoph Hellwig)
    - Make the "entries" argument to pci_enable_msix() optional (Christoph Hellwig)
    - Provide sensible IRQ vector alloc/free routines (Christoph Hellwig)
    - Spread interrupt vectors in pci_alloc_irq_vectors() (Christoph Hellwig)

    Error Handling:
    - Bind DPC to Root Ports as well as Downstream Ports (Keith Busch)
    - Remove DPC tristate module option (Keith Busch)
    - Convert Downstream Port Containment driver to use devm_* functions (Mika Westerberg)

    Generic host bridge driver:
    - Select IRQ_DOMAIN (Arnd Bergmann)
    - Claim bus resources on PCI_PROBE_ONLY set-ups (Lorenzo Pieralisi)

    ACPI host bridge driver:
    - Add ARM64 acpi_pci_bus_find_domain_nr() (Tomasz Nowicki)
    - Add ARM64 ACPI support for legacy IRQs parsing and consolidation with DT code (Tomasz Nowicki)
    - Implement ARM64 AML accessors for PCI_Config region (Tomasz Nowicki)
    - Support ARM64 ACPI-based PCI host controller (Tomasz Nowicki)

    Altera host bridge driver:
    - Check link status before retrain link (Ley Foon Tan)
    - Poll for link up status after retraining the link (Ley Foon Tan)

    Axis ARTPEC-6 host bridge driver:
    - Add PCI_MSI_IRQ_DOMAIN dependency (Arnd Bergmann)
    - Add DT binding for Axis ARTPEC-6 PCIe controller (Niklas Cassel)
    - Add Axis ARTPEC-6 PCIe controller driver (Niklas Cassel)

    Intel VMD host bridge driver:
    - Use lock save/restore in interrupt enable path (Jon Derrick)
    - Select device dma ops to override (Keith Busch)
    - Initialize list item in IRQ disable (Keith Busch)
    - Use x86_vector_domain as parent domain (Keith Busch)
    - Separate MSI and MSI-X vector sharing (Keith Busch)

    Marvell Aardvark host bridge driver:
    - Add DT binding for the Aardvark PCIe controller (Thomas Petazzoni)
    - Add Aardvark PCI host controller driver (Thomas Petazzoni)
    - Add Aardvark PCIe support for Armada 3700 (Thomas Petazzoni)

    Microsoft Hyper-V host bridge driver:
    - Fix interrupt cleanup path (Cathy Avery)
    - Don't leak buffer in hv_pci_onchannelcallback() (Vitaly Kuznetsov)
    - Handle all pending messages in hv_pci_onchannelcallback() (Vitaly Kuznetsov)

    NVIDIA Tegra host bridge driver:
    - Program PADS_REFCLK_CFG* always, not just on legacy SoCs (Stephen Warren)
    - Program PADS_REFCLK_CFG* registers with per-SoC values (Stephen Warren)
    - Use lower-case hex consistently for register definitions (Thierry Reding)
    - Use generic pci_remap_iospace() rather than ARM32-specific one (Thierry Reding)
    - Stop setting pcibios_min_mem (Thierry Reding)

    Renesas R-Car host bridge driver:
    - Drop gen2 dummy I/O port region (Bjorn Helgaas)

    TI DRA7xx host bridge driver:
    - Fix return value in case of error (Christophe JAILLET)

    Xilinx AXI host bridge driver:
    - Fix return value in case of error (Christophe JAILLET)

    Miscellaneous:
    - Make bus_attr_resource_alignment static (Ben Dooks)
    - Include for isa_dma_bridge_buggy (Ben Dooks)
    - MAINTAINERS: Add file patterns for PCI device tree bindings (Geert Uytterhoeven)
    - Make host bridge drivers explicitly non-modular (Paul Gortmaker)"

    * tag 'pci-v4.8-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (125 commits)
    PCI: xgene: Make explicitly non-modular
    PCI: thunder-pem: Make explicitly non-modular
    PCI: thunder-ecam: Make explicitly non-modular
    PCI: tegra: Make explicitly non-modular
    PCI: rcar-gen2: Make explicitly non-modular
    PCI: rcar: Make explicitly non-modular
    PCI: mvebu: Make explicitly non-modular
    PCI: layerscape: Make explicitly non-modular
    PCI: keystone: Make explicitly non-modular
    PCI: hisi: Make explicitly non-modular
    PCI: generic: Make explicitly non-modular
    PCI: designware-plat: Make it explicitly non-modular
    PCI: artpec6: Make explicitly non-modular
    PCI: armada8k: Make explicitly non-modular
    PCI: artpec: Add PCI_MSI_IRQ_DOMAIN dependency
    PCI: Add ACS quirk for Solarflare SFC9220
    arm64: dts: marvell: Add Aardvark PCIe support for Armada 3700
    PCI: aardvark: Add Aardvark PCI host controller driver
    dt-bindings: add DT binding for the Aardvark PCIe controller
    PCI: tegra: Program PADS_REFCLK_CFG* registers with per-SoC values
    ...

    Linus Torvalds
     

02 Aug, 2016

4 commits

  • Conflicts:
    drivers/nvme/host/pci.c

    Bjorn Helgaas
     
  • * pci/demodularize-hosts:
    PCI: xgene: Make explicitly non-modular
    PCI: thunder-pem: Make explicitly non-modular
    PCI: thunder-ecam: Make explicitly non-modular
    PCI: tegra: Make explicitly non-modular
    PCI: rcar-gen2: Make explicitly non-modular
    PCI: rcar: Make explicitly non-modular
    PCI: mvebu: Make explicitly non-modular
    PCI: layerscape: Make explicitly non-modular
    PCI: keystone: Make explicitly non-modular
    PCI: hisi: Make explicitly non-modular
    PCI: generic: Make explicitly non-modular
    PCI: designware-plat: Make it explicitly non-modular
    PCI: artpec6: Make explicitly non-modular
    PCI: armada8k: Make explicitly non-modular
    PCI: artpec: Add PCI_MSI_IRQ_DOMAIN dependency
    PCI: artpec: Add Axis ARTPEC-6 PCIe controller driver
    PCI: Add DT binding for Axis ARTPEC-6 PCIe controller
    PCI: generic: Select IRQ_DOMAIN

    * pci/host-request-windows:
    PCI: versatile: Simplify host bridge window iteration
    PCI: versatile: Request host bridge window resources with core function
    PCI: tegra: Request host bridge window resources with core function
    PCI: tegra: Remove top-level resource from hierarchy
    PCI: rcar: Simplify host bridge window iteration
    PCI: rcar: Request host bridge window resources with core function
    PCI: rcar Gen2: Request host bridge window resources
    PCI: rcar: Drop gen2 dummy I/O port region
    ARM: Make PCI I/O space optional
    PCI: mvebu: Request host bridge window resources with core function
    PCI: generic: Simplify host bridge window iteration
    PCI: generic: Request host bridge window resources with core function
    PCI: altera: Simplify host bridge window iteration
    PCI: altera: Request host bridge window resources with core function
    PCI: xilinx-nwl: Use dev_printk() when possible
    PCI: xilinx-nwl: Request host bridge window resources
    PCI: xilinx-nwl: Free bridge resource list on failure
    PCI: xilinx: Request host bridge window resources
    PCI: xilinx: Free bridge resource list on failure
    PCI: xgene: Request host bridge window resources
    PCI: xgene: Free bridge resource list on failure
    PCI: iproc: Request host bridge window resources
    PCI: designware: Simplify host bridge window iteration
    PCI: designware: Request host bridge window resources
    PCI: designware: Free bridge resource list on failure
    PCI: Add devm_request_pci_bus_resources()

    Bjorn Helgaas
     
  • * pci/resource:
    unicore32/PCI: Remove pci=firmware command line parameter handling
    ARM/PCI: Remove arch-specific pcibios_enable_device()
    ARM64/PCI: Remove arch-specific pcibios_enable_device()
    MIPS/PCI: Claim bus resources on PCI_PROBE_ONLY set-ups
    ARM/PCI: Claim bus resources on PCI_PROBE_ONLY set-ups
    PCI: generic: Claim bus resources on PCI_PROBE_ONLY set-ups
    PCI: Add generic pci_bus_claim_resources()
    alx: Use pci_(request|release)_mem_regions
    ethernet/intel: Use pci_(request|release)_mem_regions
    GenWQE: Use pci_(request|release)_mem_regions
    lpfc: Use pci_(request|release)_mem_regions
    NVMe: Use pci_(request|release)_mem_regions
    PCI: Add helpers to request/release memory and I/O regions
    PCI: Extending pci=resource_alignment to specify device/vendor IDs
    sparc/PCI: Implement pci_resource_to_user() with pcibios_resource_to_bus()
    powerpc/pci: Implement pci_resource_to_user() with pcibios_resource_to_bus()
    microblaze/PCI: Implement pci_resource_to_user() with pcibios_resource_to_bus()
    PCI: Unify pci_resource_to_user() declarations
    microblaze/PCI: Remove useless __pci_mmap_set_pgprot()
    powerpc/pci: Remove __pci_mmap_set_pgprot()
    PCI: Ignore write combining when mapping I/O port space

    Bjorn Helgaas
     
  • …/pm' and 'pci/virtualization' into next

    * pci/aspm:
    PCI/ASPM: Remove redundant check of pcie_set_clkpm

    * pci/dpc:
    PCI: Remove DPC tristate module option
    PCI: Bind DPC to Root Ports as well as Downstream Ports
    PCI: Fix whitespace in struct dpc_dev
    PCI: Convert Downstream Port Containment driver to use devm_* functions

    * pci/hotplug:
    PCI: Allow additional bus numbers for hotplug bridges

    * pci/misc:
    PCI: Include <asm/dma.h> for isa_dma_bridge_buggy
    PCI: Make bus_attr_resource_alignment static
    MAINTAINERS: Add file patterns for PCI device tree bindings
    PCI: Fix comment typo

    * pci/msi:
    PCI/MSI: irqchip: Fix PCI_MSI dependencies

    * pci/pm:
    PCI: pciehp: Ignore interrupts during D3cold
    PCI: Document connection between pci_power_t and hardware PM capability
    PCI: Add runtime PM support for PCIe ports
    ACPI / hotplug / PCI: Runtime resume bridge before rescan
    PCI: Power on bridges before scanning new devices
    PCI: Put PCIe ports into D3 during suspend
    PCI: Don't clear d3cold_allowed for PCIe ports
    PCI / PM: Enforce type casting for pci_power_t

    * pci/virtualization:
    PCI: Add ACS quirk for Solarflare SFC9220
    PCI: Add DMA alias quirk for Adaptec 3805
    PCI: Mark Atheros AR9485 and QCA9882 to avoid bus reset
    PCI: Add function 1 DMA alias quirk for Marvell 88SE9182

    Bjorn Helgaas
     

26 Jul, 2016

1 commit

  • A user may hot add a switch requiring more than one bus to enumerate. This
    previously required a system reboot if BIOS did not sufficiently pad the
    bus resource, which they frequently don't do.

    Add a kernel parameter so a user can specify the minimum number of bus
    numbers to reserve for a hotplug bridge's subordinate buses so rebooting
    won't be necessary.

    The default is 1, which is equivalent to previous behavior.

    Signed-off-by: Keith Busch
    Signed-off-by: Bjorn Helgaas

    Keith Busch
     

22 Jul, 2016

2 commits

  • Set the affinity_mask in the PCI device before allocating vectors so that
    the affinity can be propagated through the MSI descriptor structures to the
    core IRQ code. To facilitate this, new __pci_enable_msi_range() and
    __pci_enable_msix_range() helpers are factored out of their not prefixed
    variants which assigning the new IRQ affinity mask in the PCI device so
    that the low-level interrupt code can perform the interrupt affinity
    assignment and do node-local allocations.

    A new PCI_IRQ_NOAFFINITY flag is added to pci_alloc_irq_vectors() so that
    this function can also be used by drivers that don't wish to use the
    automatic affinity assignment.

    [bhelgaas: omit "else" after "return" consistently]
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Alexander Gordeev

    Christoph Hellwig
     
  • Add a function to allocate and free a range of interrupt vectors, using
    MSI-X, MSI or legacy vectors (in that order) based on the capabilities of
    the underlying device and PCIe complex.

    Additionally a new helper is provided to get the Linux IRQ number for given
    device-relative vector so that the drivers don't need to allocate their own
    arrays to keep track of the vectors for the multi vector MSI-X case.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Alexander Gordeev

    Christoph Hellwig
     

24 Jun, 2016

1 commit

  • All PCI resources (bridge windows and BARs) should be inserted in the
    iomem_resource and ioport_resource trees so we know what space is occupied
    and what is available for other devices. There's nothing arch-specific
    about this, but it is currently done by arch-specific code.

    Add a generic pci_bus_claim_resources() interface so we can migrate away
    from the arch-specific code.

    [bhelgaas: changelog]
    Signed-off-by: Lorenzo Pieralisi
    Signed-off-by: Bjorn Helgaas
    CC: Arnd Bergmann
    CC: Yinghai Lu

    Lorenzo Pieralisi
     

22 Jun, 2016

1 commit

  • Add helpers to request and release a device's memory or I/O regions.

    With these helpers in place, one does not need to select a device's memory
    or I/O regions with pci_select_bars() prior to requesting or releasing
    them.

    Suggested-by: Christoph Hellwig
    Signed-off-by: Johannes Thumshirn
    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Christoph Hellwig

    Johannes Thumshirn
     

21 Jun, 2016

1 commit

  • Currently, PowerPC PowerNV platform utilizes ppc_md.pcibios_fixup(),
    which is called for once after PCI probing and resource assignment
    are completed, to allocate platform required resources for PCI devices:
    PE#, IO and MMIO mapping, DMA address translation (TCE) table etc.
    Obviously, it's not hotplug friendly.

    This adds weak function pcibios_setup_bridge(), which is called by
    pci_setup_bridge(). PowerPC PowerNV platform will reuse the function
    to assign above platform required resources to newly plugged PCI devices
    during PCI hotplug in subsequent patches.

    Signed-off-by: Gavin Shan
    Acked-by: Bjorn Helgaas
    Signed-off-by: Michael Ellerman

    Gavin Shan
     

18 Jun, 2016

2 commits

  • The dev.pme_support field, pci_pm_init(), pci_pme_capable(), and
    pci_raw_set_power_state() depend on the fact that the pci_power_t values
    (PCI_D0, PCI_D1, etc.) match the definition of the Capabilities PME_Support
    and the Control/Status PowerState fields in the Power Management capability
    (see PCI Bus Power Management spec r1.2, sec 3.2.3).

    Add a note to this effect at the pci_power_t typedef.

    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Andy Shevchenko
    Reviewed-by: Mika Westerberg

    Bjorn Helgaas
     
  • Replace the pci_resource_to_user() declarations in each arch that defines
    HAVE_ARCH_PCI_RESOURCE_TO_USER with a single one in linux/pci.h.

    Change the MIPS static inline implementation to a non-inline version so the
    static inline doesn't conflict with the new non-static linux/pci.h
    declaration.

    No functional change intended.

    Signed-off-by: Bjorn Helgaas

    Bjorn Helgaas
     

14 Jun, 2016

1 commit

  • Currently the Linux PCI core does not touch power state of PCI bridges and
    PCIe ports when system suspend is entered. Leaving them in D0 consumes
    power unnecessarily and may prevent the CPU from entering deeper C-states.

    With recent PCIe hardware we can power down the ports to save power given
    that we take into account few restrictions:

    - The PCIe port hardware is recent enough, starting from 2015.

    - Devices connected to PCIe ports are effectively in D3cold once the port
    is transitioned to D3 (the config space is not accessible anymore and
    the link may be powered down).

    - Devices behind the PCIe port need to be allowed to transition to D3cold
    and back. There is a way both drivers and userspace can forbid this.

    - If the device behind the PCIe port is capable of waking the system it
    needs to be able to do so from D3cold.

    This patch adds a new flag to struct pci_device called 'bridge_d3'. This
    flag is set and cleared by the PCI core whenever there is a change in power
    management state of any of the devices behind the PCIe port. When system
    later on is suspended we only need to check this flag and if it is true
    transition the port to D3 otherwise we leave it in D0.

    Also provide override mechanism via command line parameter
    "pcie_port_pm=[off|force]" that can be used to disable or enable the
    feature regardless of the BIOS manufacturing date.

    Tested-by: Lukas Wunner
    Signed-off-by: Mika Westerberg
    Signed-off-by: Bjorn Helgaas
    Acked-by: Rafael J. Wysocki

    Mika Westerberg
     

13 Jun, 2016

1 commit


11 Jun, 2016

4 commits

  • Extend pci_bus_find_domain_nr() so it can find the domain from either:

    - ACPI, via the new acpi_pci_bus_find_domain_nr() interface, or
    - DT, via of_pci_bus_find_domain_nr()

    Note that this is only used for CONFIG_PCI_DOMAINS_GENERIC=y, so it does
    not affect x86 or ia64.

    [bhelgaas: changelog]
    Signed-off-by: Tomasz Nowicki
    Signed-off-by: Lorenzo Pieralisi
    Signed-off-by: Bjorn Helgaas

    Tomasz Nowicki
     
  • Instead of assigning bus->domain_nr inside pci_bus_assign_domain_nr(),
    return the domain and let the caller do the assignment. Rename
    pci_bus_assign_domain_nr() to pci_bus_find_domain_nr() to reflect this.

    No functional change intended.

    [bhelgaas: changelog]
    Signed-off-by: Tomasz Nowicki
    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Lorenzo Pieralisi

    Tomasz Nowicki
     
  • On ACPI systems that support memory-mapped config space access, i.e., ECAM,
    the PCI Firmware Specification says the OS can learn where the ECAM space
    is from either:

    - the static MCFG table (for non-hotpluggable bridges), or
    - the _CBA method (for hotpluggable bridges)

    The current MCFG table handling code cannot be easily generalized owing to
    x86-specific quirks, which makes it hard to reuse on other architectures.

    Implement generic MCFG handling from scratch, including:

    - Simple MCFG table parsing (via pci_mmcfg_late_init() as in current x86)
    - MCFG region lookup for a (domain, bus_start, bus_end) tuple

    [bhelgaas: changelog]
    Signed-off-by: Tomasz Nowicki
    Signed-off-by: Jayachandran C
    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Lorenzo Pieralisi

    Tomasz Nowicki
     
  • Add pci_unmap_iospace() to undo what pci_remap_iospace() did.

    This is needed to support hotplug removal of host bridges that use
    pci_remap_iospace().

    [bhelgaas: changelog]
    Signed-off-by: Sinan Kaya
    Signed-off-by: Tomasz Nowicki
    Signed-off-by: Bjorn Helgaas
    Acked-by: Lorenzo Pieralisi

    Sinan Kaya
     

07 Jun, 2016

1 commit

  • Several host bridge drivers iterate through the list of bridge windows to
    request resources. Several others don't request the window resources at
    all.

    Add a devm_request_pci_bus_resources() interface to make it easier for
    drivers to request all the window resources. Export to GPL modules (from
    Arnd Bergmann ).

    Signed-off-by: Bjorn Helgaas

    Bjorn Helgaas
     

20 May, 2016

1 commit

  • Pull PCI updates from Bjorn Helgaas:
    "Enumeration:
    - Refine PCI support check in pcibios_init() (Adrian-Ken Rueegsegger)
    - Provide common functions for ECAM mapping (Jayachandran C)
    - Allow all PCIe services on non-ACPI host bridges (Jon Derrick)
    - Remove return values from pcie_port_platform_notify() and relatives (Jon Derrick)
    - Widen portdrv service type from 4 bits to 8 bits (Keith Busch)
    - Add Downstream Port Containment portdrv service type (Keith Busch)
    - Add Downstream Port Containment driver (Keith Busch)

    Resource management:
    - Identify Enhanced Allocation (EA) BAR Equivalent resources in sysfs (Alex Williamson)
    - Supply CPU physical address (not bus address) to iomem_is_exclusive() (Bjorn Helgaas)
    - alpha: Call iomem_is_exclusive() for IORESOURCE_MEM, but not IORESOURCE_IO (Bjorn Helgaas)
    - Mark Broadwell-EP Home Agent 1 as having non-compliant BARs (Prarit Bhargava)
    - Disable all BAR sizing for devices with non-compliant BARs (Prarit Bhargava)
    - Move PCI I/O space management from OF to PCI core code (Tomasz Nowicki)

    PCI device hotplug:
    - acpiphp_ibm: Avoid uninitialized variable reference (Dan Carpenter)
    - Use cached copy of PCI_EXP_SLTCAP_HPC bit (Lukas Wunner)

    Virtualization:
    - Mark Intel i40e NIC INTx masking as broken (Alex Williamson)
    - Reverse standard ACS vs device-specific ACS enabling (Alex Williamson)
    - Work around Intel Sunrise Point PCH incorrect ACS capability (Alex Williamson)

    IOMMU:
    - Add pci_add_dma_alias() to abstract implementation (Bjorn Helgaas)
    - Move informational printk to pci_add_dma_alias() (Bjorn Helgaas)
    - Add support for multiple DMA aliases (Jacek Lawrynowicz)
    - Add DMA alias quirk for mic_x200_dma (Jacek Lawrynowicz)

    Thunderbolt:
    - Fix double free of drom buffer (Andreas Noever)
    - Add Intel Thunderbolt device IDs (Lukas Wunner)
    - Fix typos and magic number (Lukas Wunner)
    - Support 1st gen Light Ridge controller (Lukas Wunner)

    Generic host bridge driver:
    - Use generic ECAM API (Jayachandran C)

    Cavium ThunderX host bridge driver:
    - Don't clobber read-only bits in bridge config registers (David Daney)
    - Use generic ECAM API (Jayachandran C)

    Freescale i.MX6 host bridge driver:
    - Use enum instead of bool for variant indicator (Andrey Smirnov)
    - Implement reset sequence for i.MX6+ (Andrey Smirnov)
    - Factor out ref clock enable (Bjorn Helgaas)
    - Add initial imx6sx support (Christoph Fritz)
    - Add reset-gpio-active-high boolean property to DT (Petr Štetiar)
    - Add DT property for link gen, default to Gen1 (Tim Harvey)
    - dts: Specify imx6qp version of PCIe core (Andrey Smirnov)
    - dts: Fix PCIe reset GPIO polarity on Toradex Apalis Ixora (Petr Štetiar)

    Marvell Armada host bridge driver:
    - add DT binding for Marvell Armada 7K/8K PCIe controller (Thomas Petazzoni)
    - Add driver for Marvell Armada 7K/8K PCIe controller (Thomas Petazzoni)

    Marvell MVEBU host bridge driver:
    - Constify mvebu_pcie_pm_ops structure (Jisheng Zhang)
    - Use SET_NOIRQ_SYSTEM_SLEEP_PM_OPS for mvebu_pcie_pm_ops (Jisheng Zhang)

    Microsoft Hyper-V host bridge driver:
    - Report resources release after stopping the bus (Vitaly Kuznetsov)
    - Add explicit barriers to config space access (Vitaly Kuznetsov)

    Renesas R-Car host bridge driver:
    - Select PCI_MSI_IRQ_DOMAIN (Arnd Bergmann)

    Synopsys DesignWare host bridge driver:
    - Remove incorrect RC memory base/limit configuration (Gabriele Paoloni)
    - Move Root Complex setup code to dw_pcie_setup_rc() (Jisheng Zhang)

    TI Keystone host bridge driver:
    - Add error IRQ handler (Murali Karicheri)
    - Remove unnecessary goto statement (Murali Karicheri)

    Miscellaneous:
    - Fix spelling errors (Colin Ian King)"

    * tag 'pci-v4.7-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (48 commits)
    PCI: Disable all BAR sizing for devices with non-compliant BARs
    x86/PCI: Mark Broadwell-EP Home Agent 1 as having non-compliant BARs
    PCI: Identify Enhanced Allocation (EA) BAR Equivalent resources in sysfs
    PCI, of: Move PCI I/O space management to PCI core code
    PCI: generic, thunder: Use generic ECAM API
    PCI: Provide common functions for ECAM mapping
    PCI: hv: Add explicit barriers to config space access
    PCI: Use cached copy of PCI_EXP_SLTCAP_HPC bit
    PCI: Add Downstream Port Containment driver
    PCI: Add Downstream Port Containment portdrv service type
    PCI: Widen portdrv service type from 4 bits to 8 bits
    PCI: designware: Remove incorrect RC memory base/limit configuration
    PCI: hv: Report resources release after stopping the bus
    ARM: dts: imx6qp: Specify imx6qp version of PCIe core
    PCI: imx6: Implement reset sequence for i.MX6+
    PCI: imx6: Use enum instead of bool for variant indicator
    PCI: thunder: Don't clobber read-only bits in bridge config registers
    thunderbolt: Fix double free of drom buffer
    PCI: rcar: Select PCI_MSI_IRQ_DOMAIN
    PCI: armada: Add driver for Marvell Armada 7K/8K PCIe controller
    ...

    Linus Torvalds
     

18 May, 2016

1 commit


12 May, 2016

1 commit

  • No functional changes in this patch.

    PCI I/O space mapping code does not depend on OF; therefore it can be moved
    to PCI core code. This way we will be able to use it, e.g., in ACPI PCI
    code.

    Suggested-by: Lorenzo Pieralisi
    Signed-off-by: Tomasz Nowicki
    Signed-off-by: Bjorn Helgaas
    CC: Arnd Bergmann
    CC: Liviu Dudau

    Tomasz Nowicki
     

26 Apr, 2016

1 commit

  • …nderbolt' and 'pci/virtualization' into next

    * pci/enumeration:
    x86/PCI: Refine PCI support check in pcibios_init()

    * pci/hotplug:
    PCI: acpiphp_ibm: Avoid uninitialized variable reference

    * pci/misc:
    PCI: Fix spelling errors

    * pci/ntb:
    PCI: Add DMA alias quirk for mic_x200_dma
    PCI: Add support for multiple DMA aliases
    PCI: Move informational printk to pci_add_dma_alias()
    PCI: Add pci_add_dma_alias() to abstract implementation

    * pci/thunderbolt:
    thunderbolt: Support 1st gen Light Ridge controller
    thunderbolt: Fix typos and magic number
    PCI: Add Intel Thunderbolt device IDs

    * pci/virtualization:
    PCI: Work around Intel Sunrise Point PCH incorrect ACS capability
    PCI: Reverse standard ACS vs device-specific ACS enabling
    PCI: Mark Intel i40e NIC INTx masking as broken

    Bjorn Helgaas