On 12/04/17 10:50, Mason wrote: > On 12/04/2017 10:08, Marc Zyngier wrote: > >> On 11/04/17 18:52, Mason wrote: >> >>> so data->irq is the virq (30, 34, 35, 36) >>> and data->hwirq is the domain hwirq (0, 524288, 524289, 524290) >>> >>> Is there a way to map hwirq 524288 to MSI 0, hwirq 524289 to MSI 1, etc? >> >> Why would you need to do such a thing? >> - In MSI domain: IRQ34 -> hwirq 524288 >> - In foo domain: IRQ34 -> hwirq [whatever your driver has allocated] >> >> The data is already there, at your fingertips. Just deal with with your >> "foo" irqchip. > > OK, let me take a step back, I may have missed the forest for > the trees. > > In my original code (copied from the Altera driver) I unmasked > a given MSI in the tango_irq_domain_alloc() function. You said > this was the wrong place, as it should be done in the irqchip > unmask callback. Did I understand correctly, so far? Yes. > I have registered custom mask/unmask callbacks for both irq_chips. And that's *wrong*. I've repeatedly said that you only need to deal with *your* irqchip. End of story. Nowhere else. Please leave the MSI irqchip alone, it is very unlikely that you have to provide anything at all to it. M. -- Jazz is not dead. It just smells funny...