pcie_port
Regular
4.4
: Absent ⚠️
4.8
: ✅struct pcie_port {
struct device *dev;
u8 root_bus_nr;
void *dbi_base;
u64 cfg0_base;
void *va_cfg0_base;
u32 cfg0_size;
u64 cfg1_base;
void *va_cfg1_base;
u32 cfg1_size;
resource_size_t io_base;
phys_addr_t io_bus_addr;
u32 io_size;
u64 mem_base;
phys_addr_t mem_bus_addr;
u32 mem_size;
struct resource *cfg;
struct resource *io;
struct resource *mem;
struct resource *busn;
int irq;
u32 lanes;
struct pcie_host_ops *ops;
int msi_irq;
struct irq_domain *irq_domain;
long unsigned int msi_data;
long unsigned int msi_irq_in_use[1];
};
4.10
: ✅struct pcie_port {
struct device *dev;
u8 root_bus_nr;
void *dbi_base;
u64 cfg0_base;
void *va_cfg0_base;
u32 cfg0_size;
u64 cfg1_base;
void *va_cfg1_base;
u32 cfg1_size;
resource_size_t io_base;
phys_addr_t io_bus_addr;
u32 io_size;
u64 mem_base;
phys_addr_t mem_bus_addr;
u32 mem_size;
struct resource *cfg;
struct resource *io;
struct resource *mem;
struct resource *busn;
int irq;
u32 lanes;
u32 num_viewport;
struct pcie_host_ops *ops;
int msi_irq;
struct irq_domain *irq_domain;
long unsigned int msi_data;
u8 iatu_unroll_enabled;
long unsigned int msi_irq_in_use[1];
};
4.13
: ✅struct pcie_port {
u8 root_bus_nr;
u64 cfg0_base;
void *va_cfg0_base;
u32 cfg0_size;
u64 cfg1_base;
void *va_cfg1_base;
u32 cfg1_size;
resource_size_t io_base;
phys_addr_t io_bus_addr;
u32 io_size;
u64 mem_base;
phys_addr_t mem_bus_addr;
u32 mem_size;
struct resource *cfg;
struct resource *io;
struct resource *mem;
struct resource *busn;
int irq;
const struct dw_pcie_host_ops *ops;
int msi_irq;
struct irq_domain *irq_domain;
long unsigned int msi_data;
long unsigned int msi_irq_in_use[1];
};
4.15
: ✅struct pcie_port {
u8 root_bus_nr;
u64 cfg0_base;
void *va_cfg0_base;
u32 cfg0_size;
u64 cfg1_base;
void *va_cfg1_base;
u32 cfg1_size;
resource_size_t io_base;
phys_addr_t io_bus_addr;
u32 io_size;
u64 mem_base;
phys_addr_t mem_bus_addr;
u32 mem_size;
struct resource *cfg;
struct resource *io;
struct resource *mem;
struct resource *busn;
int irq;
const struct dw_pcie_host_ops *ops;
int msi_irq;
struct irq_domain *irq_domain;
long unsigned int msi_data;
long unsigned int msi_irq_in_use[1];
};
4.18
: ✅struct pcie_port {
u8 root_bus_nr;
u64 cfg0_base;
void *va_cfg0_base;
u32 cfg0_size;
u64 cfg1_base;
void *va_cfg1_base;
u32 cfg1_size;
resource_size_t io_base;
phys_addr_t io_bus_addr;
u32 io_size;
u64 mem_base;
phys_addr_t mem_bus_addr;
u32 mem_size;
struct resource *cfg;
struct resource *io;
struct resource *mem;
struct resource *busn;
int irq;
const struct dw_pcie_host_ops *ops;
int msi_irq;
struct irq_domain *irq_domain;
struct irq_domain *msi_domain;
dma_addr_t msi_data;
u32 num_vectors;
u32 irq_status[8];
raw_spinlock_t lock;
long unsigned int msi_irq_in_use[4];
};
5.0
: ✅struct pcie_port {
u8 root_bus_nr;
u64 cfg0_base;
void *va_cfg0_base;
u32 cfg0_size;
u64 cfg1_base;
void *va_cfg1_base;
u32 cfg1_size;
resource_size_t io_base;
phys_addr_t io_bus_addr;
u32 io_size;
u64 mem_base;
phys_addr_t mem_bus_addr;
u32 mem_size;
struct resource *cfg;
struct resource *io;
struct resource *mem;
struct resource *busn;
int irq;
const struct dw_pcie_host_ops *ops;
int msi_irq;
struct irq_domain *irq_domain;
struct irq_domain *msi_domain;
dma_addr_t msi_data;
u32 num_vectors;
u32 irq_status[8];
raw_spinlock_t lock;
long unsigned int msi_irq_in_use[4];
};
5.3
: ✅struct pcie_port {
u8 root_bus_nr;
u64 cfg0_base;
void *va_cfg0_base;
u32 cfg0_size;
u64 cfg1_base;
void *va_cfg1_base;
u32 cfg1_size;
resource_size_t io_base;
phys_addr_t io_bus_addr;
u32 io_size;
u64 mem_base;
phys_addr_t mem_bus_addr;
u32 mem_size;
struct resource *cfg;
struct resource *io;
struct resource *mem;
struct resource *busn;
int irq;
const struct dw_pcie_host_ops *ops;
int msi_irq;
struct irq_domain *irq_domain;
struct irq_domain *msi_domain;
dma_addr_t msi_data;
struct page *msi_page;
struct irq_chip *msi_irq_chip;
u32 num_vectors;
u32 irq_mask[8];
struct pci_bus *root_bus;
raw_spinlock_t lock;
long unsigned int msi_irq_in_use[4];
};
5.4
: ✅struct pcie_port {
u8 root_bus_nr;
u64 cfg0_base;
void *va_cfg0_base;
u32 cfg0_size;
u64 cfg1_base;
void *va_cfg1_base;
u32 cfg1_size;
resource_size_t io_base;
phys_addr_t io_bus_addr;
u32 io_size;
u64 mem_base;
phys_addr_t mem_bus_addr;
u32 mem_size;
struct resource *cfg;
struct resource *io;
struct resource *mem;
struct resource *busn;
int irq;
const struct dw_pcie_host_ops *ops;
int msi_irq;
struct irq_domain *irq_domain;
struct irq_domain *msi_domain;
dma_addr_t msi_data;
struct page *msi_page;
struct irq_chip *msi_irq_chip;
u32 num_vectors;
u32 irq_mask[8];
struct pci_bus *root_bus;
raw_spinlock_t lock;
long unsigned int msi_irq_in_use[4];
};
5.8
: ✅struct pcie_port {
u8 root_bus_nr;
u64 cfg0_base;
void *va_cfg0_base;
u32 cfg0_size;
u64 cfg1_base;
void *va_cfg1_base;
u32 cfg1_size;
resource_size_t io_base;
phys_addr_t io_bus_addr;
u32 io_size;
u64 mem_base;
phys_addr_t mem_bus_addr;
u32 mem_size;
struct resource *cfg;
struct resource *io;
struct resource *mem;
struct resource *busn;
int irq;
const struct dw_pcie_host_ops *ops;
int msi_irq;
struct irq_domain *irq_domain;
struct irq_domain *msi_domain;
dma_addr_t msi_data;
struct page *msi_page;
struct irq_chip *msi_irq_chip;
u32 num_vectors;
u32 irq_mask[8];
struct pci_bus *root_bus;
raw_spinlock_t lock;
long unsigned int msi_irq_in_use[4];
};
5.11
: ✅struct pcie_port {
bool has_msi_ctrl;
u64 cfg0_base;
void *va_cfg0_base;
u32 cfg0_size;
resource_size_t io_base;
phys_addr_t io_bus_addr;
u32 io_size;
int irq;
const struct dw_pcie_host_ops *ops;
int msi_irq;
struct irq_domain *irq_domain;
struct irq_domain *msi_domain;
u16 msi_msg;
dma_addr_t msi_data;
struct irq_chip *msi_irq_chip;
u32 num_vectors;
u32 irq_mask[8];
struct pci_host_bridge *bridge;
raw_spinlock_t lock;
long unsigned int msi_irq_in_use[4];
};
5.13
: ✅struct pcie_port {
bool has_msi_ctrl;
u64 cfg0_base;
void *va_cfg0_base;
u32 cfg0_size;
resource_size_t io_base;
phys_addr_t io_bus_addr;
u32 io_size;
int irq;
const struct dw_pcie_host_ops *ops;
int msi_irq;
struct irq_domain *irq_domain;
struct irq_domain *msi_domain;
u16 msi_msg;
dma_addr_t msi_data;
struct irq_chip *msi_irq_chip;
u32 num_vectors;
u32 irq_mask[8];
struct pci_host_bridge *bridge;
raw_spinlock_t lock;
long unsigned int msi_irq_in_use[4];
};
5.15
: ✅struct pcie_port {
bool has_msi_ctrl;
u64 cfg0_base;
void *va_cfg0_base;
u32 cfg0_size;
resource_size_t io_base;
phys_addr_t io_bus_addr;
u32 io_size;
int irq;
const struct dw_pcie_host_ops *ops;
int msi_irq;
struct irq_domain *irq_domain;
struct irq_domain *msi_domain;
u16 msi_msg;
dma_addr_t msi_data;
struct irq_chip *msi_irq_chip;
u32 num_vectors;
u32 irq_mask[8];
struct pci_host_bridge *bridge;
raw_spinlock_t lock;
long unsigned int msi_irq_in_use[4];
};
5.19
: ✅struct pcie_port {
bool has_msi_ctrl;
u64 cfg0_base;
void *va_cfg0_base;
u32 cfg0_size;
resource_size_t io_base;
phys_addr_t io_bus_addr;
u32 io_size;
int irq;
const struct dw_pcie_host_ops *ops;
int msi_irq;
struct irq_domain *irq_domain;
struct irq_domain *msi_domain;
u16 msi_msg;
dma_addr_t msi_data;
struct irq_chip *msi_irq_chip;
u32 num_vectors;
u32 irq_mask[8];
struct pci_host_bridge *bridge;
raw_spinlock_t lock;
long unsigned int msi_irq_in_use[4];
};
6.2
: Absent ⚠️
6.5
: Absent ⚠️
6.8
: Absent ⚠️
arm64
: ✅struct pcie_port {
u8 root_bus_nr;
u64 cfg0_base;
void *va_cfg0_base;
u32 cfg0_size;
u64 cfg1_base;
void *va_cfg1_base;
u32 cfg1_size;
resource_size_t io_base;
phys_addr_t io_bus_addr;
u32 io_size;
u64 mem_base;
phys_addr_t mem_bus_addr;
u32 mem_size;
struct resource *cfg;
struct resource *io;
struct resource *mem;
struct resource *busn;
int irq;
const struct dw_pcie_host_ops *ops;
int msi_irq;
struct irq_domain *irq_domain;
struct irq_domain *msi_domain;
dma_addr_t msi_data;
struct page *msi_page;
struct irq_chip *msi_irq_chip;
u32 num_vectors;
u32 irq_mask[8];
struct pci_bus *root_bus;
raw_spinlock_t lock;
long unsigned int msi_irq_in_use[4];
};
armhf
: ✅struct pcie_port {
u8 root_bus_nr;
u64 cfg0_base;
void *va_cfg0_base;
u32 cfg0_size;
u64 cfg1_base;
void *va_cfg1_base;
u32 cfg1_size;
resource_size_t io_base;
phys_addr_t io_bus_addr;
u32 io_size;
u64 mem_base;
phys_addr_t mem_bus_addr;
u32 mem_size;
struct resource *cfg;
struct resource *io;
struct resource *mem;
struct resource *busn;
int irq;
const struct dw_pcie_host_ops *ops;
int msi_irq;
struct irq_domain *irq_domain;
struct irq_domain *msi_domain;
dma_addr_t msi_data;
struct page *msi_page;
struct irq_chip *msi_irq_chip;
u32 num_vectors;
u32 irq_mask[8];
struct pci_bus *root_bus;
raw_spinlock_t lock;
long unsigned int msi_irq_in_use[8];
};
ppc64el
: Absent ⚠️
riscv64
: ✅struct pcie_port {
u8 root_bus_nr;
u64 cfg0_base;
void *va_cfg0_base;
u32 cfg0_size;
u64 cfg1_base;
void *va_cfg1_base;
u32 cfg1_size;
resource_size_t io_base;
phys_addr_t io_bus_addr;
u32 io_size;
u64 mem_base;
phys_addr_t mem_bus_addr;
u32 mem_size;
struct resource *cfg;
struct resource *io;
struct resource *mem;
struct resource *busn;
int irq;
const struct dw_pcie_host_ops *ops;
int msi_irq;
struct irq_domain *irq_domain;
struct irq_domain *msi_domain;
dma_addr_t msi_data;
struct page *msi_page;
struct irq_chip *msi_irq_chip;
u32 num_vectors;
u32 irq_mask[8];
struct pci_bus *root_bus;
raw_spinlock_t lock;
long unsigned int msi_irq_in_use[4];
};
aws
: ✅struct pcie_port {
u8 root_bus_nr;
u64 cfg0_base;
void *va_cfg0_base;
u32 cfg0_size;
u64 cfg1_base;
void *va_cfg1_base;
u32 cfg1_size;
resource_size_t io_base;
phys_addr_t io_bus_addr;
u32 io_size;
u64 mem_base;
phys_addr_t mem_bus_addr;
u32 mem_size;
struct resource *cfg;
struct resource *io;
struct resource *mem;
struct resource *busn;
int irq;
const struct dw_pcie_host_ops *ops;
int msi_irq;
struct irq_domain *irq_domain;
struct irq_domain *msi_domain;
dma_addr_t msi_data;
struct page *msi_page;
struct irq_chip *msi_irq_chip;
u32 num_vectors;
u32 irq_mask[8];
struct pci_bus *root_bus;
raw_spinlock_t lock;
long unsigned int msi_irq_in_use[4];
};
azure
: ✅struct pcie_port {
u8 root_bus_nr;
u64 cfg0_base;
void *va_cfg0_base;
u32 cfg0_size;
u64 cfg1_base;
void *va_cfg1_base;
u32 cfg1_size;
resource_size_t io_base;
phys_addr_t io_bus_addr;
u32 io_size;
u64 mem_base;
phys_addr_t mem_bus_addr;
u32 mem_size;
struct resource *cfg;
struct resource *io;
struct resource *mem;
struct resource *busn;
int irq;
const struct dw_pcie_host_ops *ops;
int msi_irq;
struct irq_domain *irq_domain;
struct irq_domain *msi_domain;
dma_addr_t msi_data;
struct page *msi_page;
struct irq_chip *msi_irq_chip;
u32 num_vectors;
u32 irq_mask[8];
struct pci_bus *root_bus;
raw_spinlock_t lock;
long unsigned int msi_irq_in_use[4];
};
gcp
: ✅struct pcie_port {
u8 root_bus_nr;
u64 cfg0_base;
void *va_cfg0_base;
u32 cfg0_size;
u64 cfg1_base;
void *va_cfg1_base;
u32 cfg1_size;
resource_size_t io_base;
phys_addr_t io_bus_addr;
u32 io_size;
u64 mem_base;
phys_addr_t mem_bus_addr;
u32 mem_size;
struct resource *cfg;
struct resource *io;
struct resource *mem;
struct resource *busn;
int irq;
const struct dw_pcie_host_ops *ops;
int msi_irq;
struct irq_domain *irq_domain;
struct irq_domain *msi_domain;
dma_addr_t msi_data;
struct page *msi_page;
struct irq_chip *msi_irq_chip;
u32 num_vectors;
u32 irq_mask[8];
struct pci_bus *root_bus;
raw_spinlock_t lock;
long unsigned int msi_irq_in_use[4];
};
lowlatency
: ✅struct pcie_port {
u8 root_bus_nr;
u64 cfg0_base;
void *va_cfg0_base;
u32 cfg0_size;
u64 cfg1_base;
void *va_cfg1_base;
u32 cfg1_size;
resource_size_t io_base;
phys_addr_t io_bus_addr;
u32 io_size;
u64 mem_base;
phys_addr_t mem_bus_addr;
u32 mem_size;
struct resource *cfg;
struct resource *io;
struct resource *mem;
struct resource *busn;
int irq;
const struct dw_pcie_host_ops *ops;
int msi_irq;
struct irq_domain *irq_domain;
struct irq_domain *msi_domain;
dma_addr_t msi_data;
struct page *msi_page;
struct irq_chip *msi_irq_chip;
u32 num_vectors;
u32 irq_mask[8];
struct pci_bus *root_bus;
raw_spinlock_t lock;
long unsigned int msi_irq_in_use[4];
};
Regular
4.8
and 4.10
⚠️u32 num_viewport
u8 iatu_unroll_enabled
4.10
and 4.13
⚠️struct device *dev
void *dbi_base
u32 lanes
u32 num_viewport
u8 iatu_unroll_enabled
struct pcie_host_ops *ops
➡️ const struct dw_pcie_host_ops *ops
4.13
and 4.15
✅
4.15
and 4.18
⚠️struct irq_domain *msi_domain
u32 num_vectors
u32 irq_status[8]
raw_spinlock_t lock
long unsigned int msi_data
➡️ dma_addr_t msi_data
long unsigned int msi_irq_in_use[1]
➡️ long unsigned int msi_irq_in_use[4]
4.18
and 5.0
✅
5.0
and 5.3
⚠️struct page *msi_page
struct irq_chip *msi_irq_chip
u32 irq_mask[8]
struct pci_bus *root_bus
u32 irq_status[8]
5.3
and 5.4
✅
5.4
and 5.8
✅
5.8
and 5.11
⚠️bool has_msi_ctrl
u16 msi_msg
struct pci_host_bridge *bridge
u8 root_bus_nr
u64 cfg1_base
void *va_cfg1_base
u32 cfg1_size
u64 mem_base
phys_addr_t mem_bus_addr
u32 mem_size
struct resource *cfg
struct resource *io
struct resource *mem
struct resource *busn
struct page *msi_page
struct pci_bus *root_bus
5.11
and 5.13
✅
5.13
and 5.15
✅
5.15
and 5.19
✅
amd64
and arm64
✅
amd64
and armhf
⚠️long unsigned int msi_irq_in_use[4]
➡️ long unsigned int msi_irq_in_use[8]
amd64
and riscv64
✅
generic
and aws
✅
generic
and azure
✅
generic
and gcp
✅
generic
and lowlatency
✅