From: Bjorn Helgaas <helgaas@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
"Lorenzo Pieralisi" <lorenzo.pieralisi@arm.com>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Wilczyński" <kw@linux.com>,
"Vinod Koul" <vkoul@kernel.org>
Subject: [GIT PULL] PCI changes for v6.3
Date: Wed, 22 Feb 2023 14:17:49 -0600 [thread overview]
Message-ID: <20230222201749.GA3798224@bhelgaas> (raw)
This includes several Synopsys DesignWare eDMA controller driver changes
that are in drivers/dma, not drivers/pci. These lead up to eDMA support in
PCIe Root Port and Endpoint drivers and have been acked by Vinod.
The following changes since commit 1b929c02afd37871d5afb9d498426f83432e71c2:
Linux 6.2-rc1 (2022-12-25 13:41:39 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git tags/pci-v6.3-changes
for you to fetch changes up to 3eb5d0f26f4ea604e83ca499a72c0d33638f4765:
Merge branch 'pci/misc' (2023-02-22 13:47:32 -0600)
----------------------------------------------------------------
Enumeration:
- Rework portdrv shutdown so it disables interrupts but doesn't disable
bus mastering, which leads to hangs on Loongson LS7A.
- Add mechanism to prevent Max_Read_Request_Size (MRRS) increases, again
to avoid hardware issues on Loongson LS7A (and likely other devices
based on DesignWare IP).
- Ignore devices with a firmware (DT or ACPI) node that says the device
is disabled.
Resource management:
- Distribute spare resources to unconfigured hotplug bridges at boot-time
(not just when hot-adding such a bridge), which makes hot-adding
devices to docks work better. Tried this in v6.1 but had to revert for
regressions, so try again.
- Fix root bus issue that dropped resources that happened to end at 0,
e.g., [bus 00].
PCI device hotplug:
- Remove device locking when marking device as disconnected so this
doesn't have to wait for concurrent driver bind/unbind to complete.
- Quirk more Qualcomm bridges that don't fully implement the PCIe Slot
Status 'Command Completed' bit.
Power management:
- Account for _S0W of the target bridge in acpi_pci_bridge_d3() so we
don't miss hot-add notifications for USB4 docks, Thunderbolt, etc.
Reset:
- Observe delay after reset, e.g., resuming from system sleep, regardless
of whether a bridge can suspend to D3cold at runtime.
- Wait for secondary bus to become ready after a bridge reset.
Virtualization:
- Avoid FLR on some AMD FCH AHCI adapters where it doesn't work.
- Allow independent IOMMU groups for some Wangxun NICs that prevent
peer-to-peer transactions but don't advertise an ACS Capability.
Error handling:
- Configure End-to-End-CRC (ECRC) only if Linux owns the AER Capability.
- Remove redundant Device Control Error Reporting Enable in the AER
service driver since this is already done for all devices during
enumeration.
ASPM:
- Add pci_enable_link_state() interface to allow drivers to enable ASPM
link state.
Endpoint framework:
- Move dra7xx and tegra194 linkup processing from hard IRQ to threaded
IRQ handler.
- Add a separate lock for endpoint controller list of endpoint function
drivers to prevent deadlock in callbacks.
- Pass events from endpoint controller to endpoint function drivers via
callbacks instead of notifiers.
Synopsys DesignWare eDMA controller driver (acked by Vinod):
- Fix CPU vs PCI address issues.
- Fix source vs destination address issues.
- Fix issues with interleaved transfer semantics.
- Fix channel count initialization issue (issue still exists in several
other drivers).
- Clean up and improve debugfs usage so it will work on platforms with
several eDMA devices.
Baikal T-1 PCIe controller driver:
- Set a 64-bit DMA mask.
Freescale i.MX6 PCIe controller driver:
- Add i.MX8MM, i.MX8MQ, i.MX8MP endpoint mode DT binding and driver
support.
Intel VMD host bridge driver:
- Add quirk to configure PCIe ASPM and LTR. This is normally done by
BIOS, and will be for future products.
Marvell MVEBU PCIe controller driver:
- Mark this driver as broken in Kconfig since bugs prevent its daily
usage.
MediaTek MT7621 PCIe controller driver:
- Delay PHY port initialization to improve boot reliability for ZBT
WE1326, ZBT WF3526-P, and some Netgear models.
Qualcomm PCIe controller driver:
- Add MSM8998 DT compatible string.
- Unify MSM8996 and MSM8998 clock orderings.
- Add SM8350 DT binding and driver support.
- Add IPQ8074 Gen3 DT binding and driver support.
- Correct qcom,perst-regs in DT binding.
- Add qcom_pcie_host_deinit() so the PHY is powered off and regulators
and clocks are disabled on late host-init errors.
Socionext UniPhier Pro5 controller driver:
- Clean up uniphier-ep reg, clocks, resets, and their names in DT
binding.
Synopsys DesignWare PCIe controller driver:
- Restrict coherent DMA mask to 32 bits for MSI, but allow controller
drivers to set 64-bit streaming DMA mask.
- Add eDMA engine support in both Root Port and Endpoint controllers.
Miscellaneous:
- Remove MODULE_LICENSE from boolean drivers so they don't look like
modules so modprobe can complain about them.
----------------------------------------------------------------
Alexey V. Vissarionov (1):
PCI/IOV: Enlarge virtfn sysfs name buffer
Bjorn Helgaas (23):
PCI: switchtec: Simplify switchtec_dma_mrpc_isr()
PCI: switchtec: Return -EFAULT for copy_to_user() errors
PCI/AER: Remove redundant Device Control Error Reporting Enable
Merge branch 'pci/aer'
Merge branch 'pci/enumeration'
Merge branch 'pci/hotplug'
Merge branch 'pci/iov'
Merge branch 'pci/kbuild'
Merge branch 'pci/p2pdma'
Merge branch 'pci/pm'
Merge branch 'pci/reset'
Merge branch 'pci/resource'
Merge branch 'pci/virtualization'
Merge branch 'pci/endpoint'
Merge branch 'pci/controller/dwc'
Merge branch 'pci/controller/imx6'
Merge branch 'pci/controller/mt7621'
Merge branch 'pci/controller/mvebu'
Merge branch 'pci/controller/qcom'
Merge branch 'pci/controller/switchtec'
Merge branch 'pci/controller/uniphier'
Merge branch 'pci/controller/vmd'
Merge branch 'pci/misc'
Damien Le Moal (1):
PCI: Avoid FLR for AMD FCH AHCI adapters
David E. Box (3):
PCI: vmd: Use PCI_VDEVICE in device list
PCI: vmd: Create feature grouping for client products
PCI: vmd: Add quirk to configure PCIe ASPM and LTR
Dmitry Baryshkov (2):
dt-bindings: PCI: qcom: Add SM8350
PCI: qcom: Add SM8350 support
Geert Uytterhoeven (1):
PCI: Fix dropping valid root bus resources with .end = zero
Huacai Chen (3):
PCI/portdrv: Prevent LS7A Bus Master clearing on shutdown
PCI: loongson: Prevent LS7A MRRS increases
PCI: loongson: Add more devices that need MRRS quirk
Johan Hovold (1):
PCI: qcom: Fix host-init error handling
Krzysztof Kozlowski (4):
dt-bindings: PCI: qcom: Add oneOf to compatible match
dt-bindings: PCI: qcom: Add MSM8998 specific compatible
dt-bindings: PCI: qcom: Unify MSM8996 and MSM8998 clock order
dt-bindings: PCI: qcom-ep: Correct qcom,perst-regs
Kunihiko Hayashi (1):
dt-bindings: PCI: uniphier-ep: Clean up reg, clocks, resets, and their names
Logan Gunthorpe (1):
PCI/P2PDMA: Annotate RCU dereference
Lukas Bulwahn (1):
PCI: hv: Drop duplicate PCI_MSI dependency
Lukas Wunner (4):
PCI/PM: Observe reset delay irrespective of bridge_d3
PCI: Unify delay handling for reset and resume
PCI/DPC: Await readiness of secondary bus after reset
PCI: hotplug: Allow marking devices as disconnected during bind/unbind
Manivannan Sadhasivam (6):
PCI: dra7xx: Use threaded IRQ handler for "dra7xx-pcie-main" IRQ
PCI: tegra194: Move dw_pcie_ep_linkup() to threaded IRQ handler
PCI: endpoint: Use a separate lock for protecting epc->pci_epf list
PCI: endpoint: Use callback mechanism for passing events from EPC to EPF
PCI: endpoint: Use link_up() callback in place of LINK_UP notifier
PCI: pciehp: Add Qualcomm quirk for Command Completed erratum
Mengyuan Lou (1):
PCI: Add ACS quirk for Wangxun NICs
Michael Bottini (1):
PCI/ASPM: Add pci_enable_link_state()
Mika Westerberg (3):
PCI: Align extra resources for hotplug bridges properly
PCI: Take other bus devices into account when distributing resources
PCI: Distribute available resources for root buses, too
Nick Alcock (1):
PCI: Remove MODULE_LICENSE so boolean drivers don't look like modules
Pali Rohár (1):
PCI: mvebu: Mark driver as BROKEN
Rafael J. Wysocki (1):
PCI/ACPI: Account for _S0W of the target bridge in acpi_pci_bridge_d3()
Randy Dunlap (1):
misc: pci_endpoint_test: Drop initial kernel-doc marker
Richard Zhu (8):
dt-bindings: imx6q-pcie: Add i.MX8MM PCIe EP mode compatible string
dt-bindings: imx6q-pcie: Add i.MX8MQ PCIe EP mode compatible string
dt-bindings: imx6q-pcie: Add i.MX8MP PCIe EP mode compatible string
misc: pci_endpoint_test: Add i.MX8 PCIe EP device support
PCI: imx6: Add i.MX PCIe EP mode support
PCI: imx6: Add i.MX8MQ PCIe EP support
PCI: imx6: Add i.MX8MM PCIe EP support
PCI: imx6: Add i.MX8MP PCIe EP support
Rob Herring (1):
PCI: Honor firmware's device disabled status
Robert Marko (3):
dt-bindings: PCI: qcom: Sort compatibles alphabetically
dt-bindings: PCI: qcom: Add IPQ8074 Gen3 port
PCI: qcom: Add IPQ8074 Gen3 port support
Serge Semin (29):
dmaengine: Fix dma_slave_config.dst_addr description
dmaengine: dw-edma: Release requested IRQs on failure
dmaengine: dw-edma: Convert ll/dt phys address to PCI bus/DMA address
dmaengine: dw-edma: Fix missing src/dst address of interleaved xfers
dmaengine: dw-edma: Don't permit non-inc interleaved xfers
dmaengine: dw-edma: Fix invalid interleaved xfers semantics
dmaengine: dw-edma: Add CPU to PCI bus address translation
dmaengine: dw-edma: Add PCI bus address getter to the remote EP glue driver
dmaengine: dw-edma: Drop chancnt initialization
dmaengine: dw-edma: Drop unnecessary debugfs reg casts
dmaengine: dw-edma: Stop checking debugfs_create_*() return value
dmaengine: dw-edma: Add dw_edma prefix to debugfs nodes descriptor
dmaengine: dw-edma: Convert debugfs descs to being heap-allocated
dmaengine: dw-edma: Rename debugfs dentry variables to 'dent'
dmaengine: dw-edma: Simplify debugfs context CSRs init procedure
dmaengine: dw-edma: Move eDMA data pointer to debugfs node descriptor
dmaengine: dw-edma: Join read/write channels into a single device
dmaengine: dw-edma: Use DMA engine device debugfs subdirectory
dmaengine: dw-edma: Fix readq_ch() return value truncation
dmaengine: dw-edma: Use non-atomic io-64 methods
dmaengine: dw-edma: Drop DT-region allocation
dmaengine: dw-edma: Replace chip ID number with device name
dmaengine: dw-edma: Skip cleanup procedure if no private data found
dmaengine: dw-edma: Add mem-mapped LL-entries support
dmaengine: dw-edma: Depend on DW_EDMA instead of selecting it
dmaengine: dw-edma: Prepare dw_edma_probe() for builtin callers
PCI: dwc: Restrict only coherent DMA mask for MSI address allocation
PCI: bt1: Set 64-bit DMA mask
PCI: dwc: Add Root Port and Endpoint controller eDMA engine support
Sergio Paracuellos (1):
PCI: mt7621: Delay phy ports initialization
Thomas Weißschuh (1):
PCI/sysfs: Constify struct kobj_type pci_slot_ktype
Vidya Sagar (1):
PCI/AER: Configure ECRC only if AER is native
Yang Yingliang (1):
PCI: endpoint: pci-epf-vntb: Add epf_ntb_mw_bar_clear() num_mws kernel-doc
Documentation/admin-guide/kernel-parameters.txt | 4 +-
.../devicetree/bindings/pci/fsl,imx6q-pcie.yaml | 3 +
.../devicetree/bindings/pci/qcom,pcie-ep.yaml | 6 +-
.../devicetree/bindings/pci/qcom,pcie.yaml | 103 ++++--
.../bindings/pci/socionext,uniphier-pcie-ep.yaml | 76 +++--
drivers/acpi/device_pm.c | 19 ++
drivers/dma/dw-edma/Kconfig | 5 +-
drivers/dma/dw-edma/dw-edma-core.c | 198 +++++------
drivers/dma/dw-edma/dw-edma-core.h | 10 +-
drivers/dma/dw-edma/dw-edma-pcie.c | 56 ++--
drivers/dma/dw-edma/dw-edma-v0-core.c | 100 +++---
drivers/dma/dw-edma/dw-edma-v0-core.h | 1 -
drivers/dma/dw-edma/dw-edma-v0-debugfs.c | 368 ++++++++++-----------
drivers/dma/dw-edma/dw-edma-v0-debugfs.h | 5 -
drivers/misc/pci_endpoint_test.c | 4 +-
drivers/pci/controller/Kconfig | 3 +-
drivers/pci/controller/dwc/Kconfig | 23 +-
drivers/pci/controller/dwc/pci-dra7xx.c | 2 +-
drivers/pci/controller/dwc/pci-imx6.c | 200 ++++++++++-
drivers/pci/controller/dwc/pcie-bt1.c | 4 +
drivers/pci/controller/dwc/pcie-designware-ep.c | 12 +-
drivers/pci/controller/dwc/pcie-designware-host.c | 25 +-
drivers/pci/controller/dwc/pcie-designware.c | 195 +++++++++++
drivers/pci/controller/dwc/pcie-designware.h | 21 ++
drivers/pci/controller/dwc/pcie-histb.c | 1 -
drivers/pci/controller/dwc/pcie-qcom.c | 15 +-
drivers/pci/controller/dwc/pcie-tegra194.c | 9 +-
.../pci/controller/mobiveil/pcie-mobiveil-plat.c | 1 -
drivers/pci/controller/pci-loongson.c | 69 ++--
drivers/pci/controller/pci-tegra.c | 1 -
drivers/pci/controller/pci-versatile.c | 1 -
drivers/pci/controller/pcie-hisi-error.c | 1 -
drivers/pci/controller/pcie-microchip-host.c | 1 -
drivers/pci/controller/pcie-mt7621.c | 2 +
drivers/pci/controller/vmd.c | 97 ++++--
drivers/pci/endpoint/functions/pci-epf-test.c | 38 +--
drivers/pci/endpoint/functions/pci-epf-vntb.c | 1 +
drivers/pci/endpoint/pci-ep-cfs.c | 1 -
drivers/pci/endpoint/pci-epc-core.c | 33 +-
drivers/pci/endpoint/pci-epc-mem.c | 1 -
drivers/pci/endpoint/pci-epf-core.c | 1 -
drivers/pci/hotplug/acpiphp_core.c | 1 -
drivers/pci/hotplug/pciehp_hpc.c | 2 +
drivers/pci/hotplug/shpchp_core.c | 1 -
drivers/pci/iov.c | 2 +-
drivers/pci/p2pdma.c | 8 +-
drivers/pci/pci-acpi.c | 45 ++-
drivers/pci/pci-driver.c | 2 +-
drivers/pci/pci.c | 69 ++--
drivers/pci/pci.h | 59 ++--
drivers/pci/pcie/aer.c | 51 +--
drivers/pci/pcie/aspm.c | 54 +++
drivers/pci/pcie/dpc.c | 4 +-
drivers/pci/pcie/portdrv.c | 16 +-
drivers/pci/probe.c | 4 +-
drivers/pci/quirks.c | 23 ++
drivers/pci/setup-bus.c | 248 ++++++++++----
drivers/pci/slot.c | 2 +-
drivers/pci/switch/switchtec.c | 13 +-
include/acpi/acpi_bus.h | 1 +
include/linux/dma/edma.h | 25 +-
include/linux/dmaengine.h | 2 +-
include/linux/pci-epc.h | 10 +-
include/linux/pci-epf.h | 19 +-
include/linux/pci.h | 8 +
include/linux/pci_ids.h | 2 +
66 files changed, 1573 insertions(+), 814 deletions(-)
next reply other threads:[~2023-02-22 20:17 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-22 20:17 Bjorn Helgaas [this message]
2023-02-25 1:37 ` [GIT PULL] PCI changes for v6.3 pr-tracker-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230222201749.GA3798224@bhelgaas \
--to=helgaas@kernel.org \
--cc=kw@linux.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=robh@kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=vkoul@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.