build some drivers only when compile-testing
authorJiri Slaby <jslaby@suse.cz>
Wed, 22 May 2013 08:56:24 +0000 (10:56 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 24 Jun 2013 23:41:32 +0000 (16:41 -0700)
Some drivers can be built on more platforms than they run on. This is
a burden for users and distributors who package a kernel. They have to
manually deselect some (for them useless) drivers when updating their
configs via oldconfig. And yet, sometimes it is even impossible to
disable the drivers without patching the kernel.

Introduce a new config option COMPILE_TEST and make all those drivers
to depend on the platform they run on, or on the COMPILE_TEST option.
Now, when users/distributors choose COMPILE_TEST=n they will not have
the drivers in their allmodconfig setups, but developers still can
compile-test them with COMPILE_TEST=y.

Now the drivers where we use this new option:
* PTP_1588_CLOCK_PCH: The PCH EG20T is only compatible with Intel Atom
  processors so it should depend on x86.
* FB_GEODE: Geode is 32-bit only so only enable it for X86_32.
* USB_CHIPIDEA_IMX: The OF_DEVICE dependency will be met on powerpc
  systems -- which do not actually support the hardware via that
  method.
* INTEL_MID_PTI: It is specific to the Penwell type of Intel Atom
  device.

[v2]
* remove EXPERT dependency

[gregkh - remove chipidea portion, as it's incorrect, and also doesn't
 apply to my driver-core tree]

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Jeff Mahoney <jeffm@suse.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: linux-usb@vger.kernel.org
Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: linux-geode@lists.infradead.org
Cc: linux-fbdev@vger.kernel.org
Cc: Richard Cochran <richardcochran@gmail.com>
Cc: netdev@vger.kernel.org
Cc: Ben Hutchings <ben@decadent.org.uk>
Cc: "Keller, Jacob E" <jacob.e.keller@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/Kconfig
drivers/ptp/Kconfig
drivers/video/geode/Kconfig
init/Kconfig

index c002d8660e3053b056220018f5b25b81eccaade5..e23df6cf710d3fba091fb0acf3f6b1c537e4c8a5 100644 (file)
@@ -135,7 +135,7 @@ config PHANTOM
 
 config INTEL_MID_PTI
        tristate "Parallel Trace Interface for MIPI P1149.7 cJTAG standard"
-       depends on PCI && TTY
+       depends on PCI && TTY && (X86_INTEL_MID || COMPILE_TEST)
        default n
        help
          The PTI (Parallel Trace Interface) driver directs
index 1ea6f1dbbedd0323fe726b1364b930befff7df0e..5be73ba0519a199bd1117c9890d862ef56108441 100644 (file)
@@ -72,6 +72,7 @@ config DP83640_PHY
 
 config PTP_1588_CLOCK_PCH
        tristate "Intel PCH EG20T as PTP clock"
+       depends on X86 || COMPILE_TEST
        select PTP_1588_CLOCK
        help
          This driver adds support for using the PCH EG20T as a PTP
index 21e351a14593fdc5e86ffa0db2b1d8e445a6b0dc..1e85552847868ea68918120343ad2dab12252154 100644 (file)
@@ -3,7 +3,7 @@
 #
 config FB_GEODE
        bool "AMD Geode family framebuffer support"
-       depends on FB && PCI && X86
+       depends on FB && PCI && (X86_32 || (X86 && COMPILE_TEST))
        ---help---
          Say 'Y' here to allow you to select framebuffer drivers for
          the AMD Geode family of processors.
index 55ccdf6640ff8a46e7d7fd845a5b4b9701c61075..1e825c299ea5f1e30086824a7d198aa758a58645 100644 (file)
@@ -53,6 +53,20 @@ config CROSS_COMPILE
          need to set this unless you want the configured kernel build
          directory to select the cross-compiler automatically.
 
+config COMPILE_TEST
+       bool "Compile also drivers which will not load"
+       default n
+       help
+         Some drivers can be compiled on a different platform than they are
+         intended to be run on. Despite they cannot be loaded there (or even
+         when they load they cannot be used due to missing HW support),
+         developers still, opposing to distributors, might want to build such
+         drivers to compile-test them.
+
+         If you are a developer and want to build everything available, say Y
+         here. If you are a user/distributor, say N here to exclude useless
+         drivers to be distributed.
+
 config LOCALVERSION
        string "Local version - append to kernel release"
        help