pcie_host_opsRegular
4.4: Absent ⚠️
4.8: ✅struct pcie_host_ops {
void (*readl_rc)(struct pcie_port *, void *, u32 *);
void (*writel_rc)(struct pcie_port *, u32, void *);
int (*rd_own_conf)(struct pcie_port *, int, int, u32 *);
int (*wr_own_conf)(struct pcie_port *, int, int, u32);
int (*rd_other_conf)(struct pcie_port *, struct pci_bus *, unsigned int, int, int, u32 *);
int (*wr_other_conf)(struct pcie_port *, struct pci_bus *, unsigned int, int, int, u32);
int (*link_up)(struct pcie_port *);
void (*host_init)(struct pcie_port *);
void (*msi_set_irq)(struct pcie_port *, int);
void (*msi_clear_irq)(struct pcie_port *, int);
phys_addr_t (*get_msi_addr)(struct pcie_port *);
u32 (*get_msi_data)(struct pcie_port *, int);
void (*scan_bus)(struct pcie_port *);
int (*msi_host_init)(struct pcie_port *, struct msi_controller *);
};
4.10: ✅struct pcie_host_ops {
u32 (*readl_rc)(struct pcie_port *, u32);
void (*writel_rc)(struct pcie_port *, u32, u32);
int (*rd_own_conf)(struct pcie_port *, int, int, u32 *);
int (*wr_own_conf)(struct pcie_port *, int, int, u32);
int (*rd_other_conf)(struct pcie_port *, struct pci_bus *, unsigned int, int, int, u32 *);
int (*wr_other_conf)(struct pcie_port *, struct pci_bus *, unsigned int, int, int, u32);
int (*link_up)(struct pcie_port *);
void (*host_init)(struct pcie_port *);
void (*msi_set_irq)(struct pcie_port *, int);
void (*msi_clear_irq)(struct pcie_port *, int);
phys_addr_t (*get_msi_addr)(struct pcie_port *);
u32 (*get_msi_data)(struct pcie_port *, int);
void (*scan_bus)(struct pcie_port *);
int (*msi_host_init)(struct pcie_port *, struct msi_controller *);
};
4.13: Absent ⚠️
4.15: Absent ⚠️
4.18: Absent ⚠️
5.0: Absent ⚠️
5.3: Absent ⚠️
5.4: Absent ⚠️
5.8: Absent ⚠️
5.11: Absent ⚠️
5.13: Absent ⚠️
5.15: Absent ⚠️
5.19: Absent ⚠️
6.2: Absent ⚠️
6.5: Absent ⚠️
6.8: Absent ⚠️
arm64: Absent ⚠️
armhf: Absent ⚠️
ppc64el: Absent ⚠️
riscv64: Absent ⚠️
aws: Absent ⚠️
azure: Absent ⚠️
gcp: Absent ⚠️
lowlatency: Absent ⚠️
Regular
4.8 and 4.10 ⚠️void (*readl_rc)(struct pcie_port *, void *, u32 *) ➡️ u32 (*readl_rc)(struct pcie_port *, u32)
void (*writel_rc)(struct pcie_port *, u32, void *) ➡️ void (*writel_rc)(struct pcie_port *, u32, u32)