Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

PCI: endpoint: pci-epf-test: Advertise reserved BARs

Advertise reserved BARs as reserved in the Capabilities register,
such that the host side driver will be able to skip reserved BARs.

Signed-off-by: Niklas Cassel <cassel@kernel.org>
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Tested-by: Koichiro Den <den@valinux.co.jp>
Tested-by: Manikanta Maddireddy <mmaddireddy@nvidia.com>
Reviewed-by: Manikanta Maddireddy <mmaddireddy@nvidia.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20260312130229.2282001-20-cassel@kernel.org

authored by

Niklas Cassel and committed by
Manivannan Sadhasivam
50a1fd6e 0f08179c

+24
+24
drivers/pci/endpoint/functions/pci-epf-test.c
··· 65 65 #define CAP_INTX BIT(3) 66 66 #define CAP_SUBRANGE_MAPPING BIT(4) 67 67 #define CAP_DYNAMIC_INBOUND_MAPPING BIT(5) 68 + #define CAP_BAR0_RESERVED BIT(6) 69 + #define CAP_BAR1_RESERVED BIT(7) 70 + #define CAP_BAR2_RESERVED BIT(8) 71 + #define CAP_BAR3_RESERVED BIT(9) 72 + #define CAP_BAR4_RESERVED BIT(10) 73 + #define CAP_BAR5_RESERVED BIT(11) 68 74 69 75 #define PCI_EPF_TEST_BAR_SUBRANGE_NSUB 2 70 76 ··· 1117 1111 if (epf_test->epc_features->dynamic_inbound_mapping && 1118 1112 epf_test->epc_features->subrange_mapping) 1119 1113 caps |= CAP_SUBRANGE_MAPPING; 1114 + 1115 + if (epf_test->epc_features->bar[BAR_0].type == BAR_RESERVED) 1116 + caps |= CAP_BAR0_RESERVED; 1117 + 1118 + if (epf_test->epc_features->bar[BAR_1].type == BAR_RESERVED) 1119 + caps |= CAP_BAR1_RESERVED; 1120 + 1121 + if (epf_test->epc_features->bar[BAR_2].type == BAR_RESERVED) 1122 + caps |= CAP_BAR2_RESERVED; 1123 + 1124 + if (epf_test->epc_features->bar[BAR_3].type == BAR_RESERVED) 1125 + caps |= CAP_BAR3_RESERVED; 1126 + 1127 + if (epf_test->epc_features->bar[BAR_4].type == BAR_RESERVED) 1128 + caps |= CAP_BAR4_RESERVED; 1129 + 1130 + if (epf_test->epc_features->bar[BAR_5].type == BAR_RESERVED) 1131 + caps |= CAP_BAR5_RESERVED; 1120 1132 1121 1133 reg->caps = cpu_to_le32(caps); 1122 1134 }