On 11/29/2011 11:47 AM, Cousson, Benoit wrote: > On 11/29/2011 6:13 PM, Stephen Warren wrote: >> Cousson, Benoit wrote at Tuesday, November 29, 2011 6:01 AM: >>> Hi Stephen& Peter, >>> >>> On 11/29/2011 1:54 AM, Stephen Warren wrote: >>>> From: pdeschrijver@xxxxxxxxxx<pdeschrijver@xxxxxxxxxx> >>> >>> [...] >>> >>>> @@ -125,6 +131,14 @@ void __init tegra_init_irq(void) >>>> gic_arch_extn.irq_unmask = tegra_unmask; >>>> gic_arch_extn.irq_retrigger = tegra_retrigger; >>>> >>>> - gic_init(0, 29, IO_ADDRESS(TEGRA_ARM_INT_DIST_BASE), >>>> - IO_ADDRESS(TEGRA_ARM_PERIF_BASE + 0x100)); >>>> +#ifdef CONFIG_OF >>>> + /* Check if there is a devicetree present as of_irq_init doesn't >>>> + * indicate if an interrupt controller node was found. >>>> + */ >>>> + if (of_find_node_by_path("/")) >>>> + of_irq_init(tegra_irq_match); >>>> + else >>>> +#endif >>> >>> For the same kind of need, I found the following API: >>> >>> of_have_populated_dt() >>> >>> Moreover, it returns false if !CONFIG_OF, so it will avoid the #ifdef. >> >> That sounds like a great idea. Unfortunately, of_irq_init() is a DT-only >> function. Exynos has the following in mainline to solve this: >> >> if (!of_have_populated_dt()) >> gic_init_bases(...); >> #ifdef CONFIG_OF >> else >> of_irq_init(exynos4_dt_irq_match); >> #endif >> >> Perhaps we should add a dummy of_irq_init() too, so that we can remove >> this ifdef. > > Yes, indeed, I think that's much better. Most of_XXX APIs do have a > dummy version, but for some reason some of them do not. > That one clearly deserve a dummy version. I had an empty version originally and removed it based on Grant's review... The original intent was this call should be in a DT board file and therefore always enabled. Perhaps you can split tegra_init_irq into 2 functions with one having all but gic_init and then call that function from board-dt.c along with of_irq_init. Rob -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html