PCI: apple: Change MSI handling to handle 4-cell AIC fwspec form
authorHector Martin <marcan@marcan.st>
Wed, 9 Mar 2022 19:21:17 +0000 (04:21 +0900)
committerMarc Zyngier <maz@kernel.org>
Thu, 10 Mar 2022 09:49:03 +0000 (09:49 +0000)
AIC2 changes the IRQ fwspec to add a cell. Always use the second-to-last
cell for the MSI handling, so it will work for both AIC1 and AIC2 devices.

Signed-off-by: Hector Martin <marcan@marcan.st>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20220309192123.152028-2-marcan@marcan.st
drivers/pci/controller/pcie-apple.c

index 854d951..a2c3c20 100644 (file)
@@ -219,7 +219,7 @@ static int apple_msi_domain_alloc(struct irq_domain *domain, unsigned int virq,
        if (hwirq < 0)
                return -ENOSPC;
 
-       fwspec.param[1] += hwirq;
+       fwspec.param[fwspec.param_count - 2] += hwirq;
 
        ret = irq_domain_alloc_irqs_parent(domain, virq, nr_irqs, &fwspec);
        if (ret)