On Tue, 2007-10-02 at 00:33 +0200, Segher Boessenkool wrote:
> >                     i8259: [EMAIL PROTECTED] {
> >                             device_type = "interrupt-controller";
> >                             compatible = "pnpPNP,000";
> >                             interrupt-controller;
> >                             reg = <00000001 00000020 00000002
> >                                    00000001 000000a0 00000002
> >                                    00000001 000004d0 00000002>;
> >                             reserved-interrupts = <2>;
> >                     };
> 
> This is an interrupt controller (it has an "interrupt-controller"
> property, and it has no interrupt parent (there is no "interrupt-parent"
> property, for interrupt controllers you do not follow the "normal" tree
> parent), so it is the root interrupt controller and there is no loop.
> 
> It seems from your description that the Linux code is using the tree
> parent as interrupt parent even for interrupt controller nodes.  This
> is wrong behaviour.

It shoudn't normally happen. The reason it -does- happen in fact is that
the above node is also missing the #interrupt-cells property, which
cause the parent-lookup routine to skip it before it gets a chance to
see that there's an "interrupt-controller" property in there.

I'm not sure whether linux behaviour is a bug or not since I believe we
are clearly in undefined-land as an interrupt controller should always
have a #interrupt-cells property.

Ben.


_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to