mbox series

[GIT,PULL] PCI changes for v6.6

Message ID 20230830190642.GA10547@bhelgaas
State New
Headers show
Series [GIT,PULL] PCI changes for v6.6 | expand

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git tags/pci-v6.6-changes

Message

Bjorn Helgaas Aug. 30, 2023, 7:06 p.m. UTC
The following changes since commit 06c2afb862f9da8dc5efa4b6076a0e48c3fbaaa5:

  Linux 6.5-rc1 (2023-07-09 13:53:13 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git tags/pci-v6.6-changes

for you to fetch changes up to 43cc31da9146f9ce60e4a03d96ef0807c2cdac94:

  Merge branch 'pci/misc' (2023-08-29 11:03:57 -0500)

----------------------------------------------------------------

Enumeration:

  - Add locking to read/modify/write PCIe Capability Register accessors for
    Link Control and Root Control

  - Use pci_dev_id() when possible instead of manually composing ID from
    dev->bus->number and dev->devfn

Resource management:

  - Move prototypes for __weak sysfs resource files to linux/pci.h to fix
    "no previous prototype" warnings

  - Make more I/O port accesses depend on HAS_IOPORT

  - Use devm_platform_get_and_ioremap_resource() instead of open-coding
    platform_get_resource() followed by devm_ioremap_resource()

Power management:

  - Ensure devices are powered up while accessing VPD

  - If device is powered-up, keep it that way while polling for PME

  - Only read PCI_PM_CTRL register when available, to avoid reading the
    wrong register and corrupting dev->current_state

Virtualization:

  - Avoid Secondary Bus Reset on NVIDIA T4 GPUs

Error handling:

  - Remove unused pci_disable_pcie_error_reporting()

  - Unexport pci_enable_pcie_error_reporting(), used only by aer.c

  - Unexport pcie_port_bus_type, used only by PCI core

VGA:

  - Simplify and clean up typos in VGA arbiter

Apple PCIe controller driver:

  - Initialize pcie->nvecs (number of available MSIs) before use

Broadcom iProc PCIe controller driver:

  - Use of_property_read_bool() instead of low-level accessors for boolean
    properties

Broadcom STB PCIe controller driver:

  - Assert PERST# when probing BCM2711 because some bootloaders don't do it

Freescale i.MX6 PCIe controller driver:

  - Add .host_deinit() callback so we can clean up things like regulators
    on probe failure or driver unload

Freescale Layerscape PCIe controller driver:

  - Add support for link-down notification so the endpoint driver can
    process LINK_DOWN events

  - Add suspend/resume support, including manual PME_Turn_off/PME_TO_Ack
    handshake

  - Save Link Capabilities during probe so they can be restored when
    handling a link-up event, since the controller loses the Link Width and
    Link Speed values during reset

Intel VMD host bridge driver:

  - Fix disable of bridge windows during domain reset; previously we
    cleared the base/limit registers, which actually left the windows
    enabled

Marvell MVEBU PCIe controller driver:

  - Remove unused busn member

Microchip PolarFlare PCIe controller driver:

  - Fix interrupt bit definitions so the SEC and DED interrupt handlers
    work correctly

  - Make driver buildable as a module

  - Read FPGA MSI configuration parameters from hardware instead of
    hard-coding them

Microsoft Hyper-V host bridge driver:

  - To avoid a NULL pointer dereference, skip MSI restore after hibernate
    if MSI/MSI-X hasn't been enabled

NVIDIA Tegra194 PCIe controller driver:

  - Revert "PCI: tegra194: Enable support for 256 Byte payload" because
    Linux doesn't know how to reduce MPS from to 256 to 128 bytes for
    Endpoints below a Switch (because other devices below the Switch might
    already be operating), which leads to Malformed TLP errors

Qualcomm PCIe controller driver:

  - Add DT and driver support for interconnect bandwidth voting for
    "pcie-mem" and "cpu-pcie" interconnects

  - Fix broken SDX65 "compatible" DT property

  - Configure controller so MHI bus master clock will be switched off while
    in ASPM L1.x states

  - Use alignment restriction from EPF core in EPF MHI driver

  - Add Endpoint eDMA support

  - Add MHI eDMA support

  - Add Snapdragon SM8450 support to the EPF MHI driversupport

  - Add MHI eDMA support

  - Add Snapdragon SM8450 support to the EPF MHI driversupport

  - Add MHI eDMA support

  - Add Snapdragon SM8450 support to the EPF MHI driversupport

  - Add MHI eDMA support

  - Add Snapdragon SM8450 support to the EPF MHI driver

  - Use iATU for EPF MHI transfers smaller than 4K to avoid eDMA setup
    latency

  - Add sa8775p DT binding and driver support

Rockchip PCIe controller driver:

  - Use 64-bit mask on MSI 64-bit PCI address to avoid zeroing out the
    upper 32 bits

SiFive FU740 PCIe controller driver:

  - Set the supported number of MSI vectors so we can use all available MSI
    interrupts

Synopsys DesignWare PCIe controller driver:

  - Add generic dwc suspend/resume APIs (dw_pcie_suspend_noirq() and
    dw_pcie_resume_noirq()) to be called by controller driver
    suspend/resume ops, and a controller callback to send PME_Turn_Off

MicroSemi Switchtec management driver:

  - Add support for PCIe Gen5 devices

Miscellaneous:

  - Reorder and compress to reduce size of struct pci_dev

  - Fix race in DOE destroy_work_on_stack()

  - Add stubs to avoid casts between incompatible function types

  - Explicitly include correct DT includes to untangle headers

----------------------------------------------------------------
Alex Williamson (2):
      PCI/VPD: Add runtime power management to sysfs interface
      PCI: Fix runtime PM race with PME polling

Arnd Bergmann (1):
      PCI/sysfs: Move declarations to linux/pci.h

Bjorn Helgaas (40):
      PCI/AER: Drop unused pci_disable_pcie_error_reporting()
      PCI/AER: Unexport pci_enable_pcie_error_reporting()
      PCI: Unexport pcie_port_bus_type
      PCI: Remove unnecessary initializations
      PCI: Fix printk field formatting
      PCI: Use consistent put_user() pointer types
      PCI/AER: Simplify AER_RECOVER_RING_SIZE definition
      PCI: Simplify pci_pio_to_address()
      PCI: Simplify pci_dev_driver()
      PCI: Fix pci_bus_resetable(), pci_slot_resetable() name typos
      PCI: Fix typos in docs and comments
      PCI: Fix code formatting inconsistencies
      PCI: Tidy config space save/restore messages
      PCI: Simplify pcie_capability_clear_and_set_word() control flow
      Merge branch 'pci/aer'
      Merge branch 'pci/hotplug'
      Merge branch 'pci/ioport'
      Merge branch 'pci/pcie-rmw'
      Merge branch 'pci/pm'
      Merge branch 'pci/virtualization'
      Merge branch 'pci/vga'
      Merge branch 'pci/vpd'
      Merge branch 'pci/controller/apple'
      Merge branch 'pci/controller/brcmstb'
      Merge branch 'pci/controller/dwc'
      Merge branch 'pci/controller/fu740'
      Merge branch 'pci/controller/hv'
      Merge branch 'pci/controller/iproc'
      Merge branch 'pci/controller/layerscape'
      Merge branch 'pci/controller/microchip'
      Merge branch 'pci/controller/qcom'
      Merge branch 'pci/controller/qcom-edma'
      Merge branch 'pci/controller/qcom-ep'
      Merge branch 'pci/controller/rockchip'
      Merge branch 'pci/controller/tegra194'
      Merge branch 'pci/controller/vmd'
      Merge branch 'pci/controller/remove-void-cast'
      Merge branch 'pci/controller/resources'
      Merge branch 'pci/controller/switchtec'
      Merge branch 'pci/misc'

Christophe JAILLET (3):
      PCI: Reorder pci_dev fields to reduce holes
      PCI: Change pdev->rom_attr_enabled to single bit
      x86/PCI: Use struct_size() in pirq_convert_irt_table()

Colin Ian King (1):
      PCI: ibmphp: Make read-only arrays static

Daire McNamara (7):
      PCI: microchip: Correct the DED and SEC interrupt bit offsets
      PCI: microchip: Enable building driver as a module
      PCI: microchip: Align register, offset, and mask names with HW docs
      PCI: microchip: Enable event handlers to access bridge and control pointers
      PCI: microchip: Clean up initialisation of interrupts
      PCI: microchip: Gather MSI information from hardware config registers
      PCI: microchip: Re-partition code between probe() and init()

Dexuan Cui (1):
      PCI: hv: Fix a crash in hv_pci_restore_msi_msg() during hibernation

Feiyang Chen (1):
      PCI/PM: Only read PCI_PM_CTRL register when available

Frank Li (3):
      PCI: layerscape: Add support for link-down notification
      PCI: Add PCIE_PME_TO_L2_TIMEOUT_US L2 ready timeout value
      PCI: dwc: Implement generic suspend/resume functionality

Hou Zhiqiang (1):
      PCI: layerscape: Add power management support for ls1028a

Ilpo Järvinen (12):
      PCI: Add locking to RMW PCI Express Capability Register accessors
      PCI: Make link retraining use RMW accessors for changing LNKCTL
      PCI: pciehp: Use RMW accessors for changing LNKCTL
      PCI/ASPM: Use RMW accessors for changing LNKCTL
      drm/amdgpu: Use RMW accessors for changing LNKCTL
      drm/radeon: Use RMW accessors for changing LNKCTL
      net/mlx5: Use RMW accessors for changing LNKCTL
      wifi: ath11k: Use RMW accessors for changing LNKCTL
      wifi: ath12k: Use RMW accessors for changing LNKCTL
      wifi: ath10k: Use RMW accessors for changing LNKCTL
      PCI: Document the Capability accessor RMW improvements
      net/mlx5: Convert PCI error values to generic errnos

Ira Weiny (1):
      PCI/DOE: Fix destroy_work_on_stack() race

Jim Quinlan (2):
      PCI: brcmstb: Assert PERST# on BCM2711
      PCI: brcmstb: Remove stale comment

Kelvin Cao (2):
      PCI: switchtec: Use normal comment style
      PCI: switchtec: Add support for PCIe Gen5 devices

Krishna chaitanya chundru (2):
      dt-bindings: PCI: qcom: ep: Add interconnects path
      PCI: qcom-ep: Add ICC bandwidth voting support

Krzysztof Kozlowski (1):
      dt-bindings: PCI: qcom: Fix SDX65 compatible

Krzysztof Wilczyński (3):
      PCI: meson: Remove cast between incompatible function type
      PCI: keembay: Remove cast between incompatible function type
      PCI: microchip: Remove cast between incompatible function type

Manivannan Sadhasivam (9):
      PCI: qcom-ep: Switch MHI bus master clock off during L1SS
      PCI: qcom-ep: Pass alignment restriction to the EPF core
      PCI: epf-mhi: Make use of the alignment restriction from EPF core
      PCI: qcom-ep: Add eDMA support
      PCI: epf-mhi: Add eDMA support
      PCI: epf-mhi: Add support for SM8450
      PCI: epf-mhi: Use iATU for small transfers
      PCI: endpoint: Add kernel-doc for pci_epc_mem_init() API
      PCI: qcom-ep: Treat unknown IRQ events as an error

Mark Brown (1):
      PCI: dwc: Provide deinit callback for i.MX

Mrinmay Sarkar (2):
      dt-bindings: PCI: qcom: Add sa8775p compatible
      PCI: qcom: Add support for sa8775p SoC

Niklas Schnelle (2):
      PCI: Make quirk using inw() depend on HAS_IOPORT
      PCI/sysfs: Make I/O resource depend on HAS_IOPORT

Nirmal Patel (1):
      PCI: vmd: Disable bridge window for domain reset

Pali Rohár (1):
      PCI: mvebu: Remove unused busn member

Rick Wertenbroek (1):
      PCI: rockchip: Use 64-bit mask on MSI 64-bit PCI address

Rob Herring (2):
      PCI: iproc: Use of_property_read_bool() for boolean properties
      PCI: Explicitly include correct DT includes

Sui Jingfeng (6):
      PCI/VGA: Correct vga_str_to_iostate() io_state parameter type
      PCI/VGA: Correct vga_update_device_decodes() parameter type
      PCI/VGA: Simplify vga_arbiter_notify_clients()
      PCI/VGA: Simplify vga_client_register()
      PCI/VGA: Replace full MIT license text with SPDX identifier
      PCI/VGA: Fix typos

Sven Peter (1):
      PCI: apple: Initialize pcie->nvecs before use

Vidya Sagar (1):
      Revert "PCI: tegra194: Enable support for 256 Byte payload"

Wu Zongyong (1):
      PCI: Mark NVIDIA T4 GPUs to avoid bus reset

Xiaowei Bao (1):
      PCI: layerscape: Add workaround for lost link capabilities during reset

Xiongfeng Wang (3):
      PCI: apple: Use pci_dev_id() to simplify the code
      PCI/AER: Use pci_dev_id() to simplify the code
      PCI/IOV: Use pci_dev_id() to simplify the code

Yang Li (4):
      PCI: rcar-gen2: Use devm_platform_get_and_ioremap_resource()
      PCI: v3: Use devm_platform_get_and_ioremap_resource()
      PCI: xgene-msi: Use devm_platform_get_and_ioremap_resource()
      PCI: imx6: Use devm_platform_get_and_ioremap_resource()

Yong-Xuan Wang (1):
      PCI: fu740: Set the number of MSI vectors

Yue Haibing (1):
      PCI: Remove unused function declarations

Zheng Zengkai (1):
      PCI/P2PDMA: Use pci_dev_id() to simplify the code

 Documentation/PCI/pci-error-recovery.rst           |  12 +-
 Documentation/PCI/pciebus-howto.rst                |  14 +-
 .../devicetree/bindings/pci/qcom,pcie-ep.yaml      |  27 +-
 .../devicetree/bindings/pci/qcom,pcie.yaml         |  28 ++
 arch/alpha/include/asm/pci.h                       |   3 -
 arch/x86/pci/irq.c                                 |   4 +-
 drivers/gpu/drm/amd/amdgpu/cik.c                   |  36 +-
 drivers/gpu/drm/amd/amdgpu/si.c                    |  36 +-
 drivers/gpu/drm/radeon/cik.c                       |  36 +-
 drivers/gpu/drm/radeon/si.c                        |  37 +-
 drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c |  21 +-
 drivers/net/wireless/ath/ath10k/pci.c              |   9 +-
 drivers/net/wireless/ath/ath11k/pci.c              |  10 +-
 drivers/net/wireless/ath/ath12k/pci.c              |  10 +-
 drivers/pci/access.c                               |  40 +-
 drivers/pci/controller/Kconfig                     |   2 +-
 drivers/pci/controller/cadence/pci-j721e.c         |   2 +-
 drivers/pci/controller/cadence/pcie-cadence-plat.c |   3 +-
 drivers/pci/controller/cadence/pcie-cadence.c      |   1 +
 drivers/pci/controller/cadence/pcie-cadence.h      |   2 +-
 drivers/pci/controller/dwc/pci-dra7xx.c            |   2 +-
 drivers/pci/controller/dwc/pci-exynos.c            |   2 +-
 drivers/pci/controller/dwc/pci-imx6.c              |   6 +-
 drivers/pci/controller/dwc/pci-keystone.c          |   1 -
 drivers/pci/controller/dwc/pci-layerscape-ep.c     |  20 +
 drivers/pci/controller/dwc/pci-layerscape.c        | 140 ++++++-
 drivers/pci/controller/dwc/pci-meson.c             |  13 +-
 drivers/pci/controller/dwc/pcie-artpec6.c          |   2 +-
 drivers/pci/controller/dwc/pcie-designware-host.c  |  71 ++++
 drivers/pci/controller/dwc/pcie-designware-plat.c  |   2 +-
 drivers/pci/controller/dwc/pcie-designware.c       |   2 +-
 drivers/pci/controller/dwc/pcie-designware.h       |  28 ++
 drivers/pci/controller/dwc/pcie-dw-rockchip.c      |   2 +-
 drivers/pci/controller/dwc/pcie-fu740.c            |   1 +
 drivers/pci/controller/dwc/pcie-intel-gw.c         |   2 +
 drivers/pci/controller/dwc/pcie-keembay.c          |  11 +-
 drivers/pci/controller/dwc/pcie-kirin.c            |   3 +-
 drivers/pci/controller/dwc/pcie-qcom-ep.c          |  81 +++-
 drivers/pci/controller/dwc/pcie-qcom.c             |   3 +-
 drivers/pci/controller/dwc/pcie-tegra194.c         |  11 -
 drivers/pci/controller/dwc/pcie-uniphier-ep.c      |   2 +-
 .../pci/controller/mobiveil/pcie-mobiveil-host.c   |   3 -
 drivers/pci/controller/pci-ftpci100.c              |   3 +-
 drivers/pci/controller/pci-host-common.c           |   2 +-
 drivers/pci/controller/pci-hyperv.c                |   3 +
 drivers/pci/controller/pci-ixp4xx.c                |   3 +-
 drivers/pci/controller/pci-loongson.c              |   2 +-
 drivers/pci/controller/pci-mvebu.c                 |   1 -
 drivers/pci/controller/pci-rcar-gen2.c             |   3 +-
 drivers/pci/controller/pci-v3-semi.c               |   6 +-
 drivers/pci/controller/pci-xgene-msi.c             |   3 +-
 drivers/pci/controller/pcie-altera.c               |   5 +-
 drivers/pci/controller/pcie-apple.c                |  10 +-
 drivers/pci/controller/pcie-brcmstb.c              |   6 +-
 drivers/pci/controller/pcie-iproc-msi.c            |   5 +-
 drivers/pci/controller/pcie-microchip-host.c       | 407 ++++++++++++---------
 drivers/pci/controller/pcie-rockchip-host.c        |   4 +-
 drivers/pci/controller/pcie-rockchip.c             |   1 +
 drivers/pci/controller/pcie-rockchip.h             |   6 +-
 drivers/pci/controller/vmd.c                       |  19 +-
 drivers/pci/doe.c                                  |   2 +-
 drivers/pci/endpoint/functions/pci-epf-mhi.c       | 286 ++++++++++++++-
 drivers/pci/endpoint/functions/pci-epf-vntb.c      |  32 +-
 drivers/pci/endpoint/pci-epc-core.c                |   1 -
 drivers/pci/endpoint/pci-epc-mem.c                 |  10 +
 drivers/pci/hotplug/acpiphp.h                      |   1 -
 drivers/pci/hotplug/cpci_hotplug.h                 |   2 -
 drivers/pci/hotplug/ibmphp.h                       |   2 -
 drivers/pci/hotplug/ibmphp_pci.c                   |  10 +-
 drivers/pci/hotplug/pciehp_hpc.c                   |  12 +-
 drivers/pci/iov.c                                  |   3 +-
 drivers/pci/msi/irqdomain.c                        |   4 +-
 drivers/pci/p2pdma.c                               |   5 +-
 drivers/pci/pci-driver.c                           |  18 +-
 drivers/pci/pci-sysfs.c                            |   4 +
 drivers/pci/pci.c                                  |  72 ++--
 drivers/pci/pci.h                                  |  41 +--
 drivers/pci/pcie/aer.c                             |  22 +-
 drivers/pci/pcie/aspm.c                            |  30 +-
 drivers/pci/probe.c                                |   4 +-
 drivers/pci/quirks.c                               |  48 ++-
 drivers/pci/setup-bus.c                            |   2 +-
 drivers/pci/setup-res.c                            |   4 +-
 drivers/pci/switch/switchtec.c                     | 158 +++++---
 drivers/pci/syscall.c                              |  12 +-
 drivers/pci/vgaarb.c                               | 358 +++++++++---------
 drivers/pci/vpd.c                                  |  34 +-
 include/linux/aer.h                                |  11 -
 include/linux/pci.h                                |  46 ++-
 include/linux/switchtec.h                          |   1 +
 include/linux/vgaarb.h                             |  27 +-
 91 files changed, 1622 insertions(+), 870 deletions(-)

Comments

pr-tracker-bot@kernel.org Aug. 31, 2023, 3:50 a.m. UTC | #1
The pull request you sent on Wed, 30 Aug 2023 14:06:42 -0500:

> git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git tags/pci-v6.6-changes

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/b6f6167ea8a424d14b41c172fe7a5f49e164f221

Thank you!