{.irq = IRQIO_VIR, .name = "VIR", .desc = "[I/O] Virtual I/O Devices"},
{.irq = IRQIO_QAI, .name = "QAI", .desc = "[AIO] QDIO Adapter Interrupt"},
{.irq = IRQIO_APB, .name = "APB", .desc = "[AIO] AP Bus"},
- {.irq = IRQIO_PCI, .name = "PCI", .desc = "[AIO] PCI Interrupt"},
+ {.irq = IRQIO_PCF, .name = "PCF", .desc = "[AIO] PCI Floating Interrupt"},
+ {.irq = IRQIO_PCD, .name = "PCD", .desc = "[AIO] PCI Directed Interrupt"},
{.irq = IRQIO_MSI, .name = "MSI", .desc = "[AIO] MSI Interrupt"},
{.irq = IRQIO_VAI, .name = "VAI", .desc = "[AIO] Virtual I/O Devices AI"},
{.irq = IRQIO_GAL, .name = "GAL", .desc = "[AIO] GIB Alert"},
static void zpci_directed_irq_handler(struct airq_struct *airq, bool floating)
{
- inc_irq_stat(IRQIO_PCI);
- if (floating)
+ if (floating) {
+ inc_irq_stat(IRQIO_PCF);
zpci_handle_fallback_irq();
- else
+ } else {
+ inc_irq_stat(IRQIO_PCD);
zpci_handle_cpu_local_irq(true);
+ }
}
static void zpci_floating_irq_handler(struct airq_struct *airq, bool floating)
struct airq_iv *aibv;
int irqs_on = 0;
- inc_irq_stat(IRQIO_PCI);
+ inc_irq_stat(IRQIO_PCF);
for (si = 0;;) {
/* Scan adapter summary indicator bit vector */
si = airq_iv_scan(zpci_sbv, si, airq_iv_end(zpci_sbv));