of_irq_init() stopped working in 3.2-rc3

Pawel Moll pawel.moll at arm.com
Sat Nov 26 05:08:54 EST 2011


Hi Rob,

Because your dc9372808412edbc653a675a526c2ee6c0c14a91 "of/irq:
of_irq_find_parent: check for parent equal to child" got reverted in
3.2-rc3, the of_irq_init() doesn't work, as...

8<----------------------------------------------------------
void __init of_irq_init(const struct of_device_id *matches)
{
        struct device_node *np, *parent = NULL;
[...]
                desc->interrupt_parent = of_irq_find_parent(np);
[...]
                /*
                 * Process all controllers with the current 'parent'.
                 * First pass will be looking for NULL as the parent.
                 * The assumption is that NULL parent means a root controller.
                 */
                list_for_each_entry_safe(desc, temp_desc, &intc_desc_list, list) {
[...]
                        if (desc->interrupt_parent != parent)
                                continue;
8<------------------------------------------------------------

... the desc->interrupt_parent is not NULL for the root interrupt controller
any more...

I've temporarily worked the problem around by re-applying the
of_irq_find_parent() change.

Cheers!

Paweł




More information about the devicetree-discuss mailing list