Re: [PATCH v3 00/25] irq_domain generalization and refinement
From: Grant Likely <hidden>
Date: 2012-02-06 05:56:15
Also in:
linux-arm-kernel, linux-devicetree, lkml
On Sat, Feb 04, 2012 at 10:17:48PM +0000, Russell King - ARM Linux wrote:
On Fri, Jan 27, 2012 at 02:35:54PM -0700, Grant Likely wrote:quoted
Hey everyone, This patch series is ready for much wider consumption now. I'd like to get it into linux-next ASAP because there will be ARM board support depending on it. I'll wait a few days before I ask Stephen to pull this in.Grant, Can you answer me this: does this irqdomain support require DT?
No, it should not. Any situation where it does is a bug.
Now, here's the thing: I believe that IRQ domains - at least as far as the hwirq stuff - should be available irrespective of whether we have the rest of the IRQ domain support code in place, so that IRQ support code doesn't have to keep playing games to decode from the global space to the per-controller number space.
Correct. That's the intent. My new series flushes out irq_domain quite a bit better and gets all architectures doing the same thing if they use irq_domains. I've done some testing on both CONFIG_OF and !CONFIG_OF builds, but I'm going to do some more to make sure I've not missed anything.
I believe that would certainly help the current OMAP problems, where the current lack of CONFIG_IRQ_DOMAIN basically makes the kernel oops on boot. How we fix this regression for 3.4 I've no idea at present, I'm trying to work out what the real dependencies are for OMAP on this stuff. Finally, do we need asm/irq.h in our asm/prom.h ? That's causing fragility between DT and non-DT builds, because people are finding that their DT builds work without their mach/irqs.h includes but fail when built with non-DT. The only thing which DT might need - at the most - is NR_IRQS, but I'd hope with things like irq domains it doesn't actually require it.
I don't think so. There may be a file or two that break because they're not including everything they need, but I don't think anything in the header requires it. The irq_domain code is well isolated. The header file doesn't need to be including it. g.