Skip to content

Commit a080f9a

Browse files
paliLorenzo Pieralisi
authored andcommitted
PCI: aardvark: Add support for PCI Bridge Subsystem Vendor ID on emulated bridge
Register with Subsystem Device/Vendor ID is at offset 0x2c. Export it via the emulated bridge to enable support for the Subsystem Device/Vendor ID - by reading it in the PCI controller config space and storing it in the emulated bridge control structures, so that it is exposed in the respective PCI capability. After this change Subsystem ID is visible in lspci output at line: Capabilities: [40] Subsystem Link: https://lore.kernel.org/r/20220711225915.13896-1-pali@kernel.org Signed-off-by: Pali Rohár <pali@kernel.org> Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
1 parent 568035b commit a080f9a

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

drivers/pci/controller/pci-aardvark.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#define PCIE_CORE_DEV_ID_REG 0x0
3434
#define PCIE_CORE_CMD_STATUS_REG 0x4
3535
#define PCIE_CORE_DEV_REV_REG 0x8
36+
#define PCIE_CORE_SSDEV_ID_REG 0x2c
3637
#define PCIE_CORE_PCIEXP_CAP 0xc0
3738
#define PCIE_CORE_PCIERR_CAP 0x100
3839
#define PCIE_CORE_ERR_CAPCTL_REG 0x118
@@ -1077,6 +1078,8 @@ static int advk_sw_pci_bridge_init(struct advk_pcie *pcie)
10771078
/* Indicates supports for Completion Retry Status */
10781079
bridge->pcie_conf.rootcap = cpu_to_le16(PCI_EXP_RTCAP_CRSVIS);
10791080

1081+
bridge->subsystem_vendor_id = advk_readl(pcie, PCIE_CORE_SSDEV_ID_REG) & 0xffff;
1082+
bridge->subsystem_id = advk_readl(pcie, PCIE_CORE_SSDEV_ID_REG) >> 16;
10801083
bridge->has_pcie = true;
10811084
bridge->data = pcie;
10821085
bridge->ops = &advk_pci_bridge_emul_ops;

0 commit comments

Comments
 (0)