For platforms with a limited iATU inbound window entries, pci_epc_set_bar()
might fail to allocate the ATU entries for subrange maps requiring more
than 1 slot.
For the dwc controller, this failure is reported with -ENOSPC in
dw_pcie_ep_set_bar(). In this case, the epf test cannot be run and needs
to be skipped.
For other controllers (Rockchip, RCar, Cadence) the .set_bar functions do
not use this error.
Depends on:
https://lore.kernel.org/linux-pci/20260320140139.2415480-1-den@valinux.co.jp/
Signed-off-by: Christian Bruel <christian.bruel@foss.st.com>
---
Changes in v4:
- Rebase to pci/endpoint
- Added Koichiro and Frank 'Reviewed-by:'
- Link to v3: https://lore.kernel.org/r/20260323-skip-bar_subrange-tests-if-enospc-v3-0-4780f296a5b4@foss.st.com
Changes in v3:
- Remove 'BAR' from SKIP print message (Niklas)
- Added 'Reviewed-by: Niklas Cassel <cassel@kernel.org>' tag
- Link to v2: https://lore.kernel.org/r/20260323-skip-bar_subrange-tests-if-enospc-v2-0-2080f878134d@foss.st.com
Changes in v2:
- Rebased, reordered patches
- Clarified reporting message in selftest
- Renamed STATUS_BAR_SUBRANGE_SETUP_NOPSC STATUS_NO_RESOURCE
- Link to v1: https://lore.kernel.org/r/20260318-skip-bar_subrange-tests-if-enospc-v1-0-f1a49534ebea@foss.st.com
---
Christian Bruel (3):
PCI: endpoint: pci-epf-test: Handle -ENOSPC in subrange_setup
misc: pci_endpoint_test: Handle -ENOSPC in subrange mapping test case
selftests: pci_endpoint: Skip BAR subrange test on -ENOSPC
drivers/misc/pci_endpoint_test.c | 3 ++-
drivers/pci/endpoint/functions/pci-epf-test.c | 3 +++
tools/testing/selftests/pci_endpoint/pci_endpoint_test.c | 2 ++
3 files changed, 7 insertions(+), 1 deletion(-)
---
base-commit: 5ab7a225888baa5474def18ba3b0a298d27e6ba0
change-id: 20260318-skip-bar_subrange-tests-if-enospc-c26f03038e92
Best regards,
--
Christian Bruel <christian.bruel@foss.st.com>