Revert "of/irq: of_irq_find_parent: check for parent equal to child"
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 22 Nov 2011 23:09:20 +0000 (15:09 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 22 Nov 2011 23:09:20 +0000 (15:09 -0800)
commitb4bbb02934e4511d9083f15c23e90703482e84ad
treeebbff074e9bab458331d1c472e2f5ee854ff8d6e
parent2db1125d51c4752ca68d1f015347b6f5b55e9fca
Revert "of/irq: of_irq_find_parent: check for parent equal to child"

This reverts commit dc9372808412edbc653a675a526c2ee6c0c14a91.

As requested by Ben Herrenschmidt:
  "This breaks some powerpc platforms at least.  The practice of having
   a node provide an explicit "interrupt-parent" property pointing to
   itself is an old trick that we've used in the past to allow a
   device-node to have interrupts routed to different controllers.

   In that case, the node also contains an interrupt-map, so the node is
   its own parent, the interrupt resolution hits the map, which then can
   route each individual interrupt to a different parent."

Grant says:
  "Ah, nuts, yes that is broken then.  Yes, please revert the commit and
   Rob & I will come up with a better solution.

   Rob, I think it can be done by explicitly checking for np ==
   desc->interrupt_parent in of_irq_init() instead of relying on
   of_irq_find_parent() returning NULL."

Requested-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Cc: Rob Herring <rob.herring@calxeda.com>
Cc: devicetree-discuss@lists.ozlabs.org
Cc: linuxppc-dev <linuxppc-dev@lists.ozlabs.org>
Cc: Tanmay Inamdar <tinamdar@apm.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/of/irq.c