diff mbox

sh: CONFIG_SH_CLK_DISABLE_LEGACY V2

Message ID 20090521062958.31416.44670.sendpatchset@rx1.opensource.se (mailing list archive)
State Rejected
Headers show

Commit Message

Magnus Damm May 21, 2009, 6:29 a.m. UTC
From: Magnus Damm <damm@igel.co.jp>

Invert legacy kconfig logic in clkfwk branch V2. Instead
of building clock-cpg.c if CONFIG_SH_CLK_CPG_LEGACY is set,
let CONFIG_SH_CLK_DISABLE_LEGACY be no by default and let
upgraded processors use select to disable the legacy code.
Always build clock-cpg.c but wrap legacy code in ifdefs to
only build if CONFIG_SH_CLK_DISABLE_LEGACY is set to no.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
---

 arch/sh/Kconfig                |    5 +++--
 arch/sh/kernel/cpu/Makefile    |    3 +--
 arch/sh/kernel/cpu/clock-cpg.c |    4 ++++
 3 files changed, 8 insertions(+), 4 deletions(-)

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

Comments

Paul Mundt May 21, 2009, 5:52 p.m. UTC | #1
On Thu, May 21, 2009 at 03:29:58PM +0900, Magnus Damm wrote:
> Invert legacy kconfig logic in clkfwk branch V2. Instead
> of building clock-cpg.c if CONFIG_SH_CLK_CPG_LEGACY is set,
> let CONFIG_SH_CLK_DISABLE_LEGACY be no by default and let
> upgraded processors use select to disable the legacy code.
> Always build clock-cpg.c but wrap legacy code in ifdefs to
> only build if CONFIG_SH_CLK_DISABLE_LEGACY is set to no.
> 
No, this is not the intention of the define. The intention was to keep it
as a place holder until I had time to ween the rest of the users off of
those clock definitions. As the vast majority of CPUs don't do much of
anything with their clock frameworks, that should be pretty easy to do
once SH7785 and the SH-Mobile bits have converged and settled.

Note that not building in the CPG clocks by default is behaviour we plan
on maintaining. There are ST40 parts that do not include the CPG at all
for example, and removing those legacy clocks are one of the only patches
needed against the generic clock.c to fix things up for those use cases.

The goal for clock-cpg.c on the other hand is to get a bit more generic
that most CPUs can tie their root clock information in to that to get
most of the useful bits out of the way. This has not happened yet as I
have been busy with PCI-Express.

In general, patches that invert logic are rarely useful. The logic was
generally done that way for a reason, whether it is immediately evident
or not. Bits in my topic branches may be a little less obvious than the
stuff in HEAD mostly since it is still in a high state of flux and not
yet ready for merging.
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" 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

--- 0001/arch/sh/Kconfig
+++ work/arch/sh/Kconfig	2009-05-21 14:52:36.000000000 +0900
@@ -398,6 +398,7 @@  config CPU_SUBTYPE_SH7785
 	select CPU_SHX2
 	select ARCH_SPARSEMEM_ENABLE
 	select SYS_SUPPORTS_NUMA
+	select SH_CLK_DISABLE_LEGACY
 
 config CPU_SUBTYPE_SH7786
 	bool "Support SH7786 processor"
@@ -513,8 +514,8 @@  config SH_PCLK_FREQ
 	  This is necessary for determining the reference clock value on
 	  platforms lacking an RTC.
 
-config SH_CLK_CPG_LEGACY
-	def_bool y if !CPU_SUBTYPE_SH7785
+config SH_CLK_DISABLE_LEGACY
+	def_bool n
 
 config SH_CLK_MD
 	int "CPU Mode Pin Setting"
--- 0001/arch/sh/kernel/cpu/Makefile
+++ work/arch/sh/kernel/cpu/Makefile	2009-05-21 14:53:19.000000000 +0900
@@ -17,6 +17,5 @@  obj-$(CONFIG_ARCH_SHMOBILE)	+= shmobile/
 
 obj-$(CONFIG_UBC_WAKEUP)	+= ubc.o
 obj-$(CONFIG_SH_ADC)		+= adc.o
-obj-$(CONFIG_SH_CLK_CPG_LEGACY)	+= clock-cpg.o
 
-obj-y	+= irq/ init.o clock.o
+obj-y	+= irq/ init.o clock.o clock-cpg.o
--- 0001/arch/sh/kernel/cpu/clock-cpg.c
+++ work/arch/sh/kernel/cpu/clock-cpg.c	2009-05-21 14:55:08.000000000 +0900
@@ -2,6 +2,8 @@ 
 #include <linux/compiler.h>
 #include <asm/clock.h>
 
+#ifndef CONFIG_SH_CLK_DISABLE_LEGACY
+
 static struct clk master_clk = {
 	.name		= "master_clk",
 	.flags		= CLK_ENABLE_ON_INIT,
@@ -58,3 +60,5 @@  int __init __weak arch_clk_init(void)
 {
 	return cpg_clk_init();
 }
+
+#endif /* CONFIG_SH_CLK_DISABLE_LEGACY */