[GIT,PULL] PCI changes for v6.8

Message ID 20240115225703.GA73226@bhelgaas
State New
Headers
Series [GIT,PULL] PCI changes for v6.8 |

Pull-request

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

Message

Bjorn Helgaas Jan. 15, 2024, 10:57 p.m. UTC
  The following changes since commit b85ea95d086471afb4ad062012a4d73cd328fa86:

  Linux 6.7-rc1 (2023-11-12 16:19:07 -0800)

are available in the Git repository at:

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

for you to fetch changes up to 7119ca35ee4a0129ae86ae9d36f357edc55aab2f:

  Merge branch 'pci/misc' (2024-01-15 12:10:41 -0600)

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

Enumeration:

  - Reserve ECAM so we don't assign it to PCI BARs; this works around bugs
    where BIOS included ECAM in a PNP0A03 host bridge window, didn't
    reserve it via a PNP0C02 motherboard device, and didn't allocate space
    for SR-IOV VF BARs (Bjorn Helgaas)

  - Add MMCONFIG/ECAM debug logging (Bjorn Helgaas)

  - Rename 'MMCONFIG' to 'ECAM' to match spec usage (Bjorn Helgaas)

  - Log device type (Root Port, Switch Port, etc) during enumeration (Bjorn
    Helgaas)

  - Log bridges before downstream devices so the dmesg order is more
    logical (Bjorn Helgaas)

  - Log resource names (BAR 0, VF BAR 0, bridge window, etc) consistently
    instead of a mix of names and "reg 0x10" (Puranjay Mohan, Bjorn
    Helgaas)
   
  - Fix 64GT/s effective data rate calculation to use 1b/1b encoding rather
    than the 8b/10b or 128b/130b used by lower rates (Ilpo Järvinen)

  - Use PCI_HEADER_TYPE_* instead of literals in x86, powerpc, SCSI lpfc
    (Ilpo Järvinen)

  - Clean up open-coded PCIBIOS return code mangling (Ilpo Järvinen)

Resource management:

  - Restructure pci_dev_for_each_resource() to avoid computing the address
    of an out-of-bounds array element (the bounds check was performed later
    so the element was never actually *read*, but it's nicer to avoid even
    computing an out-of-bounds address) (Andy Shevchenko)

Driver binding:

  - Convert pci-host-common.c platform .remove() callback to .remove_new()
    returning 'void' since it's not useful to return error codes here (Uwe
    Kleine-König)

  - Convert exynos, keystone, kirin from .remove() to .remove_new(), which
    returns void instead of int (Uwe Kleine-König)

  - Drop unused struct pci_driver.node member (Mathias Krause)

Virtualization:

  - Add ACS quirk for more Zhaoxin Root Ports (LeoLiuoc)

Error handling:

  - Log AER errors as "Correctable" (not "Corrected") or "Uncorrectable" to
    match spec terminology (Bjorn Helgaas)

  - Decode Requester ID when no error info found instead of printing the
    raw hex value (Bjorn Helgaas)

Endpoint framework:

  - Use a unique test pattern for each BAR in the pci_endpoint_test to make
    it easier to debug address translation issues (Niklas Cassel)

Broadcom STB PCIe controller driver:

  - Add DT property "brcm,clkreq-mode" and driver support for different
    CLKREQ# modes to make ASPM L1.x states possible (Jim Quinlan)

Freescale Layerscape PCIe controller driver:

  - Add suspend/resume support for Layerscape LS1043a and LS1021a,
    including software-managed PME_Turn_Off and transitions between L0,
    L2/L3_Ready Link states (Frank Li)

MediaTek PCIe controller driver:

  - Clear MSI interrupt status before handler to avoid missing MSIs that
    occur after the handler (qizhong cheng)

MediaTek PCIe Gen3 controller driver:

  - Update mediatek-gen3 translation window setup to handle MMIO space that
    is not a power of two in size (Jianjun Wang)

Qualcomm PCIe controller driver:

  - Increase qcom iommu-map maxItems to accommodate SDX55 (five entries)
    and SDM845 (sixteen entries) (Krzysztof Kozlowski)

  - Describe qcom,pcie-sc8180x clocks and resets accurately (Krzysztof
    Kozlowski)

  - Describe qcom,pcie-sm8150 clocks and resets accurately (Krzysztof
    Kozlowski)

  - Correct the qcom "reset-name" property, previously incorrectly called
    "reset-names" (Krzysztof Kozlowski)

  - Document qcom,pcie-sm8650, based on qcom,pcie-sm8550 (Neil Armstrong)

Renesas R-Car PCIe controller driver:

  - Replace of_device.h with explicit of.h include to untangle header usage
    (Rob Herring)

  - Add DT and driver support for optional miniPCIe 1.5v and 3.3v
    regulators on KingFisher (Wolfram Sang)

SiFive FU740 PCIe controller driver:

  - Convert fu740 CONFIG_PCIE_FU740 dependency from SOC_SIFIVE to
    ARCH_SIFIVE (Conor Dooley)

Synopsys DesignWare PCIe controller driver:

  - Align iATU mapping for endpoint MSI-X (Niklas Cassel)

  - Drop "host_" prefix from struct dw_pcie_host_ops members (Yoshihiro
    Shimoda)

  - Drop "ep_" prefix from struct dw_pcie_ep_ops members (Yoshihiro
    Shimoda)

  - Rename struct dw_pcie_ep_ops.func_conf_select() to .get_dbi_offset() to
    be more descriptive (Yoshihiro Shimoda)

  - Add Endpoint DBI accessors to encapsulate offset lookups (Yoshihiro
    Shimoda)

TI J721E PCIe driver:

  - Add j721e DT and driver support for 'num-lanes' for devices that
    support x1, x2, or x4 Links (Matt Ranostay)

  - Add j721e DT compatible strings and driver support for j784s4 (Matt
    Ranostay)

  - Make TI J721E Kconfig depend on ARCH_K3 since the hardware is specific
    to those TI SoC parts (Peter Robinson)

TI Keystone PCIe controller driver:

  - Hold power management references to all PHYs while enabling them to
    avoid a race when one provides clocks to others (Siddharth Vadapalli)

Xilinx XDMA PCIe controller driver:

  - Remove redundant dev_err(), since platform_get_irq() and
    platform_get_irq_byname() already log errors (Yang Li)

  - Fix uninitialized symbols in xilinx_pl_dma_pcie_setup_irq() (Krzysztof
    Wilczyński)

  - Fix xilinx_pl_dma_pcie_init_irq_domain() error return when
    irq_domain_add_linear() fails (Harshit Mogalapalli)

MicroSemi Switchtec management driver:

  - Do dma_mrpc cleanup during switchtec_pci_remove() to match its devm
    ioremapping in switchtec_pci_probe().  Previously the cleanup was done
    in stdev_release(), which used stale pointers if stdev->cdev happened
    to be open when the PCI device was removed (Daniel Stodden)

Miscellaneous:

  - Convert interrupt terminology from "legacy" to "INTx" to be more
    specific and match spec terminology (Damien Le Moal)

  - In dw-xdata-pcie, pci_endpoint_test, and vmd, replace usage of
    deprecated ida_simple_*() API with ida_alloc() and ida_free()
    (Christophe JAILLET)

----------------------------------------------------------------
Andy Shevchenko (1):
      PCI: Avoid potential out-of-bounds read in pci_dev_for_each_resource()

Bjorn Helgaas (43):
      x86/pci: Reserve ECAM if BIOS didn't include it in PNP0C02 _CRS
      x86/pci: Reword ECAM EfiMemoryMappedIO logging to avoid 'reserved'
      x86/pci: Add MCFG debug logging
      x86/pci: Rename 'MMCONFIG' to 'ECAM', use pr_fmt
      x86/pci: Rename acpi_mcfg_check_entry() to acpi_mcfg_valid_entry()
      x86/pci: Rename pci_mmcfg_check_reserved() to pci_mmcfg_reserved()
      x86/pci: Comment pci_mmconfig_insert() obscure MCFG dependency
      x86/pci: Return pci_mmconfig_add() failure early
      x86/pci: Reorder pci_mmcfg_arch_map() definition before calls
      PCI: Log device type during enumeration
      PCI: Move pci_read_bridge_windows() below individual window accessors
      PCI: Supply bridge device, not secondary bus, to read window details
      PCI: Log bridge windows conditionally
      PCI: Log bridge info when first enumerating bridge
      PCI: Rename PCI_IRQ_LEGACY to PCI_IRQ_INTX
      PCI/AER: Use 'Correctable' and 'Uncorrectable' spec terms for errors
      PCI/AER: Decode Requester ID when no error info found
      PCI/AER: Use explicit register sizes for struct members
      PCI: Fix kernel-doc issues
      Merge branch 'pci/aer'
      Merge branch 'pci/ecam'
      Merge branch 'pci/enumeration'
      Merge branch 'pci/enumeration-logging'
      Merge branch 'pci/p2pdma'
      Merge branch 'pci/resource'
      Merge branch 'pci/switchtec'
      Merge branch 'pci/virtualization'
      Merge branch 'pci/controller/broadcom'
      Merge branch 'pci/controller/cadence'
      Merge branch 'pci/controller/dwc'
      Merge branch 'pci/controller/keystone'
      Merge branch 'pci/controller/kirin'
      Merge branch 'pci/controller/layerscape'
      Merge branch 'pci/controller/mediatek'
      Merge branch 'pci/controller/rcar'
      Merge branch 'pci/controller/vmd'
      Merge branch 'pci/controller/xilinx'
      Merge branch 'pci/controller/remove-void-return'
      Merge branch 'pci/irq-clean-up'
      Merge branch 'pci/endpoint'
      Merge branch 'pci/remove-old-api'
      Merge branch 'pci/dt-bindings'
      Merge branch 'pci/misc'

Christophe JAILLET (5):
      PCI: vmd: Remove usage of the deprecated ida_simple_xx() API
      PCI: kirin: Use devm_kasprintf() to dynamically allocate clock names
      PCI: vmd: Remove usage of the deprecated ida_simple_*() API
      misc: pci_endpoint_test: Remove usage of the deprecated ida_simple_*() API
      dw-xdata: Remove usage of the deprecated ida_simple_*() API

Conor Dooley (1):
      PCI: dwc: Convert SOC_SIFIVE to ARCH_SIFIVE

Damien Le Moal (14):
      PCI: endpoint: Drop PCI_EPC_IRQ_XXX definitions
      PCI: endpoint: Use INTX instead of legacy
      PCI: endpoint: Rename LEGACY to INTX in test function driver
      misc: pci_endpoint_test: Use INTX instead of LEGACY
      PCI: dra7xx: Rename dra7xx_pcie_raise_legacy_irq()
      PCI: cadence: Use INTX instead of legacy
      PCI: dwc: Rename dw_pcie_ep_raise_legacy_irq()
      PCI: keystone: Use INTX instead of legacy
      PCI: dw-rockchip: Rename rockchip_pcie_legacy_int_handler()
      PCI: tegra194: Use INTX instead of legacy
      PCI: uniphier: Use INTX instead of legacy
      PCI: rockchip-ep: Use INTX instead of legacy
      PCI: rockchip-host: Rename rockchip_pcie_legacy_int_handler()
      PCI: xilinx-nwl: Use INTX instead of legacy

Daniel Stodden (1):
      PCI: switchtec: Fix stdev_release() crash after surprise hot remove

Frank Li (4):
      PCI: layerscape: Add function pointer for exit_from_l2()
      PCI: layerscape: Add suspend/resume for ls1021a
      PCI: layerscape(ep): Rename pf_* as pf_lut_*
      PCI: layerscape: Add suspend/resume for ls1043a

Guilherme G. Piccoli (1):
      PCI: Only override AMD USB controller if required

Harshit Mogalapalli (1):
      PCI: xilinx-xdma: Fix error code in xilinx_pl_dma_pcie_init_irq_domain()

Heiko Stuebner (1):
      dt-bindings: PCI: dwc: rockchip: Document optional PCIe reference clock input

Ilpo Järvinen (5):
      x86/pci: Use PCI_HEADER_TYPE_* instead of literals
      powerpc/fsl-pci: Use PCI_HEADER_TYPE_MASK instead of literal
      scsi: lpfc: Use PCI_HEADER_TYPE_MFD instead of literal
      x86/pci: Clean up open-coded PCIBIOS return code mangling
      PCI: Fix 64GT/s effective data rate calculation

Jianjun Wang (1):
      PCI: mediatek-gen3: Fix translation window size calculation

Jim Quinlan (2):
      dt-bindings: PCI: brcmstb: Add property "brcm,clkreq-mode"
      PCI: brcmstb: Configure HW CLKREQ# mode appropriate for downstream device

Justin Stitt (1):
      PCI: iproc: Fix -Wvoid-pointer-to-enum-cast warning

Krzysztof Kozlowski (4):
      dt-bindings: PCI: qcom: Adjust iommu-map for different SoC
      dt-bindings: PCI: qcom: Correct clocks for SC8180x
      dt-bindings: PCI: qcom: Correct clocks for SM8150
      dt-bindings: PCI: qcom: Correct reset-names property

Krzysztof Wilczyński (1):
      PCI: xilinx-xdma: Fix uninitialized symbols in xilinx_pl_dma_pcie_setup_irq()

Lars-Peter Clausen (5):
      PCI: endpoint: Make struct pci_epf_ops in pci_epf_driver const
      PCI: endpoint: pci-epf-mhi: Make structs pci_epf_ops and pci_epf_event_ops const
      PCI: endpoint: pci-epf-ntb: Make struct pci_epf_ops const
      PCI: endpoint: pci-epf-vntb: Make struct pci_epf_ops const
      PCI: endpoint: pci-epf-test: Make struct pci_epf_ops const

LeoLiuoc (1):
      PCI: Add ACS quirk for more Zhaoxin Root Ports

Mathias Krause (1):
      PCI: Remove unused 'node' member from struct pci_driver

Matt Ranostay (5):
      dt-bindings: PCI: ti,j721e-pci-*: Add checks for num-lanes
      dt-bindings: PCI: ti,j721e-pci-*: Add j784s4-pci-* compatible strings
      PCI: j721e: Add per platform maximum lane settings
      PCI: j721e: Add PCIe 4x lane selection support
      PCI: j721e: Add TI J784S4 PCIe configuration

Neil Armstrong (1):
      dt-bindings: PCI: qcom: Document the SM8650 PCIe Controller

Niklas Cassel (2):
      PCI: dwc: endpoint: Fix dw_pcie_ep_raise_msix_irq() alignment support
      misc: pci_endpoint_test: Use a unique test pattern for each BAR

Peter Robinson (1):
      PCI: j721e: Make TI J721E depend on ARCH_K3

Puranjay Mohan (2):
      PCI: Update BAR # and window messages
      PCI: Use resource names in PCI log messages

Rob Herring (1):
      PCI: rcar-gen4: Replace of_device.h with explicit of.h include

Siddharth Vadapalli (1):
      PCI: keystone: Fix race condition when initializing PHYs

Tadeusz Struk (1):
      PCI/P2PDMA: Remove reference to pci_p2pdma_map_sg()

Uwe Kleine-König (4):
      PCI: host-generic: Convert to platform remove callback returning void
      PCI: exynos: Convert to platform remove callback returning void
      PCI: keystone: Convert to platform remove callback returning void
      PCI: kirin: Convert to platform remove callback returning void

Wolfram Sang (2):
      dt-bindings: PCI: rcar-pci-host: Add optional regulators
      PCI: rcar-host: Add support for optional regulators

Yang Li (1):
      PCI: xilinx-xdma: Remove redundant dev_err()

Yoshihiro Shimoda (5):
      PCI: dwc: Drop host prefix from struct dw_pcie_host_ops members
      PCI: dwc: Rename .ep_init to .init in struct dw_pcie_ep_ops
      PCI: dwc: Rename .func_conf_select to .get_dbi_offset in struct dw_pcie_ep_ops
      PCI: dwc: Add dw_pcie_ep_{read,write}_dbi[2] helpers
      PCI: rcar-gen4: Fix -Wvoid-pointer-to-enum-cast error

attreyee-muk (1):
      docs: PCI: Fix typos

qizhong cheng (1):
      PCI: mediatek: Clear interrupt status before dispatching handler

 Documentation/PCI/boot-interrupts.rst              |   2 +-
 Documentation/PCI/msi-howto.rst                    |   2 +-
 .../devicetree/bindings/pci/brcm,stb-pcie.yaml     |  18 ++
 .../devicetree/bindings/pci/qcom,pcie.yaml         |  63 +++++-
 .../devicetree/bindings/pci/rcar-pci-host.yaml     |  11 ++
 .../devicetree/bindings/pci/rockchip-dw-pcie.yaml  |   2 +
 .../devicetree/bindings/pci/ti,j721e-pci-ep.yaml   |  39 +++-
 .../devicetree/bindings/pci/ti,j721e-pci-host.yaml |  39 +++-
 Documentation/driver-api/pci/p2pdma.rst            |  16 +-
 arch/powerpc/sysdev/fsl_pci.c                      |   4 +-
 arch/x86/kernel/aperture_64.c                      |   3 +-
 arch/x86/kernel/early-quirks.c                     |   4 +-
 arch/x86/pci/acpi.c                                |   3 +
 arch/x86/pci/mmconfig-shared.c                     | 178 +++++++++--------
 arch/x86/pci/mmconfig_32.c                         |   2 +-
 arch/x86/pci/mmconfig_64.c                         |  42 ++--
 arch/x86/pci/pcbios.c                              |  28 ++-
 drivers/misc/dw-xdata-pcie.c                       |   6 +-
 drivers/misc/pci_endpoint_test.c                   |  50 +++--
 .../wireless/broadcom/brcm80211/brcmfmac/pcie.c    |   1 -
 drivers/pci/controller/cadence/Kconfig             |   2 +
 drivers/pci/controller/cadence/pci-j721e.c         |  45 ++++-
 drivers/pci/controller/cadence/pcie-cadence-ep.c   |  19 +-
 drivers/pci/controller/cadence/pcie-cadence.h      |  12 +-
 drivers/pci/controller/dwc/Kconfig                 |   2 +-
 drivers/pci/controller/dwc/pci-dra7xx.c            |  14 +-
 drivers/pci/controller/dwc/pci-exynos.c            |   8 +-
 drivers/pci/controller/dwc/pci-imx6.c              |  17 +-
 drivers/pci/controller/dwc/pci-keystone.c          | 109 ++++++-----
 drivers/pci/controller/dwc/pci-layerscape-ep.c     |  33 ++--
 drivers/pci/controller/dwc/pci-layerscape.c        | 193 +++++++++++++++---
 drivers/pci/controller/dwc/pci-meson.c             |   2 +-
 drivers/pci/controller/dwc/pcie-al.c               |   2 +-
 drivers/pci/controller/dwc/pcie-armada8k.c         |   2 +-
 drivers/pci/controller/dwc/pcie-artpec6.c          |  12 +-
 drivers/pci/controller/dwc/pcie-bt1.c              |   4 +-
 drivers/pci/controller/dwc/pcie-designware-ep.c    | 197 +++++++------------
 drivers/pci/controller/dwc/pcie-designware-host.c  |  30 +--
 drivers/pci/controller/dwc/pcie-designware-plat.c  |  13 +-
 drivers/pci/controller/dwc/pcie-designware.h       | 111 ++++++++++-
 drivers/pci/controller/dwc/pcie-dw-rockchip.c      |   6 +-
 drivers/pci/controller/dwc/pcie-fu740.c            |   2 +-
 drivers/pci/controller/dwc/pcie-histb.c            |   2 +-
 drivers/pci/controller/dwc/pcie-intel-gw.c         |   2 +-
 drivers/pci/controller/dwc/pcie-keembay.c          |  15 +-
 drivers/pci/controller/dwc/pcie-kirin.c            |  21 +-
 drivers/pci/controller/dwc/pcie-qcom-ep.c          |  10 +-
 drivers/pci/controller/dwc/pcie-qcom.c             |   6 +-
 drivers/pci/controller/dwc/pcie-rcar-gen4.c        |  23 ++-
 drivers/pci/controller/dwc/pcie-spear13xx.c        |   2 +-
 drivers/pci/controller/dwc/pcie-tegra194.c         |  21 +-
 drivers/pci/controller/dwc/pcie-uniphier-ep.c      |  13 +-
 drivers/pci/controller/dwc/pcie-uniphier.c         |  14 +-
 drivers/pci/controller/dwc/pcie-visconti.c         |   2 +-
 drivers/pci/controller/pci-host-common.c           |   4 +-
 drivers/pci/controller/pci-host-generic.c          |   2 +-
 drivers/pci/controller/pcie-brcmstb.c              |  96 ++++++++-
 drivers/pci/controller/pcie-iproc-platform.c       |   2 +-
 drivers/pci/controller/pcie-mediatek-gen3.c        |  89 +++++----
 drivers/pci/controller/pcie-mediatek.c             |  10 +-
 drivers/pci/controller/pcie-rcar-ep.c              |   7 +-
 drivers/pci/controller/pcie-rcar-host.c            |  18 +-
 drivers/pci/controller/pcie-rockchip-ep.c          |  23 ++-
 drivers/pci/controller/pcie-rockchip-host.c        |   4 +-
 drivers/pci/controller/pcie-xilinx-dma-pl.c        |  14 +-
 drivers/pci/controller/pcie-xilinx-nwl.c           |  52 ++---
 drivers/pci/controller/vmd.c                       |   6 +-
 drivers/pci/endpoint/functions/pci-epf-mhi.c       |   6 +-
 drivers/pci/endpoint/functions/pci-epf-ntb.c       |   6 +-
 drivers/pci/endpoint/functions/pci-epf-test.c      |  16 +-
 drivers/pci/endpoint/functions/pci-epf-vntb.c      |   9 +-
 drivers/pci/endpoint/pci-epc-core.c                |   6 +-
 drivers/pci/iov.c                                  |   7 +-
 drivers/pci/pci.c                                  |  85 ++++++--
 drivers/pci/pci.h                                  |   4 +-
 drivers/pci/pcie/aer.c                             |  21 +-
 drivers/pci/probe.c                                | 218 +++++++++++++--------
 drivers/pci/quirks.c                               |  34 +++-
 drivers/pci/setup-bus.c                            |  30 ++-
 drivers/pci/setup-res.c                            |  72 ++++---
 drivers/pci/switch/switchtec.c                     |  25 ++-
 drivers/scsi/lpfc/lpfc_sli.c                       |   2 +-
 include/linux/aer.h                                |   8 +-
 include/linux/pci-ecam.h                           |   2 +-
 include/linux/pci-epc.h                            |  13 +-
 include/linux/pci-epf.h                            |   4 +-
 include/linux/pci.h                                |  19 +-
 include/uapi/linux/pcitest.h                       |   3 +-
 88 files changed, 1519 insertions(+), 877 deletions(-)
  

Comments

pr-tracker-bot@kernel.org Jan. 18, 2024, 1:20 a.m. UTC | #1
The pull request you sent on Mon, 15 Jan 2024 16:57:03 -0600:

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

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

Thank you!