• Linus Torvalds's avatar
    Merge tag 'pci-v5.17-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · d0a231f0
    Linus Torvalds authored
    Pull pci updates from Bjorn Helgaas:
     "Enumeration:
       - Use pci_find_vsec_capability() instead of open-coding it (Andy
         Shevchenko)
       - Convert pci_dev_present() stub from macro to static inline to avoid
         'unused variable' errors (Hans de Goede)
       - Convert sysfs slot attributes from default_attrs to default_groups
         (Greg Kroah-Hartman)
       - Use DWORD accesses for LTR, L1 SS to avoid BayHub OZ711LV2 erratum
         (Rajat Jain)
       - Remove unnecessary initialization of static variables (Longji Guo)
    
      Resource management:
       - Always write Intel I210 ROM BAR on update to work around device
         defect (Bjorn Helgaas)
    
      PCIe native device hotplug:
       - Fix pciehp lockdep errors on Thunderbolt undock (Hans de Goede)
       - Fix infinite loop in pciehp IRQ handler on power fault (Lukas
         Wunner)
    
      Power management:
       - Convert amd64-agp, sis-agp, via-agp from legacy PCI power
         management to generic power management (Vaibhav Gupta)
    
      IOMMU:
       - Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller
         so it can work with an IOMMU (Yifeng Li)
    
      Error handling:
       - Add PCI_ERROR_RESPONSE and related definitions for signaling and
         checking for transaction errors on PCI (Naveen Naidu)
       - Fabricate PCI_ERROR_RESPONSE data (~0) in config read wrappers,
         instead of in host controller drivers, when transactions fail on
         PCI (Naveen Naidu)
       - Use PCI_POSSIBLE_ERROR() to check for possible failure of config
         reads (Naveen Naidu)
    
      Peer-to-peer DMA:
       - Add Logan Gunthorpe as P2PDMA maintainer (Bjorn Helgaas)
    
      ASPM:
       - Calculate link L0s and L1 exit latencies when needed instead of
         caching them (Saheed O. Bolarinwa)
       - Calculate device L0s and L1 acceptable exit latencies when needed
         instead of caching them (Saheed O. Bolarinwa)
       - Remove struct aspm_latency since it's no longer needed (Saheed O.
         Bolarinwa)
    
      APM X-Gene PCIe controller driver:
       - Fix IB window setup, which was broken by the fact that IB resources
         are now sorted in address order instead of DT dma-ranges order (Rob
         Herring)
    
      Apple PCIe controller driver:
       - Enable clock gating to save power (Hector Martin)
       - Fix REFCLK1 enable/poll logic (Hector Martin)
    
      Broadcom STB PCIe controller driver:
       - Declare bitmap correctly for use by bitmap interfaces (Christophe
         JAILLET)
       - Clean up computation of legacy and non-legacy MSI bitmasks (Florian
         Fainelli)
       - Update suspend/resume/remove error handling to warn about errors
         and not fail the operation (Jim Quinlan)
       - Correct the "pcie" and "msi" interrupt descriptions in DT binding
         (Jim Quinlan)
       - Add DT bindings for endpoint voltage regulators (Jim Quinlan)
       - Split brcm_pcie_setup() into two functions (Jim Quinlan)
       - Add mechanism for turning on voltage regulators for connected
         devices (Jim Quinlan)
       - Turn voltage regulators for connected devices on/off when bus is
         added or removed (Jim Quinlan)
       - When suspending, don't turn off voltage regulators for wakeup
         devices (Jim Quinlan)
    
      Freescale i.MX6 PCIe controller driver:
       - Add i.MX8MM support (Richard Zhu)
    
      Freescale Layerscape PCIe controller driver:
       - Use DWC common ops instead of layerscape-specific link-up functions
         (Hou Zhiqiang)
    
      Intel VMD host bridge driver:
       - Honor platform ACPI _OSC feature negotiation for Root Ports below
         VMD (Kai-Heng Feng)
       - Add support for Raptor Lake SKUs (Karthik L Gopalakrishnan)
       - Reset everything below VMD before enumerating to work around
         failure to enumerate NVMe devices when guest OS reboots (Nirmal
         Patel)
    
      Bridge emulation (used by Marvell Aardvark and MVEBU):
       - Make emulated ROM BAR read-only by default (Pali Rohár)
       - Make some emulated legacy PCI bits read-only for PCIe devices (Pali
         Rohár)
       - Update reserved bits in emulated PCIe Capability (Pali Rohár)
       - Allow drivers to emulate different PCIe Capability versions (Pali
         Rohár)
       - Set emulated Capabilities List bit for all PCIe devices, since they
         must have at least a PCIe Capability (Pali Rohár)
    
      Marvell Aardvark PCIe controller driver:
       - Add bridge emulation definitions for PCIe DEVCAP2, DEVCTL2,
         DEVSTA2, LNKCAP2, LNKCTL2, LNKSTA2, SLTCAP2, SLTCTL2, SLTSTA2 (Pali
         Rohár)
       - Add aardvark support for DEVCAP2, DEVCTL2, LNKCAP2 and LNKCTL2
         registers (Pali Rohár)
       - Clear all MSIs at setup to avoid spurious interrupts (Pali Rohár)
       - Disable bus mastering when unbinding host controller driver (Pali
         Rohár)
       - Mask all interrupts when unbinding host controller driver (Pali
         Rohár)
       - Fix memory leak in host controller unbind (Pali Rohár)
       - Assert PERST# when unbinding host controller driver (Pali Rohár)
       - Disable link training when unbinding host controller driver (Pali
         Rohár)
       - Disable common PHY when unbinding host controller driver (Pali
         Rohár)
       - Fix resource type checking to check only IORESOURCE_MEM, not
         IORESOURCE_MEM_64, which is a flavor of IORESOURCE_MEM (Pali Rohár)
    
      Marvell MVEBU PCIe controller driver:
       - Implement pci_remap_iospace() for ARM so mvebu can use
         devm_pci_remap_iospace() instead of the previous ARM-specific
         pci_ioremap_io() interface (Pali Rohár)
       - Use the standard pci_host_probe() instead of the device-specific
         mvebu_pci_host_probe() (Pali Rohár)
       - Replace all uses of ARM-specific pci_ioremap_io() with the ARM
         implementation of the standard pci_remap_iospace() interface and
         remove pci_ioremap_io() (Pali Rohár)
       - Skip initializing invalid Root Ports (Pali Rohár)
       - Check for errors from pci_bridge_emul_init() (Pali Rohár)
       - Ignore any bridges at non-zero function numbers (Pali Rohár)
       - Return ~0 data for invalid config read size (Pali Rohár)
       - Disallow mapping interrupts on emulated bridges (Pali Rohár)
       - Clear Root Port Memory & I/O Space Enable and Bus Master Enable at
         initialization (Pali Rohár)
       - Make type bits in Root Port I/O Base register read-only (Pali
         Rohár)
       - Disable Root Port windows when base/limit set to invalid values
         (Pali Rohár)
       - Set controller to Root Complex mode (Pali Rohár)
       - Set Root Port Class Code to PCI Bridge (Pali Rohár)
       - Update emulated Root Port secondary bus numbers to better reflect
         the actual topology (Pali Rohár)
       - Add PCI_BRIDGE_CTL_BUS_RESET support to emulated Root Ports so
         pci_reset_secondary_bus() can reset connected devices (Pali Rohár)
       - Add PCI_EXP_DEVCTL Error Reporting Enable support to emulated Root
         Ports (Pali Rohár)
       - Add PCI_EXP_RTSTA PME Status bit support to emulated Root Ports
         (Pali Rohár)
       - Add DEVCAP2, DEVCTL2 and LNKCTL2 support to emulated Root Ports on
         Armada XP and newer devices (Pali Rohár)
       - Export mvebu-mbus.c symbols to allow pci-mvebu.c to be a module
         (Pali Rohár)
       - Add support for compiling as a module (Pali Rohár)
    
      MediaTek PCIe controller driver:
       - Assert PERST# for 100ms to allow power and clock to stabilize
         (qizhong cheng)
    
      MediaTek PCIe Gen3 controller driver:
       - Disable Mediatek DVFSRC voltage request since lack of DVFSRC to
         respond to the request causes failure to exit L1 PM Substate
         (Jianjun Wang)
    
      MediaTek MT7621 PCIe controller driver:
       - Declare mt7621_pci_ops static (Sergio Paracuellos)
       - Give pcibios_root_bridge_prepare() access to host bridge windows
         (Sergio Paracuellos)
       - Move MIPS I/O coherency unit setup from driver to
         pcibios_root_bridge_prepare() (Sergio Paracuellos)
       - Add missing MODULE_LICENSE() (Sergio Paracuellos)
       - Allow COMPILE_TEST for all arches (Sergio Paracuellos)
    
      Microsoft Hyper-V host bridge driver:
       - Add hv-internal interfaces to encapsulate arch IRQ dependencies
         (Sunil Muthuswamy)
       - Add arm64 Hyper-V vPCI support (Sunil Muthuswamy)
    
      Qualcomm PCIe controller driver:
       - Undo PM setup in qcom_pcie_probe() error handling path (Christophe
         JAILLET)
       - Use __be16 type to store return value from cpu_to_be16()
         (Manivannan Sadhasivam)
       - Constify static dw_pcie_ep_ops (Rikard Falkeborn)
    
      Renesas R-Car PCIe controller driver:
       - Fix aarch32 abort handler so it doesn't check the wrong bus clock
         before accessing the host controller (Marek Vasut)
    
      TI Keystone PCIe controller driver:
       - Add register offset for ti,syscon-pcie-id and ti,syscon-pcie-mode
         DT properties (Kishon Vijay Abraham I)
    
      MicroSemi Switchtec management driver:
       - Add Gen4 automotive device IDs (Kelvin Cao)
       - Declare state_names[] as static so it's not allocated and
         initialized for every call (Kelvin Cao)
    
      Host controller driver cleanups:
       - Use of_device_get_match_data(), not of_match_device(), when we only
         need the device data in altera, artpec6, cadence, designware-plat,
         dra7xx, keystone, kirin (Fan Fei)
       - Drop pointless of_device_get_match_data() cast in j721e (Bjorn
         Helgaas)
       - Drop redundant struct device * from j721e since struct cdns_pcie
         already has one (Bjorn Helgaas)
       - Rename driver structs to *_pcie in intel-gw, iproc, ls-gen4,
         mediatek-gen3, microchip, mt7621, rcar-gen2, tegra194, uniphier,
         xgene, xilinx, xilinx-cpm for consistency across drivers (Fan Fei)
       - Fix invalid address space conversions in hisi, spear13xx (Bjorn
         Helgaas)
    
      Miscellaneous:
       - Sort Intel Device IDs by value (Andy Shevchenko)
       - Change Capability offsets to hex to match spec (Baruch Siach)
       - Correct misspellings (Krzysztof Wilczyński)
       - Terminate statement with semicolon in pci_endpoint_test.c (Ming
         Wang)"
    
    * tag 'pci-v5.17-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (151 commits)
      PCI: mt7621: Allow COMPILE_TEST for all arches
      PCI: mt7621: Add missing MODULE_LICENSE()
      PCI: mt7621: Move MIPS setup to pcibios_root_bridge_prepare()
      PCI: Let pcibios_root_bridge_prepare() access bridge->windows
      PCI: mt7621: Declare mt7621_pci_ops static
      PCI: brcmstb: Do not turn off WOL regulators on suspend
      PCI: brcmstb: Add control of subdevice voltage regulators
      PCI: brcmstb: Add mechanism to turn on subdev regulators
      PCI: brcmstb: Split brcm_pcie_setup() into two funcs
      dt-bindings: PCI: Add bindings for Brcmstb EP voltage regulators
      dt-bindings: PCI: Correct brcmstb interrupts, interrupt-map.
      PCI: brcmstb: Fix function return value handling
      PCI: brcmstb: Do not use __GENMASK
      PCI: brcmstb: Declare 'used' as bitmap, not unsigned long
      PCI: hv: Add arm64 Hyper-V vPCI support
      PCI: hv: Make the code arch neutral by adding arch specific interfaces
      PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors
      x86/PCI: Remove initialization of static variables to false
      PCI: Use DWORD accesses for LTR, L1 SS to avoid erratum
      misc: pci_endpoint_test: Terminate statement with semicolon
      ...
    d0a231f0
pci-hyperv.c 105 KB