diff mbox

[2/3] ARM: EXYNOS: Enable multi-platform build support

Message ID 1400655169-21683-3-git-send-email-sachin.kamat@linaro.org
State Superseded
Headers show

Commit Message

Sachin Kamat May 21, 2014, 6:52 a.m. UTC
From: Arnd Bergmann <arnd@arndb.de>

This makes it possible to enable the exynos platform as part of a
multiplatform kernel, in addition to keeping the single-platform
Exynos support.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
---
 arch/arm/Kconfig               |   30 ------------------------------
 arch/arm/mach-exynos/Kconfig   |   28 ++++++++++++++++++++++++++++
 arch/arm/mach-exynos/Makefile  |    2 ++
 arch/arm/plat-samsung/Makefile |    3 +++
 4 files changed, 33 insertions(+), 30 deletions(-)

Comments

Arnd Bergmann May 21, 2014, 8:16 a.m. UTC | #1
On Wednesday 21 May 2014 12:22:48 Sachin Kamat wrote:
>  # Configuration options for the EXYNOS4
>  
> +config ARCH_EXYNOS
> +       bool "Samsung EXYNOS" if ARCH_MULTI_V7
> +       select ARCH_HAS_BANDGAP
> +       select ARCH_HAS_CPUFREQ
> +       select ARCH_HAS_HOLES_MEMORYMODEL
> +       select ARCH_REQUIRE_GPIOLIB
> +       select ARM_AMBA
> +       select ARM_GIC
> +       select CLKSRC_OF
> +       select COMMON_CLK_SAMSUNG
> +       select CPU_V7
> +       select GENERIC_CLOCKEVENTS
> +       select HAVE_ARM_SCU if SMP
> +       select HAVE_S3C2410_I2C if I2C
> +       select HAVE_S3C2410_WATCHDOG if WATCHDOG
> +       select HAVE_S3C_RTC if RTC_CLASS
> +       select HAVE_SMP
> +       select PINCTRL
> +       select PINCTRL_EXYNOS
> +       select PM_GENERIC_DOMAINS if PM_RUNTIME
> +       select S5P_DEV_MFC
> +       select SAMSUNG_DMADEV
> +       select SPARSE_IRQ
> +       select SRAM
> +       select USE_OF
> +       help
> +         Support for SAMSUNG EXYNOS SoCs (EXYNOS4/5)
> +
> 

A number of these can be removed now: SPARSE_IRQ, USE_OF, GENERIC_CLOCKEVENTS,
CLKSRC_OF, CPU_V7 and HAVE_SMP are implied by ARCH_MULTIPLATFORM or ARCH_MULTI_V7,
so we shouldn't duplicate them here.

I believe SAMSUNG_DMADEV cannot work in multiplatform, but we also don't need
it any more.

The rest looks good.

	Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Sachin Kamat May 21, 2014, 8:20 a.m. UTC | #2
On 21 May 2014 13:46, Arnd Bergmann <arnd@arndb.de> wrote:
> On Wednesday 21 May 2014 12:22:48 Sachin Kamat wrote:
>>  # Configuration options for the EXYNOS4
>>
>> +config ARCH_EXYNOS
>> +       bool "Samsung EXYNOS" if ARCH_MULTI_V7
>> +       select ARCH_HAS_BANDGAP
>> +       select ARCH_HAS_CPUFREQ
>> +       select ARCH_HAS_HOLES_MEMORYMODEL
>> +       select ARCH_REQUIRE_GPIOLIB
>> +       select ARM_AMBA
>> +       select ARM_GIC
>> +       select CLKSRC_OF
>> +       select COMMON_CLK_SAMSUNG
>> +       select CPU_V7
>> +       select GENERIC_CLOCKEVENTS
>> +       select HAVE_ARM_SCU if SMP
>> +       select HAVE_S3C2410_I2C if I2C
>> +       select HAVE_S3C2410_WATCHDOG if WATCHDOG
>> +       select HAVE_S3C_RTC if RTC_CLASS
>> +       select HAVE_SMP
>> +       select PINCTRL
>> +       select PINCTRL_EXYNOS
>> +       select PM_GENERIC_DOMAINS if PM_RUNTIME
>> +       select S5P_DEV_MFC
>> +       select SAMSUNG_DMADEV
>> +       select SPARSE_IRQ
>> +       select SRAM
>> +       select USE_OF
>> +       help
>> +         Support for SAMSUNG EXYNOS SoCs (EXYNOS4/5)
>> +
>>
>
> A number of these can be removed now: SPARSE_IRQ, USE_OF, GENERIC_CLOCKEVENTS,
> CLKSRC_OF, CPU_V7 and HAVE_SMP are implied by ARCH_MULTIPLATFORM or ARCH_MULTI_V7,
> so we shouldn't duplicate them here.

OK.

>
> I believe SAMSUNG_DMADEV cannot work in multiplatform, but we also don't need
> it any more.

Yes this is no longer needed now that we use generic DMA engine. Will
remove this too.
Thanks for the review.
Bartlomiej Zolnierkiewicz May 21, 2014, 10:36 a.m. UTC | #3
Hi,

On Wednesday, May 21, 2014 12:22:48 PM Sachin Kamat wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> This makes it possible to enable the exynos platform as part of a
> multiplatform kernel, in addition to keeping the single-platform
> Exynos support.

The patch description is wrong.  After this patch single-platform Exynos
support is no longer available and it adds at least one serious regression
(cpufreq) which should be fixed before merging this patch.  Moreover it
seems that this patch (#2) should be merged with patch #3 to preserve
bisectability.  Please also note that exynos_defconfig is no longer useful
after these changes and can be be removed.

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> ---
>  arch/arm/Kconfig               |   30 ------------------------------
>  arch/arm/mach-exynos/Kconfig   |   28 ++++++++++++++++++++++++++++
>  arch/arm/mach-exynos/Makefile  |    2 ++
>  arch/arm/plat-samsung/Makefile |    3 +++
>  4 files changed, 33 insertions(+), 30 deletions(-)
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 666b59b58ab0..26f2bae4d948 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -829,36 +829,6 @@ config ARCH_S5PV210
>  	help
>  	  Samsung S5PV210/S5PC110 series based systems
>  
> -config ARCH_EXYNOS
> -	bool "Samsung EXYNOS"
> -	select ARCH_HAS_BANDGAP
> -	select ARCH_HAS_CPUFREQ
> -	select ARCH_HAS_HOLES_MEMORYMODEL
> -	select ARCH_REQUIRE_GPIOLIB
> -	select ARCH_SPARSEMEM_ENABLE
> -	select ARM_AMBA
> -	select ARM_GIC
> -	select CLKSRC_OF
> -	select COMMON_CLK_SAMSUNG
> -	select CPU_V7
> -	select GENERIC_CLOCKEVENTS
> -	select HAVE_ARM_SCU if SMP
> -	select HAVE_S3C2410_I2C if I2C
> -	select HAVE_S3C2410_WATCHDOG if WATCHDOG
> -	select HAVE_S3C_RTC if RTC_CLASS
> -	select HAVE_SMP
> -	select NEED_MACH_MEMORY_H
> -	select PINCTRL
> -	select PINCTRL_EXYNOS
> -	select PM_GENERIC_DOMAINS if PM_RUNTIME
> -	select S5P_DEV_MFC
> -	select SAMSUNG_DMADEV
> -	select SPARSE_IRQ
> -	select SRAM
> -	select USE_OF
> -	help
> -	  Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
> -
>  config ARCH_DAVINCI
>  	bool "TI DaVinci"
>  	select ARCH_HAS_HOLES_MEMORYMODEL
> diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
> index 138070e42aa9..46634175cf54 100644
> --- a/arch/arm/mach-exynos/Kconfig
> +++ b/arch/arm/mach-exynos/Kconfig
> @@ -7,6 +7,34 @@
>  
>  # Configuration options for the EXYNOS4
>  
> +config ARCH_EXYNOS
> +	bool "Samsung EXYNOS" if ARCH_MULTI_V7
> +	select ARCH_HAS_BANDGAP
> +	select ARCH_HAS_CPUFREQ
> +	select ARCH_HAS_HOLES_MEMORYMODEL
> +	select ARCH_REQUIRE_GPIOLIB
> +	select ARM_AMBA
> +	select ARM_GIC
> +	select CLKSRC_OF
> +	select COMMON_CLK_SAMSUNG
> +	select CPU_V7
> +	select GENERIC_CLOCKEVENTS
> +	select HAVE_ARM_SCU if SMP
> +	select HAVE_S3C2410_I2C if I2C
> +	select HAVE_S3C2410_WATCHDOG if WATCHDOG
> +	select HAVE_S3C_RTC if RTC_CLASS
> +	select HAVE_SMP
> +	select PINCTRL
> +	select PINCTRL_EXYNOS
> +	select PM_GENERIC_DOMAINS if PM_RUNTIME
> +	select S5P_DEV_MFC
> +	select SAMSUNG_DMADEV
> +	select SPARSE_IRQ
> +	select SRAM
> +	select USE_OF
> +	help
> +	  Support for SAMSUNG EXYNOS SoCs (EXYNOS4/5)
> +
>  if ARCH_EXYNOS
>  
>  menu "SAMSUNG EXYNOS SoCs Support"
> diff --git a/arch/arm/mach-exynos/Makefile b/arch/arm/mach-exynos/Makefile
> index 2e0666d31e75..97af694291f1 100644
> --- a/arch/arm/mach-exynos/Makefile
> +++ b/arch/arm/mach-exynos/Makefile
> @@ -5,6 +5,8 @@
>  #
>  # Licensed under GPLv2
>  
> +ccflags-$(CONFIG_ARCH_MULTIPLATFORM) += -I$(srctree)/$(src)/include -I$(srctree)/arch/arm/plat-samsung/include
> +
>  obj-y				:=
>  obj-m				:=
>  obj-n				:=
> diff --git a/arch/arm/plat-samsung/Makefile b/arch/arm/plat-samsung/Makefile
> index 25c826ed3b65..5e5beaa9ae15 100644
> --- a/arch/arm/plat-samsung/Makefile
> +++ b/arch/arm/plat-samsung/Makefile
> @@ -4,6 +4,9 @@
>  #
>  # Licensed under GPLv2
>  
> +ccflags-$(CONFIG_ARCH_MULTI_V7) += -I$(srctree)/$(src)/include
> +ccflags-$(CONFIG_ARCH_EXYNOS)	+= -I$(srctree)/arch/arm/mach-exynos/include
> +
>  obj-y				:=
>  obj-m				:=
>  obj-n				:= dummy.o

--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Sachin Kamat May 21, 2014, 11:14 a.m. UTC | #4
Hi Bartlomiej,

On 21 May 2014 16:06, Bartlomiej Zolnierkiewicz
<b.zolnierkie@samsung.com> wrote:
>
> Hi,
>
> On Wednesday, May 21, 2014 12:22:48 PM Sachin Kamat wrote:
>> From: Arnd Bergmann <arnd@arndb.de>
>>
>> This makes it possible to enable the exynos platform as part of a
>> multiplatform kernel, in addition to keeping the single-platform
>> Exynos support.
>
> The patch description is wrong.  After this patch single-platform Exynos
> support is no longer available

Forgot to update the message while rebasing. Thanks for noticing.

> and it adds at least one serious regression

I have mentioned about this in the cover letter.

> (cpufreq) which should be fixed before merging this patch.  Moreover it
> seems that this patch (#2) should be merged with patch #3 to preserve
> bisectability.

At this point exynos_defconfig works.

>Please also note that exynos_defconfig is no longer useful
> after these changes and can be be removed.

Yes.

---
With warm regards,
Sachin
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Kukjin Kim May 21, 2014, 1:40 p.m. UTC | #5
Sachin Kamat wrote:
> 
> Hi Bartlomiej,
> 
> On 21 May 2014 16:06, Bartlomiej Zolnierkiewicz
> <b.zolnierkie@samsung.com> wrote:
> >
> > Hi,
> >
> > On Wednesday, May 21, 2014 12:22:48 PM Sachin Kamat wrote:
> >> From: Arnd Bergmann <arnd@arndb.de>
> >>
> >> This makes it possible to enable the exynos platform as part of a
> >> multiplatform kernel, in addition to keeping the single-platform
> >> Exynos support.
> >
> > The patch description is wrong.  After this patch single-platform Exynos
> > support is no longer available
> 
> Forgot to update the message while rebasing. Thanks for noticing.
> 
> > and it adds at least one serious regression
> 
> I have mentioned about this in the cover letter.
> 
> > (cpufreq) which should be fixed before merging this patch.  Moreover it
> > seems that this patch (#2) should be merged with patch #3 to preserve
> > bisectability.
> 
> At this point exynos_defconfig works.
> 
> >Please also note that exynos_defconfig is no longer useful
> > after these changes and can be be removed.
> 
> Yes.
> 
Well, I think keeping the exynos_defconfig would be nice like other platform in multiplatforms...and I'm going to enable possible configs in exynos_defconfig for exynso SoCs then it can cover more for exynos...

Thanks,
Kukjin

--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Bartlomiej Zolnierkiewicz May 21, 2014, 2:02 p.m. UTC | #6
Hi,

On Wednesday, May 21, 2014 10:40:07 PM Kukjin Kim wrote:
> Sachin Kamat wrote:
> > 
> > Hi Bartlomiej,
> > 
> > On 21 May 2014 16:06, Bartlomiej Zolnierkiewicz
> > <b.zolnierkie@samsung.com> wrote:
> > >
> > > Hi,
> > >
> > > On Wednesday, May 21, 2014 12:22:48 PM Sachin Kamat wrote:
> > >> From: Arnd Bergmann <arnd@arndb.de>
> > >>
> > >> This makes it possible to enable the exynos platform as part of a
> > >> multiplatform kernel, in addition to keeping the single-platform
> > >> Exynos support.
> > >
> > > The patch description is wrong.  After this patch single-platform Exynos
> > > support is no longer available
> > 
> > Forgot to update the message while rebasing. Thanks for noticing.
> > 
> > > and it adds at least one serious regression
> > 
> > I have mentioned about this in the cover letter.
> > 
> > > (cpufreq) which should be fixed before merging this patch.  Moreover it
> > > seems that this patch (#2) should be merged with patch #3 to preserve
> > > bisectability.
> > 
> > At this point exynos_defconfig works.
> > 
> > >Please also note that exynos_defconfig is no longer useful
> > > after these changes and can be be removed.
> > 
> > Yes.
> > 
> Well, I think keeping the exynos_defconfig would be nice like other platform in multiplatforms...and I'm going to enable possible configs in exynos_defconfig for exynso SoCs then it can cover more for exynos...

I know that many other platforms still have their own configs [*] but
I would strongly prefer to have a single config supporting Exynos SoCs
(that would be a multiplatform one) to simplify testing and prevent
situations when something works with one config but not the other.

[*] I also hope that they get removed in the longer-term.. 

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 666b59b58ab0..26f2bae4d948 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -829,36 +829,6 @@  config ARCH_S5PV210
 	help
 	  Samsung S5PV210/S5PC110 series based systems
 
-config ARCH_EXYNOS
-	bool "Samsung EXYNOS"
-	select ARCH_HAS_BANDGAP
-	select ARCH_HAS_CPUFREQ
-	select ARCH_HAS_HOLES_MEMORYMODEL
-	select ARCH_REQUIRE_GPIOLIB
-	select ARCH_SPARSEMEM_ENABLE
-	select ARM_AMBA
-	select ARM_GIC
-	select CLKSRC_OF
-	select COMMON_CLK_SAMSUNG
-	select CPU_V7
-	select GENERIC_CLOCKEVENTS
-	select HAVE_ARM_SCU if SMP
-	select HAVE_S3C2410_I2C if I2C
-	select HAVE_S3C2410_WATCHDOG if WATCHDOG
-	select HAVE_S3C_RTC if RTC_CLASS
-	select HAVE_SMP
-	select NEED_MACH_MEMORY_H
-	select PINCTRL
-	select PINCTRL_EXYNOS
-	select PM_GENERIC_DOMAINS if PM_RUNTIME
-	select S5P_DEV_MFC
-	select SAMSUNG_DMADEV
-	select SPARSE_IRQ
-	select SRAM
-	select USE_OF
-	help
-	  Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
-
 config ARCH_DAVINCI
 	bool "TI DaVinci"
 	select ARCH_HAS_HOLES_MEMORYMODEL
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 138070e42aa9..46634175cf54 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -7,6 +7,34 @@ 
 
 # Configuration options for the EXYNOS4
 
+config ARCH_EXYNOS
+	bool "Samsung EXYNOS" if ARCH_MULTI_V7
+	select ARCH_HAS_BANDGAP
+	select ARCH_HAS_CPUFREQ
+	select ARCH_HAS_HOLES_MEMORYMODEL
+	select ARCH_REQUIRE_GPIOLIB
+	select ARM_AMBA
+	select ARM_GIC
+	select CLKSRC_OF
+	select COMMON_CLK_SAMSUNG
+	select CPU_V7
+	select GENERIC_CLOCKEVENTS
+	select HAVE_ARM_SCU if SMP
+	select HAVE_S3C2410_I2C if I2C
+	select HAVE_S3C2410_WATCHDOG if WATCHDOG
+	select HAVE_S3C_RTC if RTC_CLASS
+	select HAVE_SMP
+	select PINCTRL
+	select PINCTRL_EXYNOS
+	select PM_GENERIC_DOMAINS if PM_RUNTIME
+	select S5P_DEV_MFC
+	select SAMSUNG_DMADEV
+	select SPARSE_IRQ
+	select SRAM
+	select USE_OF
+	help
+	  Support for SAMSUNG EXYNOS SoCs (EXYNOS4/5)
+
 if ARCH_EXYNOS
 
 menu "SAMSUNG EXYNOS SoCs Support"
diff --git a/arch/arm/mach-exynos/Makefile b/arch/arm/mach-exynos/Makefile
index 2e0666d31e75..97af694291f1 100644
--- a/arch/arm/mach-exynos/Makefile
+++ b/arch/arm/mach-exynos/Makefile
@@ -5,6 +5,8 @@ 
 #
 # Licensed under GPLv2
 
+ccflags-$(CONFIG_ARCH_MULTIPLATFORM) += -I$(srctree)/$(src)/include -I$(srctree)/arch/arm/plat-samsung/include
+
 obj-y				:=
 obj-m				:=
 obj-n				:=
diff --git a/arch/arm/plat-samsung/Makefile b/arch/arm/plat-samsung/Makefile
index 25c826ed3b65..5e5beaa9ae15 100644
--- a/arch/arm/plat-samsung/Makefile
+++ b/arch/arm/plat-samsung/Makefile
@@ -4,6 +4,9 @@ 
 #
 # Licensed under GPLv2
 
+ccflags-$(CONFIG_ARCH_MULTI_V7) += -I$(srctree)/$(src)/include
+ccflags-$(CONFIG_ARCH_EXYNOS)	+= -I$(srctree)/arch/arm/mach-exynos/include
+
 obj-y				:=
 obj-m				:=
 obj-n				:= dummy.o