pata_of_platform.c cannot build on sparc

David Miller davem at davemloft.net
Thu Dec 22 09:38:10 EST 2011


It depends upon CONFIG_OF_IRQ which not all CONFIG_OF platforms support,
in particular sparc does not support CONFIG_OF_PLATFORM because it
precomputes all IRQs at boot time when it scans the device tree so all
of the CONFIG_OF_IRQ infrastructure to probe and resolve IRQs at driver
probe time is wrong and completely unnecessary.

Add the proper dependencies so that pata_of_platform.c doesn't get
built on sparc.

CONFIG_OF_IRQ was severely misdesigned, it should just NOP out on
platforms where the architecture has the final IRQ values already like
sparc does.  But that's not how it was implemented at all, and now
we're starting to have all of these drivers get hard dependencies on
this mechanism and it's datastructures, and the resulting sparc build
failures from time to time.

Jeff, please push something like the following to Linus so that
sparc's allmodconfig builds again.  Thanks.

--------------------
pata_of_platform: Add missing CONFIG_OF_IRQ dependency.

Signed-off-by: David S. Miller <davem at davemloft.net>

diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index 6bdedd7..cf047c4 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -820,7 +820,7 @@ config PATA_PLATFORM
 
 config PATA_OF_PLATFORM
 	tristate "OpenFirmware platform device PATA support"
-	depends on PATA_PLATFORM && OF
+	depends on PATA_PLATFORM && OF && OF_IRQ
 	help
 	  This option enables support for generic directly connected ATA
 	  devices commonly found on embedded systems with OpenFirmware


More information about the devicetree-discuss mailing list