On Thu, 12 Nov 2015, Qais Yousef wrote: > Issues I'm seeing: > > - Device domain would be identical to GIC domain and it would defer > everything to the parent domain except for the extra level of indirection. No? It's not identical. It's a subset of the GIC domain and it has different semantics than the IPI domain. > - The race condition I mentioned in my earlier email where we must be told > what hwirqs are available because we can't guarantee there's no real device > connected to it which could interfere with the operation. We have always to > work on a pre reserved set defined by the system. Currently GIC hard codes > this set, but I'll be making it a DT property in the future. We do that better now as we really don't want to start over when it turns out that the DT property imposes other issues on it. > - If we remove the mapping, how can a coprocessor drivers find out the > reverse mapping to pass the hwirq to the firmware so that it can send and > listen on the correct hwirqs? I have to say my current patches missed dealing > with this problem. Now I have something to test my rproc driver on I came to > realise I haven't added the function to do the reverse mapping. int ipi_get_hw_irq(int irq) { struct irq_data *d = irq_get_irq_data(irq); return d ? irqd_to_hwirq(d); } Hmm? Thanks, tglx