]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
PCI: endpoint: pci-epf-test: Advertise dynamic inbound mapping support
authorKoichiro Den <den@valinux.co.jp>
Sun, 15 Feb 2026 15:03:32 +0000 (00:03 +0900)
committerManivannan Sadhasivam <mani@kernel.org>
Tue, 24 Feb 2026 10:30:39 +0000 (16:00 +0530)
The doorbell test requires the EPC driver to support dynamic inbound
mapping so the host can map the doorbell target address into a BAR
aperture.

Expose epc_features->dynamic_inbound_mapping via a new
CAP_DYNAMIC_INBOUND_MAPPING bit in the pci-epf-test capability register,
so the host-side pci_endpoint_test driver can detect missing support and
return -EOPNOTSUPP instead of running the test fruitlessly.

Suggested-by: Niklas Cassel <cassel@kernel.org>
Signed-off-by: Koichiro Den <den@valinux.co.jp>
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Reviewed-by: Niklas Cassel <cassel@kernel.org>
Link: https://patch.msgid.link/20260215150334.3391943-2-den@valinux.co.jp
drivers/pci/endpoint/functions/pci-epf-test.c

index 5893de370b6e16a9aad8b9876122043392d81859..6030ae1373b1aeeee42826b5e790655550157b6b 100644 (file)
@@ -64,6 +64,7 @@
 #define CAP_MSIX                       BIT(2)
 #define CAP_INTX                       BIT(3)
 #define CAP_SUBRANGE_MAPPING           BIT(4)
+#define CAP_DYNAMIC_INBOUND_MAPPING    BIT(5)
 
 #define PCI_EPF_TEST_BAR_SUBRANGE_NSUB 2
 
@@ -1104,6 +1105,9 @@ static void pci_epf_test_set_capabilities(struct pci_epf *epf)
        if (epf_test->epc_features->intx_capable)
                caps |= CAP_INTX;
 
+       if (epf_test->epc_features->dynamic_inbound_mapping)
+               caps |= CAP_DYNAMIC_INBOUND_MAPPING;
+
        if (epf_test->epc_features->dynamic_inbound_mapping &&
            epf_test->epc_features->subrange_mapping)
                caps |= CAP_SUBRANGE_MAPPING;