Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1317589 > unrolled thread
| Started by | Krzysztof Kozlowski <k.kozlowski@samsung.com> |
|---|---|
| First post | 2016-01-26 09:10 +0100 |
| Last post | 2016-01-27 10:20 +0100 |
| Articles | 4 — 1 participant |
Back to article view | Back to linux.kernel
[PATCH v3 0/3] arm64/clk: EXYNOS: Consolidate Exynos7 symbol Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-01-26 09:10 +0100
[PATCH v3 1/3] clk: samsung: Enable COMPILE_TEST for Samsung clocks Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-01-26 09:10 +0100
[PATCH v3 3/3] arm64: EXYNOS: Consolidate ARCH_EXYNOS7 symbol into ARCH_EXYNOS Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-01-26 09:10 +0100
Re: [PATCH v3 0/3] arm64/clk: EXYNOS: Consolidate Exynos7 symbol Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-01-27 10:20 +0100
| From | Krzysztof Kozlowski <k.kozlowski@samsung.com> |
|---|---|
| Date | 2016-01-26 09:10 +0100 |
| Subject | [PATCH v3 0/3] arm64/clk: EXYNOS: Consolidate Exynos7 symbol |
| Message-ID | <qV6Rj-1gU-3@gated-at.bofh.it> |
Hi, Third attempt to remove ARCH_EXYNOS7 symbol. Patches cannot be cherry-picked. I was thinking about merging this through arm-soc tree after getting needed acks (clk, arm-soc?). Changes since v2: ================= 1. Follow Arnd's advice about not enabling silently the newly added EXYNOS_ARM64_COMMON_CLK, when COMPILE_TEST is enabled. This was also a trigger for some changes in placement of Samsung clocks Kconfig entries... 2. ... which lead to introducing patch 1. Logic: ====== Now the clock selection algorithm works like: 1. For Exynos ARMv7 and ARMv8 the platforms select COMMON_CLK and COMMON_CLK_SAMSUNG. 2. As before: clock drivers for Exynos ARMv7 will be selected by respective SOC/ARCH_EXYNOS_XXX symbol. 3. For Exynos ARMv8 the clock drivers will be enabled by default by EXYNOS_ARM64_COMMON_CLK symbol. Rationale: ========== We don't need ARCH_EXYNOS7 symbol because all ARMv8 platforms should fall under generic ARCH_EXYNOS. In the same time there is no sense in building clocks for these ARMv8 SoCs on ARMv7 builds. In future this will also influence PMU [1] driver. Best regards, Krzysztof [1] https://www.mail-archive.com/linux-samsung-soc@vger.kernel.org/msg48090.html Krzysztof Kozlowski (3): clk: samsung: Enable COMPILE_TEST for Samsung clocks clk: samsung: Don't build ARMv8 clock drivers on ARMv7 arm64: EXYNOS: Consolidate ARCH_EXYNOS7 symbol into ARCH_EXYNOS arch/arm/Kconfig | 1 + arch/arm/mach-exynos/Kconfig | 1 + arch/arm/mach-s3c24xx/Kconfig | 8 ++++++++ arch/arm/mach-s5pv210/Kconfig | 1 + arch/arm64/Kconfig.platforms | 12 +++--------- arch/arm64/boot/dts/exynos/Makefile | 2 +- arch/arm64/configs/defconfig | 2 +- drivers/clk/Kconfig | 2 +- drivers/clk/samsung/Kconfig | 14 +++++++++----- drivers/clk/samsung/Makefile | 4 ++-- 10 files changed, 28 insertions(+), 19 deletions(-) -- 1.9.1
[toc] | [next] | [standalone]
| From | Krzysztof Kozlowski <k.kozlowski@samsung.com> |
|---|---|
| Date | 2016-01-26 09:10 +0100 |
| Subject | [PATCH v3 1/3] clk: samsung: Enable COMPILE_TEST for Samsung clocks |
| Message-ID | <qV6Rk-1gU-9@gated-at.bofh.it> |
| In reply to | #1317589 |
Enable the COMPILE_TEST to get build coverage of some of Samsung clock controller drivers. Still some of them will ne built only if approppriate SoC is chosen (like SOC_EXYNOS4415 or ARCH_S3C64XX). Anyway in case of COMPILE_TEST the Samsung clocks would show up in main drivers section because they are not inside the "Common Clock Framework" menu item. Move them under the "Common Clock Framework". This changes the logic of selecting Samsung clocks from specific architectures. Now the COMMON_CLK should be selected before selecting specific clock (like S3C2410_COMMON_CLK or COMMON_CLK_SAMSUNG). Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> --- Changes since v2: New patch. --- arch/arm/Kconfig | 1 + arch/arm/mach-exynos/Kconfig | 1 + arch/arm/mach-s3c24xx/Kconfig | 8 ++++++++ arch/arm/mach-s5pv210/Kconfig | 1 + arch/arm64/Kconfig.platforms | 1 + drivers/clk/Kconfig | 2 +- drivers/clk/samsung/Kconfig | 9 ++++----- 7 files changed, 17 insertions(+), 6 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index a5d416ec1d01..0bf888a4515a 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -691,6 +691,7 @@ config ARCH_S3C64XX select ATAGS select CLKDEV_LOOKUP select CLKSRC_SAMSUNG_PWM + select COMMON_CLK select COMMON_CLK_SAMSUNG select CPU_V6K select GENERIC_CLOCKEVENTS diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig index 2098e0a3c48b..9749afe0e0a7 100644 --- a/arch/arm/mach-exynos/Kconfig +++ b/arch/arm/mach-exynos/Kconfig @@ -14,6 +14,7 @@ menuconfig ARCH_EXYNOS select ARCH_REQUIRE_GPIOLIB select ARM_AMBA select ARM_GIC + select COMMON_CLK select COMMON_CLK_SAMSUNG select EXYNOS_THERMAL select EXYNOS_SROM if PM diff --git a/arch/arm/mach-s3c24xx/Kconfig b/arch/arm/mach-s3c24xx/Kconfig index ef68ecb27396..5f02f1fa970d 100644 --- a/arch/arm/mach-s3c24xx/Kconfig +++ b/arch/arm/mach-s3c24xx/Kconfig @@ -28,6 +28,7 @@ config CPU_S3C2410 bool "SAMSUNG S3C2410" default y select CPU_ARM920T + select COMMON_CLK select S3C2410_COMMON_CLK select ARM_S3C2410_CPUFREQ if ARM_S3C24XX_CPUFREQ select S3C2410_PM if PM @@ -54,6 +55,7 @@ config CPU_S3C2416 config CPU_S3C2440 bool "SAMSUNG S3C2440" select CPU_ARM920T + select COMMON_CLK select S3C2410_COMMON_CLK select S3C2410_PM if PM_SLEEP help @@ -62,6 +64,7 @@ config CPU_S3C2440 config CPU_S3C2442 bool "SAMSUNG S3C2442" select CPU_ARM920T + select COMMON_CLK select S3C2410_COMMON_CLK select S3C2410_PM if PM_SLEEP help @@ -196,6 +199,7 @@ config ARCH_BAST bool "Simtec Electronics BAST (EB2410ITX)" select ISA select MACH_BAST_IDE + select COMMON_CLK select S3C2410_COMMON_DCLK select S3C2410_IOTIMING if ARM_S3C2410_CPUFREQ select S3C24XX_SIMTEC_NOR @@ -273,6 +277,7 @@ config MACH_TCT_HAMMER config MACH_VR1000 bool "Thorcom VR1000" select MACH_BAST_IDE + select COMMON_CLK select S3C2410_COMMON_DCLK select S3C24XX_SIMTEC_NOR select S3C24XX_SIMTEC_PM if PM @@ -443,6 +448,7 @@ comment "S3C2440 Boards" config MACH_ANUBIS bool "Simtec Electronics ANUBIS" select HAVE_PATA_PLATFORM + select COMMON_CLK select S3C2410_COMMON_DCLK select S3C2440_XTAL_12000000 select S3C24XX_SIMTEC_PM if PM @@ -482,6 +488,7 @@ config MACH_NEXCODER_2440 config MACH_OSIRIS bool "Simtec IM2440D20 (OSIRIS) module" + select COMMON_CLK select S3C2410_COMMON_DCLK select S3C2410_IOTIMING if ARM_S3C2440_CPUFREQ select S3C2440_XTAL_12000000 @@ -553,6 +560,7 @@ config MACH_RX1950 bool "HP iPAQ rx1950" select I2C select PM_H1940 if PM + select COMMON_CLK select S3C2410_COMMON_DCLK select S3C2410_IOTIMING if ARM_S3C2440_CPUFREQ select S3C2440_XTAL_16934400 diff --git a/arch/arm/mach-s5pv210/Kconfig b/arch/arm/mach-s5pv210/Kconfig index 330bfc8fcd52..ddeef87d8223 100644 --- a/arch/arm/mach-s5pv210/Kconfig +++ b/arch/arm/mach-s5pv210/Kconfig @@ -13,6 +13,7 @@ config ARCH_S5PV210 select ARCH_REQUIRE_GPIOLIB select ARM_VIC select CLKSRC_SAMSUNG_PWM + select COMMON_CLK select COMMON_CLK_SAMSUNG select HAVE_S3C2410_I2C if I2C select HAVE_S3C2410_WATCHDOG if WATCHDOG diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms index 4043c35962cc..953f4ec0a0d9 100644 --- a/arch/arm64/Kconfig.platforms +++ b/arch/arm64/Kconfig.platforms @@ -20,6 +20,7 @@ config ARCH_EXYNOS config ARCH_EXYNOS7 bool "ARMv8 based Samsung Exynos7" select ARCH_EXYNOS + select COMMON_CLK select COMMON_CLK_SAMSUNG select HAVE_S3C2410_WATCHDOG if WATCHDOG select HAVE_S3C_RTC if RTC_CLASS diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig index c3e3a02f7f1f..f6695bd09809 100644 --- a/drivers/clk/Kconfig +++ b/drivers/clk/Kconfig @@ -190,11 +190,11 @@ config COMMON_CLK_CDCE706 source "drivers/clk/bcm/Kconfig" source "drivers/clk/hisilicon/Kconfig" +source "drivers/clk/samsung/Kconfig" source "drivers/clk/qcom/Kconfig" endmenu source "drivers/clk/mvebu/Kconfig" -source "drivers/clk/samsung/Kconfig" source "drivers/clk/tegra/Kconfig" diff --git a/drivers/clk/samsung/Kconfig b/drivers/clk/samsung/Kconfig index 84196ecdaa12..dd6093a33f84 100644 --- a/drivers/clk/samsung/Kconfig +++ b/drivers/clk/samsung/Kconfig @@ -1,9 +1,8 @@ config COMMON_CLK_SAMSUNG - bool - select COMMON_CLK + bool "Samsung Exynos clock controller support" if COMPILE_TEST config S3C2410_COMMON_CLK - bool + bool "Samsung S3C2410 clock controller support" if COMPILE_TEST select COMMON_CLK_SAMSUNG help Build the s3c2410 clock driver based on the common clock framework. @@ -17,10 +16,10 @@ config S3C2410_COMMON_DCLK framework. config S3C2412_COMMON_CLK - bool + bool "Samsung S3C2412 clock controller support" if COMPILE_TEST select COMMON_CLK_SAMSUNG config S3C2443_COMMON_CLK - bool + bool "Samsung S3C2443 clock controller support" if COMPILE_TEST select COMMON_CLK_SAMSUNG -- 1.9.1
[toc] | [prev] | [next] | [standalone]
| From | Krzysztof Kozlowski <k.kozlowski@samsung.com> |
|---|---|
| Date | 2016-01-26 09:10 +0100 |
| Subject | [PATCH v3 3/3] arm64: EXYNOS: Consolidate ARCH_EXYNOS7 symbol into ARCH_EXYNOS |
| Message-ID | <qV6Rl-1gU-33@gated-at.bofh.it> |
| In reply to | #1317589 |
The ARMv8 Exynos family SoCs in Linux kernel are currently: - Exynos5433 (controlled by ARCH_EXYNOS), - Exynos7 (controlled by ARCH_EXYNOS7). It duplicates Kconfig symbols unnecessarily, so consolidate them into one ARCH_EXYNOS. Future SoCs could fall also under the ARCH_EXYNOS symbol. The commit should not bring any visible functional change. Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com> Reviewed-by: Pankaj Dubey <pankaj.dubey@samsung.com> Tested-by: Alim Akhtar <alim.akhtar@samsung.com> Reviewed-by: Tomasz Figa <tomasz.figa@gmail.com> --- Changes since v2: 1. None Changes since v1: 1. Minor cleanups after Tomasz's comments. 2. Added tags: Chanwoo's, Pankaj's, Alim's and Tomasz's. --- arch/arm64/Kconfig.platforms | 11 ++--------- arch/arm64/boot/dts/exynos/Makefile | 2 +- arch/arm64/configs/defconfig | 2 +- 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms index 953f4ec0a0d9..594df2add5c1 100644 --- a/arch/arm64/Kconfig.platforms +++ b/arch/arm64/Kconfig.platforms @@ -13,22 +13,15 @@ config ARCH_BERLIN This enables support for Marvell Berlin SoC Family config ARCH_EXYNOS - bool - help - This enables support for Samsung Exynos SoC family - -config ARCH_EXYNOS7 - bool "ARMv8 based Samsung Exynos7" - select ARCH_EXYNOS + bool "ARMv8 based Samsung Exynos SoC family" select COMMON_CLK select COMMON_CLK_SAMSUNG select HAVE_S3C2410_WATCHDOG if WATCHDOG select HAVE_S3C_RTC if RTC_CLASS select PINCTRL select PINCTRL_EXYNOS - help - This enables support for Samsung Exynos7 SoC family + This enables support for ARMv8 based Samsung Exynos SoC family. config ARCH_LAYERSCAPE bool "ARMv8 based Freescale Layerscape SoC family" diff --git a/arch/arm64/boot/dts/exynos/Makefile b/arch/arm64/boot/dts/exynos/Makefile index 20310e5b6d6f..50c9b9383cfa 100644 --- a/arch/arm64/boot/dts/exynos/Makefile +++ b/arch/arm64/boot/dts/exynos/Makefile @@ -1,4 +1,4 @@ -dtb-$(CONFIG_ARCH_EXYNOS7) += exynos7-espresso.dtb +dtb-$(CONFIG_ARCH_EXYNOS) += exynos7-espresso.dtb always := $(dtb-y) subdir-y := $(dts-dirs) diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index bdd7aa358d2a..a396fa7c69a5 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -33,7 +33,7 @@ CONFIG_MODULE_UNLOAD=y # CONFIG_IOSCHED_DEADLINE is not set CONFIG_ARCH_BCM_IPROC=y CONFIG_ARCH_BERLIN=y -CONFIG_ARCH_EXYNOS7=y +CONFIG_ARCH_EXYNOS=y CONFIG_ARCH_LAYERSCAPE=y CONFIG_ARCH_HISI=y CONFIG_ARCH_MEDIATEK=y -- 1.9.1
[toc] | [prev] | [next] | [standalone]
| From | Krzysztof Kozlowski <k.kozlowski@samsung.com> |
|---|---|
| Date | 2016-01-27 10:20 +0100 |
| Message-ID | <qVuqC-1hZ-21@gated-at.bofh.it> |
| In reply to | #1317589 |
On 26.01.2016 17:05, Krzysztof Kozlowski wrote: > Hi, > > Third attempt to remove ARCH_EXYNOS7 symbol. > > Patches cannot be cherry-picked. I was thinking about merging this > through arm-soc tree after getting needed acks (clk, arm-soc?). The patchset was rebased on quite old linux-next. Rebasing on current code makes only one difference - the s3c64xx gained multiplatform support. I don't want to spam the lists so, I'll respin everything tomorrow after proper rebasing. Best regards, Krzysztof > > Changes since v2: > ================= > 1. Follow Arnd's advice about not enabling silently the newly added > EXYNOS_ARM64_COMMON_CLK, when COMPILE_TEST is enabled. This was > also a trigger for some changes in placement of Samsung clocks > Kconfig entries... > 2. ... which lead to introducing patch 1. > > > Logic: > ====== > Now the clock selection algorithm works like: > 1. For Exynos ARMv7 and ARMv8 the platforms select COMMON_CLK > and COMMON_CLK_SAMSUNG. > 2. As before: clock drivers for Exynos ARMv7 will be selected by > respective SOC/ARCH_EXYNOS_XXX symbol. > 3. For Exynos ARMv8 the clock drivers will be enabled by default > by EXYNOS_ARM64_COMMON_CLK symbol. > > Rationale: > ========== > We don't need ARCH_EXYNOS7 symbol because all ARMv8 platforms should > fall under generic ARCH_EXYNOS. In the same time there is no sense > in building clocks for these ARMv8 SoCs on ARMv7 builds. In future > this will also influence PMU [1] driver. > > > Best regards, > Krzysztof > > [1] https://www.mail-archive.com/linux-samsung-soc@vger.kernel.org/msg48090.html > > > Krzysztof Kozlowski (3): > clk: samsung: Enable COMPILE_TEST for Samsung clocks > clk: samsung: Don't build ARMv8 clock drivers on ARMv7 > arm64: EXYNOS: Consolidate ARCH_EXYNOS7 symbol into ARCH_EXYNOS > > arch/arm/Kconfig | 1 + > arch/arm/mach-exynos/Kconfig | 1 + > arch/arm/mach-s3c24xx/Kconfig | 8 ++++++++ > arch/arm/mach-s5pv210/Kconfig | 1 + > arch/arm64/Kconfig.platforms | 12 +++--------- > arch/arm64/boot/dts/exynos/Makefile | 2 +- > arch/arm64/configs/defconfig | 2 +- > drivers/clk/Kconfig | 2 +- > drivers/clk/samsung/Kconfig | 14 +++++++++----- > drivers/clk/samsung/Makefile | 4 ++-- > 10 files changed, 28 insertions(+), 19 deletions(-) >
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web