s390/Kconfig: add HAVE_MARCH_[ARCH]_FEATURES Kconfig symbols
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Mon, 14 May 2012 08:12:41 +0000 (10:12 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 16 May 2012 12:42:43 +0000 (14:42 +0200)
Add HAVE_MARCH_[ARCH]_FEATURES Kconfig symbols. Whenever there is code that
needs an instruction that is only present beginning with a hardware generation
the #ifdef chain can become quite long.
To avoid this add the new Kconfig symbols which are selected if the kernel
gets compiled for at least the specified symbol.
If for example the kernel gets compiled for z196 this means that also all
symbols for all previous architure features are set.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/Kconfig

index 354c0fe..b42f286 100644 (file)
@@ -234,6 +234,25 @@ config KEYS_COMPAT
 config AUDIT_ARCH
        def_bool y
 
+config HAVE_MARCH_Z900_FEATURES
+       def_bool n
+
+config HAVE_MARCH_Z990_FEATURES
+       def_bool n
+       select HAVE_MARCH_Z900_FEATURES
+
+config HAVE_MARCH_Z9_109_FEATURES
+       def_bool n
+       select HAVE_MARCH_Z990_FEATURES
+
+config HAVE_MARCH_Z10_FEATURES
+       def_bool n
+       select HAVE_MARCH_Z9_109_FEATURES
+
+config HAVE_MARCH_Z196_FEATURES
+       def_bool n
+       select HAVE_MARCH_Z10_FEATURES
+
 comment "Code generation options"
 
 choice
@@ -249,6 +268,7 @@ config MARCH_G5
 
 config MARCH_Z900
        bool "IBM zSeries model z800 and z900"
+       select HAVE_MARCH_Z900_FEATURES if 64BIT
        help
          Select this to enable optimizations for model z800/z900 (2064 and
          2066 series). This will enable some optimizations that are not
@@ -256,6 +276,7 @@ config MARCH_Z900
 
 config MARCH_Z990
        bool "IBM zSeries model z890 and z990"
+       select HAVE_MARCH_Z990_FEATURES if 64BIT
        help
          Select this to enable optimizations for model z890/z990 (2084 and
          2086 series). The kernel will be slightly faster but will not work
@@ -263,6 +284,7 @@ config MARCH_Z990
 
 config MARCH_Z9_109
        bool "IBM System z9"
+       select HAVE_MARCH_Z9_109_FEATURES if 64BIT
        help
          Select this to enable optimizations for IBM System z9 (2094 and
          2096 series). The kernel will be slightly faster but will not work
@@ -270,6 +292,7 @@ config MARCH_Z9_109
 
 config MARCH_Z10
        bool "IBM System z10"
+       select HAVE_MARCH_Z10_FEATURES if 64BIT
        help
          Select this to enable optimizations for IBM System z10 (2097 and
          2098 series). The kernel will be slightly faster but will not work
@@ -277,6 +300,7 @@ config MARCH_Z10
 
 config MARCH_Z196
        bool "IBM zEnterprise 114 and 196"
+       select HAVE_MARCH_Z196_FEATURES if 64BIT
        help
          Select this to enable optimizations for IBM zEnterprise 114 and 196
          (2818 and 2817 series). The kernel will be slightly faster but will