Re: [PATCH v3 00/25] irq_domain generalization and refinement
From: Russell King - ARM Linux <hidden>
Date: 2012-02-05 16:14:19
Also in:
linux-arm-kernel, linux-devicetree, lkml
On Sat, Feb 04, 2012 at 05:38:53PM -0800, Tony Lindgren wrote:
* Russell King - ARM Linux [off-list ref] [120204 14:00]:quoted
Actually, it turns out to be not that hard, because twl doesn't actually make use of the IRQ domain stuff: commit aeb5032b3f8b9ab69daa545777433fa94b3494c4 Author: Benoit Cousson [off-list ref] AuthorDate: Mon Aug 29 16:20:23 2011 +0200 Commit: Samuel Ortiz [off-list ref] CommitDate: Mon Jan 9 00:37:40 2012 +0100 mfd: twl-core: Add initial DT support for twl4030/twl6030 [grant.likely@secretlab.ca: Fix IRQ_DOMAIN dependency in kconfig] Adding any dependency - especially one which wouldn't be enabled - for a new feature which wasn't required before is going to break existing users, so this shouldn't have been done in the first place. A better fix to preserve existing users would've been as below - yes it means more ifdefs, but if irq domain is to remain a DT only thing then we're going to end up with _lots_ of this stuff. I'd much prefer to see irq domain become more widely available so it doesn't require these ifdefs everywhere.Your patch below looks like a correct fix to me to the problem you and Grazvydas are seeing: Acked-by: Tony Lindgren <tony@atomide.com>
It's not quite correct, because OMAP4 has issues in this area as well (which does select IRQ_DOMAIN but can be without OF.) The result is an oops from irq_domain_add() because domain->ops is NULL. The right solution is three fold: 1. Wrap the bits of code in CONFIG_IRQ_DOMAIN 2. Get rid of the #ifdef CONFIG_OF there, so the 'ops' member can be initialized. 3. Fix the OMAP vp code not to oops when voltdm->pmic is NULL which I have in my combined patch for fixing OMAP so far.