Further cleanup and enable multiplat build
Subsystems (7)
v2 cover Further cleanup and enable multiplat build
This series is based on latest linux-next and depends on the following patch:
ARM: EXYNOS: Consolidate Kconfig entries
http://article.gmane.org/gmane.linux.kernel.samsung-soc/28642
Changes since v2:
Replaced patch 2, "ARM: EXYNOS: Staticize exynos_subsys" with "ARM: EXYNOS: Remove exynos_subsys registration" as that code is no more used.
Tested on Exynos4210, 4412, 5250 and 5420 based boards.
Arnd Bergmann (1):
ARM: EXYNOS: Enable multi-platform build support
Sachin Kamat (5):
ARM: EXYNOS: Remove duplicate lines in Makefile
ARM: EXYNOS: Remove exynos_subsys registration
ARM: EXYNOS: Migrate Exynos specific macros from plat to mach
ARM: EXYNOS: Remove unnecessary inclusion of cpu.h
ARM: multi_v7_defconfig: Enable Exynos platform
arch/arm/Kconfig | 27 ++--------- arch/arm/configs/exynos_defconfig | 2 +- arch/arm/configs/multi_v7_defconfig | 10 +++++ arch/arm/mach-exynos/Kconfig | 27 +++++++++++ arch/arm/mach-exynos/Makefile | 9 ++-- arch/arm/mach-exynos/common.h | 72 ++++++++++++++++++++++++++++++ arch/arm/mach-exynos/cpuidle.c | 1 - arch/arm/mach-exynos/exynos.c | 13 ------ arch/arm/mach-exynos/hotplug.c | 2 - arch/arm/mach-exynos/platsmp.c | 2 - arch/arm/mach-exynos/pm.c | 1 - arch/arm/mach-exynos/pmu.c | 2 - arch/arm/plat-samsung/Makefile | 3 ++ arch/arm/plat-samsung/include/plat/cpu.h | 61 ------------------------- 14 files changed, 119 insertions(+), 113 deletions(-)
Signature · 1 line
1.7.9.5
PATCH v2 1/6 ARM: EXYNOS: Remove duplicate lines in Makefile
Group all files compiled under common config option together.
--- arch/arm/mach-exynos/Makefile | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-)
arch/arm/mach-exynos/Makefile +1 -6
@@ -12,20 +12,15 @@ obj- := # Core -obj-$(CONFIG_ARCH_EXYNOS) += exynos.o +obj-$(CONFIG_ARCH_EXYNOS) += exynos.o pmu.o exynos-smc.o firmware.o obj-$(CONFIG_PM_SLEEP) += pm.o sleep.o obj-$(CONFIG_PM_GENERIC_DOMAINS) += pm_domains.o obj-$(CONFIG_CPU_IDLE) += cpuidle.o -obj-$(CONFIG_ARCH_EXYNOS) += pmu.o - obj-$(CONFIG_SMP) += platsmp.o headsmp.o obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o -obj-$(CONFIG_ARCH_EXYNOS) += exynos-smc.o -obj-$(CONFIG_ARCH_EXYNOS) += firmware.o - plus_sec := $(call as-instr,.arch_extension sec,+sec) AFLAGS_exynos-smc.o :=-Wa,-march=armv7-a$(plus_sec)
Signature · 1 line
1.7.9.5
PATCH v2 2/6 ARM: EXYNOS: Remove exynos_subsys registration
In reply to Sachin Kamat'exynos_subsys' has no users. Remove this code.
--- arch/arm/mach-exynos/exynos.c | 11 ----------- arch/arm/plat-samsung/include/plat/cpu.h | 1 - 2 files changed, 12 deletions(-)
arch/arm/mach-exynos/exynos.c +0 -11
@@ -308,17 +308,6 @@ void __init exynos_init_io(void)exynos_map_io (); } -struct bus_type exynos_subsys = { - .name ="exynos-core" , - .dev_name ="exynos-core" , -}; - -static int __init exynos_core_init (void ) -{ -return subsys_system_register (&exynos_subsys,NULL ); -} -core_initcall (exynos_core_init); -static int __init exynos4_l2x0_cache_init (void ) {int ret;
arch/arm/plat-samsung/include/plat/cpu.h +0 -1
@@ -239,7 +239,6 @@ extern struct bus_type s3c2443_subsys;extern struct bus_type s3c6410_subsys;extern struct bus_type s5p64x0_subsys;extern struct bus_type s5pv210_subsys; -extern struct bus_type exynos_subsys;extern void (*s5pc1xx_idle)(void );
Signature · 1 line
1.7.9.5
PATCH v2 3/6 ARM: EXYNOS: Migrate Exynos specific macros from plat to mach
In reply to Sachin KamatMove Exynos specific macros to mach-exynos from plat-samsung to avoid unnecessary dependency on plat based header files.
--- arch/arm/mach-exynos/common.h | 72 ++++++++++++++++++++++++++++++ arch/arm/plat-samsung/include/plat/cpu.h | 60 ------------------------- 2 files changed, 72 insertions(+), 60 deletions(-)
arch/arm/mach-exynos/common.h +72 -0
@@ -15,6 +15,75 @@#include <linux/reboot.h> #include <linux/of.h> +#define EXYNOS4210_CPU_ID 0x43210000 +#define EXYNOS4212_CPU_ID 0x43220000 +#define EXYNOS4412_CPU_ID 0xE4412200 +#define EXYNOS4_CPU_MASK 0xFFFE0000 + +#define EXYNOS5250_SOC_ID 0x43520000 +#define EXYNOS5420_SOC_ID 0xE5420000 +#define EXYNOS5440_SOC_ID 0xE5440000 +#define EXYNOS5_SOC_MASK 0xFFFFF000 + +extern unsigned long samsung_cpu_id; + +#define IS_SAMSUNG_CPU (name, id, mask) \ +static inline int is_samsung_##name(void) \ +{ \ + return ((samsung_cpu_id & mask) == (id & mask)); \ +} + +IS_SAMSUNG_CPU(exynos4210, EXYNOS4210_CPU_ID, EXYNOS4_CPU_MASK) +IS_SAMSUNG_CPU(exynos4212, EXYNOS4212_CPU_ID, EXYNOS4_CPU_MASK) +IS_SAMSUNG_CPU(exynos4412, EXYNOS4412_CPU_ID, EXYNOS4_CPU_MASK) +IS_SAMSUNG_CPU(exynos5250, EXYNOS5250_SOC_ID, EXYNOS5_SOC_MASK) +IS_SAMSUNG_CPU(exynos5420, EXYNOS5420_SOC_ID, EXYNOS5_SOC_MASK) +IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK) + +#if defined(CONFIG_CPU_EXYNOS4210 ) +# define soc_is_exynos4210 () is_samsung_exynos4210() +#else +# define soc_is_exynos4210 () 0 +#endif + +#if defined(CONFIG_SOC_EXYNOS4212 ) +# define soc_is_exynos4212 () is_samsung_exynos4212() +#else +# define soc_is_exynos4212 () 0 +#endif + +#if defined(CONFIG_SOC_EXYNOS4412 ) +# define soc_is_exynos4412 () is_samsung_exynos4412() +#else +# define soc_is_exynos4412 () 0 +#endif + +#define EXYNOS4210_REV_0 (0x0) +#define EXYNOS4210_REV_1_0 (0x10) +#define EXYNOS4210_REV_1_1 (0x11) + +#if defined(CONFIG_SOC_EXYNOS5250 ) +# define soc_is_exynos5250 () is_samsung_exynos5250() +#else +# define soc_is_exynos5250 () 0 +#endif + +#if defined(CONFIG_SOC_EXYNOS5420 ) +# define soc_is_exynos5420 () is_samsung_exynos5420() +#else +# define soc_is_exynos5420 () 0 +#endif + +#if defined(CONFIG_SOC_EXYNOS5440 ) +# define soc_is_exynos5440 () is_samsung_exynos5440() +#else +# define soc_is_exynos5440 () 0 +#endif + +#define soc_is_exynos4 () (soc_is_exynos4210() || soc_is_exynos4212() || \ + soc_is_exynos4412()) +#define soc_is_exynos5 () (soc_is_exynos5250() || soc_is_exynos5420()) +void mct_init (void __iomem *base,int irq_g0,int irq_l0,int irq_l1);struct map_desc ;
@@ -63,4 +132,7 @@ struct exynos_pmu_conf {extern void exynos_sys_powerdown_conf (enum sys_powerdown mode); +extern void s5p_init_cpu (void __iomem *cpuid_addr); +extern unsigned int samsung_rev (void ); +#endif /* __ARCH_ARM_MACH_EXYNOS_COMMON_H */
arch/arm/plat-samsung/include/plat/cpu.h +0 -60
78 lines not on this page · raw message
Signature · 1 line
1.7.9.5
PATCH v2 4/6 ARM: EXYNOS: Remove unnecessary inclusion of cpu.h
In reply to Sachin KamatExynos specific macros and declarations have been moved to mach-exynos. Inclusion of plat/cpu.h is no more necessary.
--- arch/arm/mach-exynos/cpuidle.c | 1 - arch/arm/mach-exynos/exynos.c | 2 -- arch/arm/mach-exynos/hotplug.c | 2 -- arch/arm/mach-exynos/platsmp.c | 2 -- arch/arm/mach-exynos/pm.c | 1 - arch/arm/mach-exynos/pmu.c | 2 -- 6 files changed, 10 deletions(-)
arch/arm/mach-exynos/cpuidle.c +0 -1
@@ -24,7 +24,6 @@#include <asm/unified.h> #include <asm/cpuidle.h> -#include <plat/cpu.h> #include <plat/pm.h> #include <mach/map.h>
arch/arm/mach-exynos/exynos.c +0 -2
@@ -26,8 +26,6 @@#include <asm/mach/map.h> #include <asm/memory.h> -#include <plat/cpu.h> -#include "common.h" #include "mfc.h" #include "regs-pmu.h"
arch/arm/mach-exynos/hotplug.c +0 -2
@@ -19,8 +19,6 @@#include <asm/cp15.h> #include <asm/smp_plat.h> -#include <plat/cpu.h> -#include "common.h" #include "regs-pmu.h"
arch/arm/mach-exynos/platsmp.c +0 -2
@@ -26,8 +26,6 @@#include <asm/smp_scu.h> #include <asm/firmware.h> -#include <plat/cpu.h> -#include "common.h" #include "regs-pmu.h"
arch/arm/mach-exynos/pm.c +0 -1
@@ -26,7 +26,6 @@#include <asm/smp_scu.h> #include <asm/suspend.h> -#include <plat/cpu.h> #include <plat/pm-common.h> #include <plat/pll.h> #include <plat/regs-srom.h>
arch/arm/mach-exynos/pmu.c +0 -2
@@ -13,8 +13,6 @@#include <linux/kernel.h> #include <linux/bug.h> -#include <plat/cpu.h> -#include "common.h" #include "regs-pmu.h"
Signature · 1 line
1.7.9.5
PATCH v2 5/6 ARM: EXYNOS: Enable multi-platform build support
In reply to Sachin KamatFrom: Arnd Bergmann <[email protected]>
This makes it possible to enable the exynos platform as part of a multiplatform kernel, in addition to keeping the single-platform Exynos support.
sparsemem is currently not supported in multiplatform.
--- arch/arm/Kconfig | 27 +++------------------------ arch/arm/configs/exynos_defconfig | 2 +- arch/arm/mach-exynos/Kconfig | 27 +++++++++++++++++++++++++++ arch/arm/mach-exynos/Makefile | 2 ++ arch/arm/plat-samsung/Makefile | 3 +++ 5 files changed, 36 insertions(+), 25 deletions(-)
arch/arm/Kconfig +3 -24
@@ -828,34 +828,13 @@ config ARCH_S5PV210 help Samsung S5PV210/S5PC110 series based systems -config ARCH_EXYNOS +config ARCH_EXYNOS_SINGLE bool "Samsung EXYNOS" - select ARCH_HAS_BANDGAP - select ARCH_HAS_CPUFREQ - select ARCH_HAS_HOLES_MEMORYMODEL - select ARCH_REQUIRE_GPIOLIB + select ARCH_EXYNOS select ARCH_SPARSEMEM_ENABLE - select ARM_AMBA - select ARM_GIC - select CLKSRC_OF - select COMMON_CLK - 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 USE_OF help - Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5) + Support for SAMSUNG EXYNOS SoCs (EXYNOS4/5) config ARCH_DAVINCI bool "TI DaVinci"
arch/arm/configs/exynos_defconfig +1 -1
@@ -7,7 +7,7 @@ CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y # CONFIG_BLK_DEV_BSG is not set CONFIG_PARTITION_ADVANCED=y -CONFIG_ARCH_EXYNOS=y +CONFIG_ARCH_EXYNOS_SINGLE=y CONFIG_S3C_LOWLEVEL_UART_PORT=3 CONFIG_S3C24XX_PWM=y CONFIG_ARCH_EXYNOS5=y
arch/arm/mach-exynos/Kconfig +27 -0
@@ -7,6 +7,33 @@ # 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 + 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 USE_OF + help + Support for SAMSUNG EXYNOS SoCs (EXYNOS4/5) + if ARCH_EXYNOS menu "SAMSUNG EXYNOS SoCs Support"
arch/arm/mach-exynos/Makefile +2 -0
@@ -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 :=
arch/arm/plat-samsung/Makefile +3 -0
@@ -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
Signature · 1 line
1.7.9.5
PATCH v2 5/6 ARM: EXYNOS: Enable multi-platform build support
Hi Sachin,
Quoted 6 lines · Sachin Kamat
From: Arnd Bergmann <[email protected]>
This makes it possible to enable the exynos platform as part of a multiplatform kernel, in addition to keeping the single-platform Exynos support.
sparsemem is currently not supported in multiplatform.
Is this still true as of today?
Otherwise looks fine.
Best regards,
Tomasz
PATCH 5/6 ARM: EXYNOS: Enable multi-platform build support
Quoted 11 lines · On Wednesday 16 April 2014 15:51:29 Tomasz Figa wrote:
Quoted 6 lines · Sachin Kamat
From: Arnd Bergmann <[email protected]>
This makes it possible to enable the exynos platform as part of a multiplatform kernel, in addition to keeping the single-platform Exynos support.
sparsemem is currently not supported in multiplatform.Is this still true as of today?
Otherwise looks fine.
sparsemem is still not supported in multiplatform, but after I looked at it in more detail, I came to the conclusion that there is no reason why it couldn't be. It just needs testing so we are confident that it doesn't break other platforms, and we need to find good platform-independent values for MAX_PHYSMEM_BITS and SECTION_SIZE_BITS to put into asm/memory.h, since we can't have them set in mach/memory.h for multiplatform.
Looking at my patch again now, I would actually prefer to kill off the single-platform support for exynos right away. I don't see any reason to keep it now, and it complicates the test matrix.
Arnd
PATCH v2 5/6 ARM: EXYNOS: Enable multi-platform build support
Quoted 21 lines · Arnd Bergmann
Quoted 11 lines · On Wednesday 16 April 2014 15:51:29 Tomasz Figa wrote:
Quoted 6 lines · Sachin Kamat
From: Arnd Bergmann <[email protected]>
This makes it possible to enable the exynos platform as part of a multiplatform kernel, in addition to keeping the single-platform Exynos support.
sparsemem is currently not supported in multiplatform.Is this still true as of today?
Otherwise looks fine.
sparsemem is still not supported in multiplatform, but after I looked at it in more detail, I came to the conclusion that there is no reason why it couldn't be. It just needs testing so we are confident that it doesn't break other platforms, and we need to find good platform-independent values for
MAX_PHYSMEM_BITSandSECTION_SIZE_BITSto put intoasm/memory.h, since we can't have them set inmach/memory.hfor multiplatform.
Quoted 3 lines
Looking at my patch again now, I would actually prefer to kill off the single-platform support for exynos right away. I don't see any reason to keep it now, and it complicates the test matrix.
That would be the best option, assuming that it wouldn't introduce feature regressions. Unfortunately there is still ongoing work on cpufreq driver to make it multiplatform-aware, so dropping single platform support right now would introduce at least this one regression.
Thomas, is there any progress on new version of Exynos cpufreq rework series?
Best regards,
Tomasz
PATCH 5/6 ARM: EXYNOS: Enable multi-platform build support
Quoted 32 lines · Tomasz Figa
Quoted 26 lines · Arnd Bergmann
Quoted 11 lines · On Wednesday 16 April 2014 15:51:29 Tomasz Figa wrote:
Quoted 7 lines · Sachin Kamat
From: Arnd Bergmann <[email protected]>
This makes it possible to enable the exynos platform as part of a multiplatform kernel, in addition to keeping the single-platform Exynos support.
sparsemem is currently not supported in multiplatform.Quoted 3 lines
Is this still true as of today?
Otherwise looks fine.
sparsemem is still not supported in multiplatform, but after I looked at it in more detail, I came to the conclusion that there is no reason why it couldn't be. It just needs testing so we are confident that it doesn't break other platforms, and we need to find good platform-independent values for
MAX_PHYSMEM_BITSandSECTION_SIZE_BITSto put intoasm/memory.h, since we can't have them set inmach/memory.hfor multiplatform.Quoted 3 lines
Looking at my patch again now, I would actually prefer to kill off the single-platform support for exynos right away. I don't see any reason to keep it now, and it complicates the test matrix.
Quoted 7 lines
That would be the best option, assuming that it wouldn't introduce feature regressions. Unfortunately there is still ongoing work on cpufreq driver to make it multiplatform-aware, so dropping single platform support right now would introduce at least this one regression.
Thomas, is there any progress on new version of Exynos cpufreq rework series?
Hi Tomasz,
Yes, I am preparing the fourth version of the cpufreq patches and will post it next week. Mostly, the changes will be addressing your review comments.
Thanks,
Thomas.
Quoted 3 lines
Best regards,
Tomasz
PATCH v2 5/6 ARM: EXYNOS: Enable multi-platform build support
Hi Thomas,
Quoted 38 lines · Thomas Abraham
Quoted 37 lines · Tomasz Figa
Quoted 26 lines · Arnd Bergmann
Quoted 11 lines · On Wednesday 16 April 2014 15:51:29 Tomasz Figa wrote:
Quoted 7 lines · Sachin Kamat
From: Arnd Bergmann <[email protected]>
This makes it possible to enable the exynos platform as part of a multiplatform kernel, in addition to keeping the single-platform Exynos support.
sparsemem is currently not supported in multiplatform.Quoted 3 lines
Is this still true as of today?
Otherwise looks fine.
sparsemem is still not supported in multiplatform, but after I looked at it in more detail, I came to the conclusion that there is no reason why it couldn't be. It just needs testing so we are confident that it doesn't break other platforms, and we need to find good platform-independent values for
MAX_PHYSMEM_BITSandSECTION_SIZE_BITSto put intoasm/memory.h, since we can't have them set inmach/memory.hfor multiplatform.Quoted 3 lines
Looking at my patch again now, I would actually prefer to kill off the single-platform support for exynos right away. I don't see any reason to keep it now, and it complicates the test matrix.
That would be the best option, assuming that it wouldn't introduce feature regressions. Unfortunately there is still ongoing work on cpufreq driver to make it multiplatform-aware, so dropping single platform support right now would introduce at least this one regression.
Quoted 8 lines
Quoted 2 lines
Thomas, is there any progress on new version of Exynos cpufreq rework series?
Hi Tomasz,
Yes, I am preparing the fourth version of the cpufreq patches and will post it next week. Mostly, the changes will be addressing your review comments.
OK. Looking forward to it. Thanks for an update on this.
Best regards,
Tomasz
PATCH 5/6 ARM: EXYNOS: Enable multi-platform build support
Quoted 24 lines · On Wednesday 16 April 2014 16:58:43 Tomasz Figa wrote:
Quoted 23 lines · Thomas Abraham
Quoted 21 lines · Tomasz Figa
Quoted 11 lines · Arnd Bergmann
sparsemem is still not supported in multiplatform, but after I looked at it in more detail, I came to the conclusion that there is no reason why it couldn't be. It just needs testing so we are confident that it doesn't break other platforms, and we need to find good platform-independent values for
MAX_PHYSMEM_BITSandSECTION_SIZE_BITSto put intoasm/memory.h, since we can't have them set inmach/memory.hfor multiplatform.Looking at my patch again now, I would actually prefer to kill off the single-platform support for exynos right away. I don't see any reason to keep it now, and it complicates the test matrix.
That would be the best option, assuming that it wouldn't introduce feature regressions. Unfortunately there is still ongoing work on cpufreq driver to make it multiplatform-aware, so dropping single platform support right now would introduce at least this one regression.
Thomas, is there any progress on new version of Exynos cpufreq rework series?
Quoted 8 lines
Quoted 5 lines
Hi Tomasz,
Yes, I am preparing the fourth version of the cpufreq patches and will post it next week. Mostly, the changes will be addressing your review comments.
OK. Looking forward to it. Thanks for an update on this.
Cool! This is the only major issue I'm aware of, so I think we're good.
If SPARSEMEM support is still relevant to anybody, I'm sure we can get that to work as well.
There is one small issue with the sound drivers that came up, and I assume it was just a mistake. If not, some more work on that might be needed. See patch below.
Arnd
8<-------
Quoted 1 line
From
6f3921c3218509114e855a8ea5932aeea5d3ddfdMon Sep 17 00:00:00 2001
From: Arnd Bergmann <[email protected]>
Date: Tue, 18 Mar 2014 17:04:59 +0100
Subject: [PATCH] ASoC: samsung: don't build pcm and spdif on exynos
In commit d37bdf736d9b "ASoC: samsung: Use ASoC dmaengine code where possible", Mark Brown changed the EXYNOS ASoC code to no longer use the private dma interfaces that are standing in the way of multiplatform enablement.
However, in 313367e7bfa "ASoC: Samsung: Update Kconfig for I2S,SPDIF and PCM audio", two new users of that interface appeared, since it is now possible to enable SND_SOC_SAMSUNG_SMDK_SPDIF and SND_SOC_SMDK_WM8994_PCM on all Samsung SoCs including EXYNOS.
This patch does a partial revert of 313367e7bfa by allowing these drivers on all samsung platforms except EXYNOS, so we can proceed with the multiplatform patches.
If support for these drivers is actually needed on EXYNOS machines, the drivers should first be moved over to use the dmaengine code.
sound/soc/samsung/Kconfig +2 -2
@@ -167,7 +167,7 @@ config SND_SOC_GONI_AQUILA_WM8994 config SND_SOC_SAMSUNG_SMDK_SPDIF tristate "SoC S/PDIF Audio support for SMDK" - depends on SND_SOC_SAMSUNG + depends on SND_SOC_SAMSUNG && !ARCH_EXYNOS select SND_SAMSUNG_SPDIF help Say Y if you want to add support for SoC S/PDIF audio on the SMDK.
@@ -183,7 +183,7 @@ config SND_SOC_SMDK_WM8580_PCM config SND_SOC_SMDK_WM8994_PCM tristate "SoC PCM Audio support for WM8994 on SMDK" - depends on SND_SOC_SAMSUNG + depends on SND_SOC_SAMSUNG && !ARCH_EXYNOS depends on I2C=y select MFD_WM8994 select SND_SOC_WM8994
Mark Brown
maintainerPATCH 5/6 ARM: EXYNOS: Enable multi-platform build support
Quoted 6 lines · Arnd Bergmann
This patch does a partial revert of
313367e7bfaby allowing these drivers on all samsung platforms except EXYNOS, so we can proceed with the multiplatform patches.If support for these drivers is actually needed on EXYNOS machines, the drivers should first be moved over to use the dmaengine code.
I would be surprised if neither IP is present on any Exynos SoC, they
were added in the s5p range. Is Sachin's fix for building these
(present in -rc1) not doing the job?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20140416/9ef060de/attachment.sig>
PATCH 5/6 ARM: EXYNOS: Enable multi-platform build support
Quoted 6 lines · On Wednesday 16 April 2014 21:50:01 Mark Brown wrote:
Quoted 3 lines · Arnd Bergmann
This patch does a partial revert of
313367e7bfaby allowing these drivers on all samsung platforms except EXYNOS, so we can proceed with the multiplatform patches.
Quoted 6 lines
Quoted 2 lines
If support for these drivers is actually needed on EXYNOS machines, the drivers should first be moved over to use the dmaengine code.
I would be surprised if neither IP is present on any Exynos SoC, they were added in the s5p range. Is Sachin's fix for building these (present in -rc1) not doing the job?
I hadn't noticed that patch, it probably does, so nevermind.
Arnd
PATCH 5/6 ARM: EXYNOS: Enable multi-platform build support
In reply to Sachin KamatQuoted 46 lines · Sachin Kamat
From: Arnd Bergmann <[email protected]>
This makes it possible to enable the exynos platform as part of a multiplatform kernel, in addition to keeping the single-platform Exynos support.
sparsemem is currently not supported in multiplatform.Signed-off-by Arnd Bergmann <[email protected]>Signed-off-by Sachin Kamat <[email protected]>--- arch/arm/Kconfig | 27 +++------------------------ arch/arm/configs/exynos_defconfig | 2 +- arch/arm/mach-exynos/Kconfig | 27 +++++++++++++++++++++++++++ arch/arm/mach-exynos/Makefile | 2 ++ arch/arm/plat-samsung/Makefile | 3 +++ 5 files changed, 36 insertions(+), 25 deletions(-)arch/arm/Kconfig +2
-16@@ -828,34 +828,13 @@ config ARCH_S5PV210 help Samsung S5PV210/S5PC110 series based systems -config ARCH_EXYNOS +config ARCH_EXYNOS_SINGLE bool "Samsung EXYNOS" - select ARCH_HAS_BANDGAP - select ARCH_HAS_CPUFREQ - select ARCH_HAS_HOLES_MEMORYMODEL - select ARCH_REQUIRE_GPIOLIB + select ARCH_EXYNOS select ARCH_SPARSEMEM_ENABLE - select ARM_AMBA - select ARM_GIC - select CLKSRC_OF - select COMMON_CLK - 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
arch/arm/Kconfig config ARCH_S5PV210 · line 837
Quoted 10 lines
arch/arm/Kconfig +1
-8- select PINCTRL - select PINCTRL_EXYNOS - select PM_GENERIC_DOMAINS if PM_RUNTIME - select S5P_DEV_MFC - select SAMSUNG_DMADEV - select SPARSE_IRQ - select USE_OF help - Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5) + Support for SAMSUNG EXYNOS SoCs (EXYNOS4/5)
I don't think there's a point in keeping this around. A "single-platform" config is just enabling a single platform in the config, it's not a specific option. I don't think any of the other platforms use anything like this today.
-Olof
PATCH 5/6 ARM: EXYNOS: Enable multi-platform build support
Quoted 4 lines · Olof Johansson
I don't think there's a point in keeping this around. A "single-platform" config is just enabling a single platform in the config, it's not a specific option. I don't think any of the other platforms use anything like this today.
The only one doing that is shmobile, but only because they have some SoCs that are multiplatform capable and some that are not. This isn't the case for Exynos, so it should no longer be needed.
When I originally created this patch 18 months ago, there were a number of drivers that broke when multiplatform got enabled. Now the cpufreq driver is the only one left, but it seems that it will make it for 3.16, and I wouldn't wait for it if it doesn't. Let's just do multiplatform-only.
Arnd
PATCH v2 5/6 ARM: EXYNOS: Enable multi-platform build support
Quoted 11 lines · Arnd Bergmann
Quoted 4 lines · Olof Johansson
I don't think there's a point in keeping this around. A "single-platform" config is just enabling a single platform in the config, it's not a specific option. I don't think any of the other platforms use anything like this today.
The only one doing that is shmobile, but only because they have some SoCs that are multiplatform capable and some that are not. This isn't the case for Exynos, so it should no longer be needed.
Quoted 6 lines
When I originally created this patch 18 months ago, there were a number of drivers that broke when multiplatform got enabled. Now the cpufreq driver is the only one left, but it seems that it will make it for 3.16, and I wouldn't wait for it if it doesn't. Let's just do multiplatform-only.
In my position in S.LSI, I'd like to keep the current ARCH_EXYNOS4 and EXYNOS5 because IMHO selecting each series would be helpful on real product, multiplatform is available though. Additionally EXYNOS3 is being added.
It's true we can support exynos-multiplatform even though above options are included...
Thanks,
Kukjin
PATCH 5/6 ARM: EXYNOS: Enable multi-platform build support
Quoted 18 lines · On Tuesday 13 May 2014 13:37:33 Kukjin Kim wrote:
Quoted 11 lines · Arnd Bergmann
Quoted 4 lines · Olof Johansson
I don't think there's a point in keeping this around. A "single-platform" config is just enabling a single platform in the config, it's not a specific option. I don't think any of the other platforms use anything like this today.
The only one doing that is shmobile, but only because they have some SoCs that are multiplatform capable and some that are not. This isn't the case for Exynos, so it should no longer be needed.
Quoted 6 lines
When I originally created this patch 18 months ago, there were a number of drivers that broke when multiplatform got enabled. Now the cpufreq driver is the only one left, but it seems that it will make it for 3.16, and I wouldn't wait for it if it doesn't. Let's just do multiplatform-only.
Quoted 6 lines
In my position in S.LSI, I'd like to keep the current
ARCH_EXYNOS4and EXYNOS5 because IMHO selecting each series would be helpful on real product, multiplatform is available though. Additionally EXYNOS3 is being added.It's true we can support exynos-multiplatform even though above options are included...
I think we are talking about different questions here:
What Olof and I mean is we don't want to have an ARCH_EXYNOS_SINGLE option that is there for building EXYNOS but not allowing any other SoC.
What I think you mean is that you want the individual EXYNOS versions to be separate Kconfig options, so you can build a kernel that supports EXYNOS4 but not EXYNOS5 if you want to. This is totally fine as far as I'm concerned, and it's not directly related to the first point.
Note that if you enable LPAE, you will still only be able to build EXYNOS5 after the patch, but then you can have it in the same kernel as e.g. Tegra4 and Snapdragon 600.
Arnd
PATCH 5/6 ARM: EXYNOS: Enable multi-platform build support
Quoted 23 lines · Arnd Bergmann
Quoted 22 lines · On Tuesday 13 May 2014 13:37:33 Kukjin Kim wrote:
Quoted 11 lines · Arnd Bergmann
Quoted 4 lines · Olof Johansson
I don't think there's a point in keeping this around. A "single-platform" config is just enabling a single platform in the config, it's not a specific option. I don't think any of the other platforms use anything like this today.
The only one doing that is shmobile, but only because they have some SoCs that are multiplatform capable and some that are not. This isn't the case for Exynos, so it should no longer be needed.
Quoted 6 lines
When I originally created this patch 18 months ago, there were a number of drivers that broke when multiplatform got enabled. Now the cpufreq driver is the only one left, but it seems that it will make it for 3.16, and I wouldn't wait for it if it doesn't. Let's just do multiplatform-only.
In my position in S.LSI, I'd like to keep the current
ARCH_EXYNOS4and EXYNOS5 because IMHO selecting each series would be helpful on real product, multiplatform is available though. Additionally EXYNOS3 is being added.
Quoted 7 lines
Quoted 2 lines
It's true we can support exynos-multiplatform even though above options are included...
I think we are talking about different questions here:
What Olof and I mean is we don't want to have an
ARCH_EXYNOS_SINGLEoption that is there for building EXYNOS but not allowing any other SoC.
Yes. i.e. the only way forward is multiplatform _only_. _BUT_ you can choose to disable all other platforms in a kernel, and thus turn it into a single-platform build. That's fine. What we don't want is added logic like the EXYNOS_SINGLE Kconfig was, just to do that.
Quoted 4 lines
What I think you mean is that you want the individual EXYNOS versions to be separate
Kconfigoptions, so you can build a kernel that supports EXYNOS4 but not EXYNOS5 if you want to. This is totally fine as far as I'm concerned, and it's not directly related to the first point.
I'm also OK with that, but please don't make it more granular than per family if you can avoid it.
Quoted 3 lines
Note that if you enable LPAE, you will still only be able to build EXYNOS5 after the patch, but then you can have it in the same kernel as e.g. Tegra4 and Snapdragon 600.
Yep, and that's as expected.
-Olof
PATCH v2 5/6 ARM: EXYNOS: Enable multi-platform build support
Quoted 25 lines · Olof Johansson
Quoted 23 lines · Arnd Bergmann
Quoted 22 lines · On Tuesday 13 May 2014 13:37:33 Kukjin Kim wrote:
Quoted 11 lines · Arnd Bergmann
Quoted 4 lines · Olof Johansson
I don't think there's a point in keeping this around. A "single-platform" config is just enabling a single platform in the config, it's not a specific option. I don't think any of the other platforms use anything like this today.
The only one doing that is shmobile, but only because they have some SoCs that are multiplatform capable and some that are not. This isn't the case for Exynos, so it should no longer be needed.
Quoted 6 lines
When I originally created this patch 18 months ago, there were a number of drivers that broke when multiplatform got enabled. Now the cpufreq driver is the only one left, but it seems that it will make it for 3.16, and I wouldn't wait for it if it doesn't. Let's just do multiplatform-only.
In my position in S.LSI, I'd like to keep the current
ARCH_EXYNOS4and EXYNOS5 because IMHO selecting each series would be helpful on real product, multiplatform is available though. Additionally EXYNOS3 is being added.
Quoted 5 lines
Quoted 5 lines
Quoted 2 lines
It's true we can support exynos-multiplatform even though above options are included...
I think we are talking about different questions here:
Thanks for your clarification.
Quoted 3 lines
Quoted 2 lines
What Olof and I mean is we don't want to have an
ARCH_EXYNOS_SINGLEoption that is there for building EXYNOS but not allowing any other SoC.
Yes and agreed ;-)
Quoted 5 lines
Yes. i.e. the only way forward is multiplatform _only_. _BUT_ you can choose to disable all other platforms in a kernel, and thus turn it into a single-platform build. That's fine. What we don't want is added logic like the
EXYNOS_SINGLEKconfigwas, just to do that.
Sure.
Quoted 5 lines
Quoted 4 lines
What I think you mean is that you want the individual EXYNOS versions to be separate
Kconfigoptions, so you can build a kernel that supports EXYNOS4 but not EXYNOS5 if you want to. This is totally fine as far as I'm concerned, and it's not directly related to the first point.
OK, thanks :-)
Quoted 3 lines
I'm also OK with that, but please don't make it more granular than per family if you can avoid it.
Sure.
Quoted 6 lines
Quoted 3 lines
Note that if you enable LPAE, you will still only be able to build EXYNOS5 after the patch, but then you can have it in the same kernel as e.g. Tegra4 and Snapdragon 600.
Yep, and that's as expected.
OK.
Thanks,
Kukjin
PATCH v2 6/6 ARM: multi_v7_defconfig: Enable Exynos platform
In reply to Sachin KamatEnable Exynos platform and its related IPs.
--- arch/arm/configs/multi_v7_defconfig | 10 ++++++++++ 1 file changed, 10 insertions(+)
arch/arm/configs/multi_v7_defconfig +10 -0
@@ -47,6 +47,7 @@ CONFIG_ARCH_SPEAR13XX=y CONFIG_MACH_SPEAR1310=y CONFIG_MACH_SPEAR1340=y CONFIG_ARCH_STI=y +CONFIG_ARCH_EXYNOS=y CONFIG_ARCH_SUNXI=y CONFIG_ARCH_SIRF=y CONFIG_ARCH_TEGRA=y
@@ -71,6 +72,7 @@ CONFIG_PCI_MSI=y CONFIG_PCI_MVEBU=y CONFIG_PCI_TEGRA=y CONFIG_SMP=y +CONFIG_NR_CPUS=8 CONFIG_HIGHPTE=y CONFIG_CMA=y CONFIG_ARM_APPENDED_DTB=y
@@ -153,6 +155,8 @@ CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_DW=y CONFIG_SERIAL_AMBA_PL011=y CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_SAMSUNG=y +CONFIG_SERIAL_SAMSUNG_CONSOLE=y CONFIG_SERIAL_SIRFSOC=y CONFIG_SERIAL_SIRFSOC_CONSOLE=y CONFIG_SERIAL_TEGRA=y
@@ -176,6 +180,7 @@ CONFIG_I2C_MUX=y CONFIG_I2C_MUX_PCA954x=y CONFIG_I2C_MUX_PINCTRL=y CONFIG_I2C_DESIGNWARE_PLATFORM=y +CONFIG_I2C_EXYNOS5=y CONFIG_I2C_MV64XXX=y CONFIG_I2C_SIRF=y CONFIG_I2C_TEGRA=y
@@ -210,6 +215,7 @@ CONFIG_MFD_AS3722=y CONFIG_MFD_CROS_EC=y CONFIG_MFD_CROS_EC_SPI=y CONFIG_MFD_MAX8907=y +CONFIG_MFD_SEC_CORE=y CONFIG_MFD_PALMAS=y CONFIG_MFD_TPS65090=y CONFIG_MFD_TPS6586X=y
@@ -220,6 +226,8 @@ CONFIG_REGULATOR_AS3722=y CONFIG_REGULATOR_GPIO=y CONFIG_REGULATOR_MAX8907=y CONFIG_REGULATOR_PALMAS=y +CONFIG_REGULATOR_S2MPS11=y +CONFIG_REGULATOR_S5M8767=y CONFIG_REGULATOR_TPS51632=y CONFIG_REGULATOR_TPS62360=y CONFIG_REGULATOR_TPS65090=y
@@ -280,6 +288,8 @@ CONFIG_MMC_SDHCI_BCM_KONA=y CONFIG_MMC_OMAP=y CONFIG_MMC_OMAP_HS=y CONFIG_MMC_MVSDIO=y +CONFIG_MMC_DW=y +CONFIG_MMC_DW_EXYNOS=y CONFIG_EDAC=y CONFIG_EDAC_MM_EDAC=y CONFIG_EDAC_HIGHBANK_MC=y
Signature · 1 line
1.7.9.5
v2 cover Further cleanup and enable multiplat build
In reply to Sachin KamatHi Sachin,
Quoted 22 lines · Sachin Kamat
This series is based on latest linux-next and depends on the following patch:
ARM: EXYNOS: ConsolidateKconfigentries
http://article.gmane.org/gmane.linux.kernel.samsung-soc/28642Changes since v2:
Replaced patch 2, "ARM: EXYNOS: Staticizeexynos_subsys" with "ARM: EXYNOS: Removeexynos_subsysregistration" as that code is no more used.Tested on Exynos4210, 4412, 5250 and 5420 based boards.
Arnd Bergmann (1):
ARM: EXYNOS: Enable multi-platform build supportSachin Kamat (5):
ARM: EXYNOS: Remove duplicate lines inMakefile
ARM: EXYNOS: Removeexynos_subsysregistration
ARM: EXYNOS: Migrate Exynos specific macros from plat to mach
ARM: EXYNOS: Remove unnecessary inclusion ofcpu.h
ARM:multi_v7_defconfig: Enable Exynos platform
Quoted 16 lines
arch/arm/Kconfig | 27 ++--------- arch/arm/configs/exynos_defconfig | 2 +- arch/arm/configs/multi_v7_defconfig | 10 +++++ arch/arm/mach-exynos/Kconfig | 27 +++++++++++ arch/arm/mach-exynos/Makefile | 9 ++-- arch/arm/mach-exynos/common.h | 72 ++++++++++++++++++++++++++++++ arch/arm/mach-exynos/cpuidle.c | 1 - arch/arm/mach-exynos/exynos.c | 13 ------ arch/arm/mach-exynos/hotplug.c | 2 - arch/arm/mach-exynos/platsmp.c | 2 - arch/arm/mach-exynos/pm.c | 1 - arch/arm/mach-exynos/pmu.c | 2 - arch/arm/plat-samsung/Makefile | 3 ++ arch/arm/plat-samsung/include/plat/cpu.h | 61 ------------------------- 14 files changed, 119 insertions(+), 113 deletions(-)
For the whole series:
--
Best regards,
Tomasz
v2 cover Further cleanup and enable multiplat build
Quoted 46 lines · Tomasz Figa
Hi Sachin,
Quoted 32 lines · Sachin Kamat
This series is based on latest linux-next and depends on the following patch:
ARM: EXYNOS: ConsolidateKconfigentries
http://article.gmane.org/gmane.linux.kernel.samsung-soc/28642Changes since v2:
Replaced patch 2, "ARM: EXYNOS: Staticizeexynos_subsys" with "ARM: EXYNOS: Removeexynos_subsysregistration" as that code is no more used.Tested on Exynos4210, 4412, 5250 and 5420 based boards.
Arnd Bergmann (1):
ARM: EXYNOS: Enable multi-platform build supportSachin Kamat (5):
ARM: EXYNOS: Remove duplicate lines inMakefile
ARM: EXYNOS: Removeexynos_subsysregistration
ARM: EXYNOS: Migrate Exynos specific macros from plat to mach
ARM: EXYNOS: Remove unnecessary inclusion ofcpu.h
ARM:multi_v7_defconfig: Enable Exynos platformarch/arm/Kconfig | 27 ++--------- arch/arm/configs/exynos_defconfig | 2 +- arch/arm/configs/multi_v7_defconfig | 10 +++++ arch/arm/mach-exynos/Kconfig | 27 +++++++++++ arch/arm/mach-exynos/Makefile | 9 ++-- arch/arm/mach-exynos/common.h | 72 ++++++++++++++++++++++++++++++ arch/arm/mach-exynos/cpuidle.c | 1 - arch/arm/mach-exynos/exynos.c | 13 ------Quoted 9 lines
arch/arm/mach-exynos/hotplug.c | 2 - arch/arm/mach-exynos/platsmp.c | 2 - arch/arm/mach-exynos/pm.c | 1 - arch/arm/mach-exynos/pmu.c | 2 - arch/arm/plat-samsung/Makefile | 3 ++ arch/arm/plat-samsung/include/plat/cpu.h | 61 ------------------------- 14 files changed, 119 insertions(+), 113 deletions(-)
Quoted 3 lines
For the whole series:
Reviewed-by Tomasz Figa <[email protected]>
Kukjin,
Can you please apply the first 4 patches in this series for now?
Signature · 2 lines
With warm regards, Sachin
v2 cover Further cleanup and enable multiplat build
Quoted 47 lines · Sachin Kamat
Quoted 46 lines · Tomasz Figa
Hi Sachin,
Quoted 41 lines · Sachin Kamat
This series is based on latest linux-next and depends on the following patch:
ARM: EXYNOS: ConsolidateKconfigentries
http://article.gmane.org/gmane.linux.kernel.samsung-soc/28642Changes since v2:
Replaced patch 2, "ARM: EXYNOS: Staticizeexynos_subsys" with "ARM: EXYNOS: Removeexynos_subsysregistration" as that code is no more used.Tested on Exynos4210, 4412, 5250 and 5420 based boards.
Arnd Bergmann (1):
ARM: EXYNOS: Enable multi-platform build supportSachin Kamat (5):
ARM: EXYNOS: Remove duplicate lines inMakefile
ARM: EXYNOS: Removeexynos_subsysregistration
ARM: EXYNOS: Migrate Exynos specific macros from plat to mach
ARM: EXYNOS: Remove unnecessary inclusion ofcpu.h
ARM:multi_v7_defconfig: Enable Exynos platformarch/arm/Kconfig | 27 ++--------- arch/arm/configs/exynos_defconfig | 2 +- arch/arm/configs/multi_v7_defconfig | 10 +++++ arch/arm/mach-exynos/Kconfig | 27 +++++++++++ arch/arm/mach-exynos/Makefile | 9 ++-- arch/arm/mach-exynos/common.h | 72 ++++++++++++++++++++++++++++++ arch/arm/mach-exynos/cpuidle.c | 1 - arch/arm/mach-exynos/exynos.c | 13 ------ arch/arm/mach-exynos/hotplug.c | 2 - arch/arm/mach-exynos/platsmp.c | 2 - arch/arm/mach-exynos/pm.c | 1 - arch/arm/mach-exynos/pmu.c | 2 - arch/arm/plat-samsung/Makefile | 3 ++ arch/arm/plat-samsung/include/plat/cpu.h | 61 ------------------------- 14 files changed, 119 insertions(+), 113 deletions(-)
Quoted 8 lines
Quoted 3 lines
For the whole series:
Reviewed-by Tomasz Figa<[email protected]>Kukjin,
Can you please apply the first 4 patches in this series for now?
Yes, I've applied the first 4 patches just now and I need to look at the 5/6 patch...
Thanks,
Kukjin