diff --git a/drivers/pcie/host/pcie.c b/drivers/pcie/host/pcie.c index 5f19d704bad552..5b2198b5278439 100644 --- a/drivers/pcie/host/pcie.c +++ b/drivers/pcie/host/pcie.c @@ -14,6 +14,7 @@ LOG_MODULE_REGISTER(pcie, LOG_LEVEL_ERR); #include #include #include +#include #if CONFIG_PCIE_MSI #include @@ -285,7 +286,13 @@ unsigned int pcie_alloc_irq(pcie_bdf_t bdf) if (irq == PCIE_CONF_INTR_IRQ_NONE || irq >= CONFIG_MAX_IRQ_LINES || arch_irq_is_used(irq)) { - irq = arch_irq_allocate(); + + if (IS_ENABLED(CONFIG_ACPI)) { + irq = acpi_legacy_irq_get(bdf); + } else { + irq = arch_irq_allocate(); + } + if (irq == UINT_MAX) { return PCIE_CONF_INTR_IRQ_NONE; }