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