Message ID | 1401559206-23767-1-git-send-email-shc_work@mail.ru (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Saturday 31 May 2014 22:00:06 Alexander Shiyan wrote: > This patch provide initial partial multiplatform support for CLPS711X CPUs. > Not intended for apply, just for comments at now. It's great to see you are this close now! > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index 899afa4..aced2fb 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -385,15 +385,9 @@ config ARCH_AT91 > This enables support for systems based on Atmel > AT91RM9200 and AT91SAM9* processors. > > -config ARCH_CLPS711X > +config CLPS711X_SINGLE > bool "Cirrus Logic CLPS711x/EP721x/EP731x-based" > - select ARCH_REQUIRE_GPIOLIB > - select AUTO_ZRELADDR > - select CLKSRC_MMIO > - select COMMON_CLK > - select CPU_ARM720T > - select GENERIC_CLOCKEVENTS > - select MFD_SYSCON > + select ARCH_CLPS711X > help > Support for Cirrus Logic 711x/721x/731x based boards. > > diff --git a/arch/arm/mach-clps711x/Kconfig b/arch/arm/mach-clps711x/Kconfig > index f711498..1802562 100644 > --- a/arch/arm/mach-clps711x/Kconfig > +++ b/arch/arm/mach-clps711x/Kconfig > @@ -1,15 +1,34 @@ > +config ARCH_CLPS711X > + bool > + depends on CLPS711X_SINGLE || CLPS711X_MULTI > + select ARCH_REQUIRE_GPIOLIB > + select AUTO_ZRELADDR > + select CLKSRC_MMIO > + select COMMON_CLK > + select CPU_ARM720T > + select GENERIC_CLOCKEVENTS > + select MFD_SYSCON > + > +config CLPS711X_MULTI > + bool "Cirrus Logic CLPS711X" if ARCH_MULTI_V4T > + select ARCH_CLPS711X > + help > + Support for Cirrus Logic CLPS711X-based family of processors. The split between single and multi is just intended to be temporary, while the framebuffer driver is being sorted out, right? In general, I'd be happier skipping that stage and going to multiplatform for all of clps711x when it's ready, but we can also do it like this if there is a good reason and you have a clear schedule for when to remove the _SINGLE part. One technicality: this change breaks all defconfig files and user .configs. You can avoid that if you keep the name ARCH_CLPS711X for either the single- or the multiplatform case and name the common option ARCH_CLPS711X_COMMON. Arnd
Sat, 31 May 2014 20:12:21 +0200 ?? Arnd Bergmann <arnd@arndb.de>: > On Saturday 31 May 2014 22:00:06 Alexander Shiyan wrote: > > This patch provide initial partial multiplatform support for CLPS711X CPUs. > > Not intended for apply, just for comments at now. > > It's great to see you are this close now! > > > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > > index 899afa4..aced2fb 100644 > > --- a/arch/arm/Kconfig > > +++ b/arch/arm/Kconfig > > @@ -385,15 +385,9 @@ config ARCH_AT91 > > This enables support for systems based on Atmel > > AT91RM9200 and AT91SAM9* processors. > > > > -config ARCH_CLPS711X > > +config CLPS711X_SINGLE > > bool "Cirrus Logic CLPS711x/EP721x/EP731x-based" > > - select ARCH_REQUIRE_GPIOLIB > > - select AUTO_ZRELADDR > > - select CLKSRC_MMIO > > - select COMMON_CLK > > - select CPU_ARM720T > > - select GENERIC_CLOCKEVENTS > > - select MFD_SYSCON > > + select ARCH_CLPS711X > > help > > Support for Cirrus Logic 711x/721x/731x based boards. > > > > diff --git a/arch/arm/mach-clps711x/Kconfig b/arch/arm/mach-clps711x/Kconfig > > index f711498..1802562 100644 > > --- a/arch/arm/mach-clps711x/Kconfig > > +++ b/arch/arm/mach-clps711x/Kconfig > > @@ -1,15 +1,34 @@ > > +config ARCH_CLPS711X > > + bool > > + depends on CLPS711X_SINGLE || CLPS711X_MULTI > > + select ARCH_REQUIRE_GPIOLIB > > + select AUTO_ZRELADDR > > + select CLKSRC_MMIO > > + select COMMON_CLK > > + select CPU_ARM720T > > + select GENERIC_CLOCKEVENTS > > + select MFD_SYSCON > > + > > +config CLPS711X_MULTI > > + bool "Cirrus Logic CLPS711X" if ARCH_MULTI_V4T > > + select ARCH_CLPS711X > > + help > > + Support for Cirrus Logic CLPS711X-based family of processors. > > The split between single and multi is just intended to be temporary, > while the framebuffer driver is being sorted out, right? Yes. This is a general thing why this patch provides "partial" support. > In general, I'd be happier skipping that stage and going to multiplatform > for all of clps711x when it's ready, but we can also do it like this > if there is a good reason and you have a clear schedule for when to > remove the _SINGLE part. > > One technicality: this change breaks all defconfig files and user > .configs. You can avoid that if you keep the name ARCH_CLPS711X for > either the single- or the multiplatform case and name the common > option ARCH_CLPS711X_COMMON. Yes, this is a problem. I thought about the best way to solve the problem of "flip-flop" Kconfig options, but did not come to a good decision. I'll have to think about this problem. I will look at your solution to the problem. ---
Sat, 31 May 2014 20:12:21 +0200 ?? Arnd Bergmann <arnd@arndb.de>: > On Saturday 31 May 2014 22:00:06 Alexander Shiyan wrote: > > This patch provide initial partial multiplatform support for CLPS711X CPUs. > > Not intended for apply, just for comments at now. ... > One technicality: this change breaks all defconfig files and user > .configs. You can avoid that if you keep the name ARCH_CLPS711X for > either the single- or the multiplatform case and name the common > option ARCH_CLPS711X_COMMON. arch/arm/Kconfig:303:error: recursive dependency detected! arch/arm/Kconfig:303: choice <choice> contains symbol ARCH_CLPS711X arch/arm/Kconfig:388: symbol ARCH_CLPS711X is part of choice CLPS711X_MULTI arch/arm/mach-clps711x/Kconfig:12: symbol CLPS711X_MULTI depends on ARCH_MULTI_V4T arch/arm/Kconfig:874: symbol ARCH_MULTI_V4T depends on ARCH_MULTIPLATFORM arch/arm/Kconfig:308: symbol ARCH_MULTIPLATFORM is part of choice <choice> So, it is so hard to keep ARCH_CLPS711X in its original state... ---
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 899afa4..aced2fb 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -385,15 +385,9 @@ config ARCH_AT91 This enables support for systems based on Atmel AT91RM9200 and AT91SAM9* processors. -config ARCH_CLPS711X +config CLPS711X_SINGLE bool "Cirrus Logic CLPS711x/EP721x/EP731x-based" - select ARCH_REQUIRE_GPIOLIB - select AUTO_ZRELADDR - select CLKSRC_MMIO - select COMMON_CLK - select CPU_ARM720T - select GENERIC_CLOCKEVENTS - select MFD_SYSCON + select ARCH_CLPS711X help Support for Cirrus Logic 711x/721x/731x based boards. diff --git a/arch/arm/mach-clps711x/Kconfig b/arch/arm/mach-clps711x/Kconfig index f711498..1802562 100644 --- a/arch/arm/mach-clps711x/Kconfig +++ b/arch/arm/mach-clps711x/Kconfig @@ -1,15 +1,34 @@ +config ARCH_CLPS711X + bool + depends on CLPS711X_SINGLE || CLPS711X_MULTI + select ARCH_REQUIRE_GPIOLIB + select AUTO_ZRELADDR + select CLKSRC_MMIO + select COMMON_CLK + select CPU_ARM720T + select GENERIC_CLOCKEVENTS + select MFD_SYSCON + +config CLPS711X_MULTI + bool "Cirrus Logic CLPS711X" if ARCH_MULTI_V4T + select ARCH_CLPS711X + help + Support for Cirrus Logic CLPS711X-based family of processors. + if ARCH_CLPS711X menu "CLPS711X/EP721X/EP731X Implementations" config ARCH_AUTCPU12 bool "AUTCPU12" + depends on CLPS711X_SINGLE help Say Y if you intend to run the kernel on the autronix autcpu12 board. This board is based on a Cirrus Logic CS89712. config ARCH_CDB89712 bool "CDB89712" + depends on CLPS711X_SINGLE help This is an evaluation board from Cirrus for the CS89712 processor. The board includes 2 serial ports, Ethernet, IRDA, and expansion @@ -22,6 +41,7 @@ config ARCH_CLEP7312 config ARCH_EDB7211 bool "EDB7211" + depends on CLPS711X_SINGLE select ARCH_HAS_HOLES_MEMORYMODEL help Say Y here if you intend to run this kernel on a Cirrus Logic EDB-7211 @@ -29,6 +49,7 @@ config ARCH_EDB7211 config ARCH_P720T bool "P720T" + depends on CLPS711X_SINGLE help Say Y here if you intend to run this kernel on the ARM Prospector 720T. diff --git a/arch/arm/mach-clps711x/common.c b/arch/arm/mach-clps711x/common.c index 2a6323b..a230989 100644 --- a/arch/arm/mach-clps711x/common.c +++ b/arch/arm/mach-clps711x/common.c @@ -35,7 +35,7 @@ #include <asm/mach/time.h> #include <asm/system_misc.h> -#include <mach/hardware.h> +#include "include/mach/hardware.h" #include "common.h" diff --git a/arch/arm/mach-clps711x/devices.c b/arch/arm/mach-clps711x/devices.c index 0c689d3..08562d5 100644 --- a/arch/arm/mach-clps711x/devices.c +++ b/arch/arm/mach-clps711x/devices.c @@ -12,7 +12,7 @@ #include <linux/platform_device.h> #include <linux/sizes.h> -#include <mach/hardware.h> +#include "include/mach/hardware.h" static const struct resource clps711x_cpuidle_res __initconst = DEFINE_RES_MEM(CLPS711X_PHYS_BASE + HALT, SZ_128); diff --git a/arch/arm/mach-clps711x/include/mach/hardware.h b/arch/arm/mach-clps711x/include/mach/hardware.h index 833129c..e507a60 100644 --- a/arch/arm/mach-clps711x/include/mach/hardware.h +++ b/arch/arm/mach-clps711x/include/mach/hardware.h @@ -22,7 +22,7 @@ #ifndef __MACH_HARDWARE_H #define __MACH_HARDWARE_H -#include <mach/clps711x.h> +#include "clps711x.h" #define CLPS711X_VIRT_BASE IOMEM(0xfeff0000)