arch/x86: PCIE MSI vector allocator can use arch IRQ allocator

Instead of messing up with the PCI bus.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
This commit is contained in:
Tomasz Bursztyka 2021-01-06 15:02:54 +01:00 committed by Carles Cufí
commit 2623315802

View file

@ -224,22 +224,6 @@ uint16_t pcie_msi_mdr(unsigned int irq,
#if defined(CONFIG_INTEL_VTD_ICTL) || defined(CONFIG_PCIE_MSI_X)
static inline uint32_t _read_pcie_irq_data(pcie_bdf_t bdf)
{
uint32_t data;
data = pcie_conf_read(bdf, PCIE_CONF_INTR);
pcie_conf_write(bdf, PCIE_CONF_INTR, data | PCIE_CONF_INTR_IRQ_NONE);
return data;
}
static inline void _write_pcie_irq_data(pcie_bdf_t bdf, uint32_t data)
{
pcie_conf_write(bdf, PCIE_CONF_INTR, data);
}
uint8_t arch_pcie_msi_vectors_allocate(unsigned int priority,
msi_vector_t *vectors,
uint8_t n_vector)
@ -271,14 +255,7 @@ uint8_t arch_pcie_msi_vectors_allocate(unsigned int priority,
#endif /* CONFIG_INTEL_VTD_ICTL */
for (i = 0; i < n_vector; i++) {
uint32_t data;
data = _read_pcie_irq_data(vectors[i].bdf);
vectors[i].arch.irq = pcie_alloc_irq(vectors[i].bdf);
_write_pcie_irq_data(vectors[i].bdf, data);
vectors[i].arch.irq = arch_irq_allocate();
vectors[i].arch.vector =
z_x86_allocate_vector(priority, prev_vector);
if (vectors[i].arch.vector < 0) {