Subject: [PATCH v2 1/3] ARM: allow platforms to use generic headers without ARCH_MULTIPLATFORM

From: [email-masked] (Rob Herring)
Date: Tue, 14 May 2013 10:07:23 -0500

On 05/14/2013 06:27 AM, Jonathan Austin wrote:
> Currently the use of generic mach headers is only is controlled by the same
> config option as selection of a multiplatform kernel (i.e.
> ARCH_MULTIPLATFORM). However, there are cases where it is valid to use the
> generic headers but still build a single platform kernel.
> 
> One such example is when using the vexpress platform with a core that does
> not have an MMU; a multiplatform kernel does not make sense, but use of the
> generic headers is required by the vexpress platform since 617276307cd4c
> ("ARM: vexpress: convert to multi-platform").
> 
> This patch untangles these two options by introducing a new
> ARM_GENERIC_HEADERS config option that ARCH_MULTIPLATFORM selects. Other
> platforms can now select ARM_GENERIC_HEADERS independently.

I find this name confusing. It is no headers you are selecting and
generic is a bit overused IMHO. So how about something like
NEED_NO_MACH_HEADERS to somewhat align to the other header related
config options (e.g. NEED_MACH_GPIO_H).

Rob

> Signed-off-by: Jonathan Austin <[email-masked]>
> CC: Rob Herring <[email-masked]>
> CC: Pawel Moll <[email-masked]>
> CC: Jason Cooper <[email-masked]>
> CC: Andrew Lunn <[email-masked]>
> CC: Gregory Clement <[email-masked]>
> CC: Tony Lindgren <[email-masked]>
> CC: Stephen Boyd <[email-masked]>
> CC: Will Deacon <[email-masked]>
> ---
>  arch/arm/Kconfig                 |    4 ++++
>  arch/arm/Kconfig.debug           |    4 ++--
>  arch/arm/Makefile                |    2 +-
>  arch/arm/include/asm/timex.h     |    2 +-
>  arch/arm/mach-mvebu/Makefile     |    2 +-
>  arch/arm/mach-omap2/Makefile     |    2 +-
>  arch/arm/mach-vexpress/Makefile  |    2 +-
>  arch/arm/plat-omap/Makefile      |    2 +-
>  arch/arm/plat-orion/Makefile     |    2 +-
>  arch/arm/plat-versatile/Makefile |    2 +-
>  10 files changed, 14 insertions(+), 10 deletions(-)
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index d423d58..408eb33 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -206,6 +206,9 @@ config NEED_RET_TO_USER
>  config ARCH_MTD_XIP
>  	bool
>  
> +config ARM_GENERIC_HEADERS
> +	bool
> +
>  config VECTORS_BASE
>  	hex
>  	default 0xffff0000 if MMU || CPU_HIGH_VECTOR
> @@ -295,6 +298,7 @@ config ARCH_MULTIPLATFORM
>  	select MULTI_IRQ_HANDLER
>  	select SPARSE_IRQ
>  	select USE_OF
> +	select ARM_GENERIC_HEADERS
>  
>  config ARCH_INTEGRATOR
>  	bool "ARM Ltd. Integrator family"
> diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
> index 1d41908..ede909b 100644
> --- a/arch/arm/Kconfig.debug
> +++ b/arch/arm/Kconfig.debug
> @@ -652,13 +652,13 @@ config DEBUG_LL_INCLUDE
>  
>  config DEBUG_UNCOMPRESS
>  	bool
> -	default y if ARCH_MULTIPLATFORM && DEBUG_LL && \
> +	default y if ARM_GENERIC_HEADERS && DEBUG_LL && \
>  		     !DEBUG_OMAP2PLUS_UART && \
>  		     !DEBUG_TEGRA_UART
>  
>  config UNCOMPRESS_INCLUDE
>  	string
> -	default "debug/uncompress.h" if ARCH_MULTIPLATFORM
> +	default "debug/uncompress.h" if ARM_GENERIC_HEADERS
>  	default "mach/uncompress.h"
>  
>  config EARLY_PRINTK
> diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> index 4737408..ab0416f 100644
> --- a/arch/arm/Makefile
> +++ b/arch/arm/Makefile
> @@ -229,7 +229,7 @@ endif
>  machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y))
>  platdirs := $(patsubst %,arch/arm/plat-%/,$(plat-y))
>  
> -ifneq ($(CONFIG_ARCH_MULTIPLATFORM),y)
> +ifneq ($(CONFIG_ARM_GENERIC_HEADERS),y)
>  ifeq ($(KBUILD_SRC),)
>  KBUILD_CPPFLAGS += $(patsubst %,-I%include,$(machdirs) $(platdirs))
>  else
> diff --git a/arch/arm/include/asm/timex.h b/arch/arm/include/asm/timex.h
> index 83f2aa8..586a9c2 100644
> --- a/arch/arm/include/asm/timex.h
> +++ b/arch/arm/include/asm/timex.h
> @@ -12,7 +12,7 @@
>  #ifndef _ASMARM_TIMEX_H
>  #define _ASMARM_TIMEX_H
>  
> -#ifdef CONFIG_ARCH_MULTIPLATFORM
> +#ifdef CONFIG_ARM_GENERIC_HEADERS
>  #define CLOCK_TICK_RATE 1000000
>  #else
>  #include <mach/timex.h>
> diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile
> index 2d04f0e..d3c0e0b 100644
> --- a/arch/arm/mach-mvebu/Makefile
> +++ b/arch/arm/mach-mvebu/Makefile
> @@ -1,4 +1,4 @@
> -ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \
> +ccflags-$(CONFIG_ARM_GENERIC_HEADERS) := -I$(srctree)/$(src)/include \
>  	-I$(srctree)/arch/arm/plat-orion/include
>  
>  AFLAGS_coherency_ll.o		:= -Wa,-march=armv7-a
> diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
> index 55a9d67..ab204bc 100644
> --- a/arch/arm/mach-omap2/Makefile
> +++ b/arch/arm/mach-omap2/Makefile
> @@ -2,7 +2,7 @@
>  # Makefile for the linux kernel.
>  #
>  
> -ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \
> +ccflags-$(CONFIG_ARM_GENERIC_HEADERS) := -I$(srctree)/$(src)/include \
>  	-I$(srctree)/arch/arm/plat-omap/include
>  
>  # Common support
> diff --git a/arch/arm/mach-vexpress/Makefile b/arch/arm/mach-vexpress/Makefile
> index 42703e8..6768e7f 100644
> --- a/arch/arm/mach-vexpress/Makefile
> +++ b/arch/arm/mach-vexpress/Makefile
> @@ -1,7 +1,7 @@
>  #
>  # Makefile for the linux kernel.
>  #
> -ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \
> +ccflags-$(CONFIG_ARM_GENERIC_HEADERS) := -I$(srctree)/$(src)/include \
>  	-I$(srctree)/arch/arm/plat-versatile/include
>  
>  obj-y					:= v2m.o
> diff --git a/arch/arm/plat-omap/Makefile b/arch/arm/plat-omap/Makefile
> index 3119941..3e1ba10 100644
> --- a/arch/arm/plat-omap/Makefile
> +++ b/arch/arm/plat-omap/Makefile
> @@ -2,7 +2,7 @@
>  # Makefile for the linux kernel.
>  #
>  
> -ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/arch/arm/plat-omap/include
> +ccflags-$(CONFIG_ARM_GENERIC_HEADERS) := -I$(srctree)/arch/arm/plat-omap/include
>  
>  # Common support
>  obj-y := sram.o dma.o counter_32k.o
> diff --git a/arch/arm/plat-orion/Makefile b/arch/arm/plat-orion/Makefile
> index 9433605..79a042ed 100644
> --- a/arch/arm/plat-orion/Makefile
> +++ b/arch/arm/plat-orion/Makefile
> @@ -1,7 +1,7 @@
>  #
>  # Makefile for the linux kernel.
>  #
> -ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include
> +ccflags-$(CONFIG_ARM_GENERIC_HEADERS) := -I$(srctree)/$(src)/include
>  
>  orion-gpio-$(CONFIG_GPIOLIB)      += gpio.o
>  obj-$(CONFIG_PLAT_ORION_LEGACY)   += irq.o pcie.o time.o common.o mpp.o
> diff --git a/arch/arm/plat-versatile/Makefile b/arch/arm/plat-versatile/Makefile
> index f88d448..19495c6 100644
> --- a/arch/arm/plat-versatile/Makefile
> +++ b/arch/arm/plat-versatile/Makefile
> @@ -1,4 +1,4 @@
> -ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include
> +ccflags-$(CONFIG_ARM_GENERIC_HEADERS) := -I$(srctree)/$(src)/include
>  
>  obj-$(CONFIG_PLAT_VERSATILE_CLOCK) += clock.o
>  obj-$(CONFIG_PLAT_VERSATILE_CLCD) += clcd.o
>