linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RESEND v2 0/2] arm64: EXYNOS: Consolidate Exynos7 symbol
@ 2016-01-25  0:50 Krzysztof Kozlowski
  2016-01-25  0:50 ` [RESEND v2 1/2] clk: samsung: Don't build ARMv8 clock drivers on ARMv7 Krzysztof Kozlowski
  2016-01-25  0:50 ` [RESEND v2 2/2] arm64: EXYNOS: Consolidate ARCH_EXYNOS7 symbol into ARCH_EXYNOS Krzysztof Kozlowski
  0 siblings, 2 replies; 5+ messages in thread
From: Krzysztof Kozlowski @ 2016-01-25  0:50 UTC (permalink / raw)
  To: Michael Turquette, Stephen Boyd, linux-kernel, devicetree,
	linux-samsung-soc, linux-clk
  Cc: Catalin Marinas, Will Deacon, Kukjin Kim, Sylwester Nawrocki,
	Tomasz Figa, Olof Johansson, Arnd Bergmann, linux-arm-kernel,
	Kevin Hilman, Krzysztof Kozlowski

Dear Michael and Stephen,


Patch 2 *depends* on patch 1. I was thinking about merging this through
arm-soc tree after getting your acks.

Can you look at patch 1 here and share your comments?



Short introduction
==================
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 (2):
  clk: samsung: Don't build ARMv8 clock drivers on ARMv7
  arm64: EXYNOS: Consolidate ARCH_EXYNOS7 symbol into ARCH_EXYNOS

 arch/arm64/Kconfig.platforms        | 11 ++---------
 arch/arm64/boot/dts/exynos/Makefile |  2 +-
 arch/arm64/configs/defconfig        |  2 +-
 drivers/clk/samsung/Kconfig         |  6 ++++++
 drivers/clk/samsung/Makefile        |  4 ++--
 5 files changed, 12 insertions(+), 13 deletions(-)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [RESEND v2 1/2] clk: samsung: Don't build ARMv8 clock drivers on ARMv7
  2016-01-25  0:50 [RESEND v2 0/2] arm64: EXYNOS: Consolidate Exynos7 symbol Krzysztof Kozlowski
@ 2016-01-25  0:50 ` Krzysztof Kozlowski
  2016-01-25  8:59   ` Arnd Bergmann
  2016-01-25  0:50 ` [RESEND v2 2/2] arm64: EXYNOS: Consolidate ARCH_EXYNOS7 symbol into ARCH_EXYNOS Krzysztof Kozlowski
  1 sibling, 1 reply; 5+ messages in thread
From: Krzysztof Kozlowski @ 2016-01-25  0:50 UTC (permalink / raw)
  To: Michael Turquette, Stephen Boyd, linux-kernel, devicetree,
	linux-samsung-soc, linux-clk
  Cc: Catalin Marinas, Will Deacon, Kukjin Kim, Sylwester Nawrocki,
	Tomasz Figa, Olof Johansson, Arnd Bergmann, linux-arm-kernel,
	Kevin Hilman, Krzysztof Kozlowski

Currently the Exynos5433 (ARMv8 SoC) clock driver depends on ARCH_EXYNOS
so it is built also on ARMv7. This does not bring any kind of benefit.
There won't be a single kernel image for ARMv7 and ARMv8 SoCs (like
multi_v7 for ARMv7).

Instead build clock drivers only for respective SoC's architecture.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Tested-by: Alim Akhtar <alim.akhtar@samsung.com>
Acked-by: Tomasz Figa <tomasz.figa@gmail.com>

---

Changes since v1:
1. Use one Kconfig symbol for clocks of all ARM64 SoCs (after
   discussion): EXYNOS_ARM64_COMMON_CLK.
2. Minor cleanups after Tomasz's comments.
3. Added tags: Chanwoo's, Sylwester's, Alim's and Tomasz's (the tags
   were given for v1 but assuming that change from 1. is not major
   enough to require re-tagging).
---
 drivers/clk/samsung/Kconfig  | 6 ++++++
 drivers/clk/samsung/Makefile | 4 ++--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/clk/samsung/Kconfig b/drivers/clk/samsung/Kconfig
index 84196ecdaa12..3a2c032965e6 100644
--- a/drivers/clk/samsung/Kconfig
+++ b/drivers/clk/samsung/Kconfig
@@ -2,6 +2,7 @@ config COMMON_CLK_SAMSUNG
 	bool
 	select COMMON_CLK
 
+# ARM SoCs:
 config S3C2410_COMMON_CLK
 	bool
 	select COMMON_CLK_SAMSUNG
@@ -24,3 +25,8 @@ config S3C2443_COMMON_CLK
 	bool
 	select COMMON_CLK_SAMSUNG
 
+# ARM64 SoCs (e.g. Exynos5433, Exynos7):
+config EXYNOS_ARM64_COMMON_CLK
+	def_bool ARCH_EXYNOS
+	depends on ARM64 || COMPILE_TEST
+	select COMMON_CLK_SAMSUNG
diff --git a/drivers/clk/samsung/Makefile b/drivers/clk/samsung/Makefile
index 5f6833ea355d..fc367d4b2902 100644
--- a/drivers/clk/samsung/Makefile
+++ b/drivers/clk/samsung/Makefile
@@ -10,11 +10,11 @@ obj-$(CONFIG_SOC_EXYNOS5250)	+= clk-exynos5250.o
 obj-$(CONFIG_SOC_EXYNOS5260)	+= clk-exynos5260.o
 obj-$(CONFIG_SOC_EXYNOS5410)	+= clk-exynos5410.o
 obj-$(CONFIG_SOC_EXYNOS5420)	+= clk-exynos5420.o
-obj-$(CONFIG_ARCH_EXYNOS)	+= clk-exynos5433.o
+obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos5433.o
 obj-$(CONFIG_SOC_EXYNOS5440)	+= clk-exynos5440.o
 obj-$(CONFIG_ARCH_EXYNOS)	+= clk-exynos-audss.o
 obj-$(CONFIG_ARCH_EXYNOS)	+= clk-exynos-clkout.o
-obj-$(CONFIG_ARCH_EXYNOS7)	+= clk-exynos7.o
+obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos7.o
 obj-$(CONFIG_S3C2410_COMMON_CLK)+= clk-s3c2410.o
 obj-$(CONFIG_S3C2410_COMMON_DCLK)+= clk-s3c2410-dclk.o
 obj-$(CONFIG_S3C2412_COMMON_CLK)+= clk-s3c2412.o
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [RESEND v2 2/2] arm64: EXYNOS: Consolidate ARCH_EXYNOS7 symbol into ARCH_EXYNOS
  2016-01-25  0:50 [RESEND v2 0/2] arm64: EXYNOS: Consolidate Exynos7 symbol Krzysztof Kozlowski
  2016-01-25  0:50 ` [RESEND v2 1/2] clk: samsung: Don't build ARMv8 clock drivers on ARMv7 Krzysztof Kozlowski
@ 2016-01-25  0:50 ` Krzysztof Kozlowski
  1 sibling, 0 replies; 5+ messages in thread
From: Krzysztof Kozlowski @ 2016-01-25  0:50 UTC (permalink / raw)
  To: Michael Turquette, Stephen Boyd, linux-kernel, devicetree,
	linux-samsung-soc, linux-clk
  Cc: Catalin Marinas, Will Deacon, Kukjin Kim, Sylwester Nawrocki,
	Tomasz Figa, Olof Johansson, Arnd Bergmann, linux-arm-kernel,
	Kevin Hilman, Krzysztof Kozlowski

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 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 4043c35962cc..64f1116640bc 100644
--- a/arch/arm64/Kconfig.platforms
+++ b/arch/arm64/Kconfig.platforms
@@ -13,21 +13,14 @@ 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_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

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [RESEND v2 1/2] clk: samsung: Don't build ARMv8 clock drivers on ARMv7
  2016-01-25  0:50 ` [RESEND v2 1/2] clk: samsung: Don't build ARMv8 clock drivers on ARMv7 Krzysztof Kozlowski
@ 2016-01-25  8:59   ` Arnd Bergmann
  2016-01-25  9:10     ` Krzysztof Kozlowski
  0 siblings, 1 reply; 5+ messages in thread
From: Arnd Bergmann @ 2016-01-25  8:59 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: Michael Turquette, Stephen Boyd, linux-kernel, devicetree,
	linux-samsung-soc, linux-clk, Catalin Marinas, Will Deacon,
	Kukjin Kim, Sylwester Nawrocki, Tomasz Figa, Olof Johansson,
	linux-arm-kernel, Kevin Hilman

On Monday 25 January 2016 09:50:20 Krzysztof Kozlowski wrote:
> 
> +# ARM64 SoCs (e.g. Exynos5433, Exynos7):
> +config EXYNOS_ARM64_COMMON_CLK
> +       def_bool ARCH_EXYNOS
> +       depends on ARM64 || COMPILE_TEST
> +       select COMMON_CLK_SAMSUNG
> 

So you always enable it on ARM64 when ARCH_EXYNOS is enabled, but
enable it silently on ARM32 when COMPILE_TEST is set?

That sounds wrong. How about

config EXYNOS_ARM64_COMMON_CLK
	bool "EXYNOS 64-bit clock support" if COMPILE_TEST
	default ARM64 && ARCH_EXYNOS
	depends on (ARM64 && ARCH_EXYNOS) || COMPILE_TEST
	select COMMON_CLK_SAMSUNG

	Arnd

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RESEND v2 1/2] clk: samsung: Don't build ARMv8 clock drivers on ARMv7
  2016-01-25  8:59   ` Arnd Bergmann
@ 2016-01-25  9:10     ` Krzysztof Kozlowski
  0 siblings, 0 replies; 5+ messages in thread
From: Krzysztof Kozlowski @ 2016-01-25  9:10 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Michael Turquette, Stephen Boyd, linux-kernel, devicetree,
	linux-samsung-soc, linux-clk, Catalin Marinas, Will Deacon,
	Kukjin Kim, Sylwester Nawrocki, Tomasz Figa, Olof Johansson,
	linux-arm-kernel, Kevin Hilman

On 25.01.2016 17:59, Arnd Bergmann wrote:
> On Monday 25 January 2016 09:50:20 Krzysztof Kozlowski wrote:
>>
>> +# ARM64 SoCs (e.g. Exynos5433, Exynos7):
>> +config EXYNOS_ARM64_COMMON_CLK
>> +       def_bool ARCH_EXYNOS
>> +       depends on ARM64 || COMPILE_TEST
>> +       select COMMON_CLK_SAMSUNG
>>
> 
> So you always enable it on ARM64 when ARCH_EXYNOS is enabled, but
> enable it silently on ARM32 when COMPILE_TEST is set?

Hmm... indeed it would better to make it toggle-able when COMPILE_TEST.

> That sounds wrong. How about
> 
> config EXYNOS_ARM64_COMMON_CLK
> 	bool "EXYNOS 64-bit clock support" if COMPILE_TEST
> 	default ARM64 && ARCH_EXYNOS
> 	depends on (ARM64 && ARCH_EXYNOS) || COMPILE_TEST
> 	select COMMON_CLK_SAMSUNG

Although this looks more complicated but it does the trick. Thanks for
the hint. Only one (not related directly to this change) issue - with
COMPILE_TEST the "EXYNOS 64-bit clock support" option goes above the
common clock framework (up to drivers section) because it is not part of
the Clocks menu. I'll fix it in v3.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-01-25  9:12 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-25  0:50 [RESEND v2 0/2] arm64: EXYNOS: Consolidate Exynos7 symbol Krzysztof Kozlowski
2016-01-25  0:50 ` [RESEND v2 1/2] clk: samsung: Don't build ARMv8 clock drivers on ARMv7 Krzysztof Kozlowski
2016-01-25  8:59   ` Arnd Bergmann
2016-01-25  9:10     ` Krzysztof Kozlowski
2016-01-25  0:50 ` [RESEND v2 2/2] arm64: EXYNOS: Consolidate ARCH_EXYNOS7 symbol into ARCH_EXYNOS Krzysztof Kozlowski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).