ARM: OMAP: clock: cleanup CPUfreq leftovers, fix build errors
PATCH 1/1 ARM: OMAP: clock: cleanup CPUfreq leftovers, fix build errors
Now that we have OPP layer, and OMAP CPUfreq driver is using it, we no longer need/use the clock framework code for filling up CPUfreq tables. Remove it.
Removing this code also eliminates build errors when CPU_FREQ_TABLE support is not enabled.
Thanks to Russell King for pointing out the parts I missed under plat-omap in the original version and also pointing out the build errors when CPUFREQ_TABLE support was not enabled.
---
Tony/Paul, can you queue this up ASAP for v3.4-rc? This was a cleanup that was targetted to go in to v3.4, but missed the merge window. The cleanup is still needed, but now it's also a fix since this dead code also causes build errors when CPU_FREQ_TABLE support is not enabled.
Also, if we don't merge this patch, we'll have to rework it because Russell has queued an alternate fix to this which changes some of this code that should be removed instead:
http://marc.info/?l=linux-arm-kernel&m=133434335009356&w=2
However, if we get this fix in soon, Russell is willing to drop his version.
arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c | 80 -------------------------- arch/arm/mach-omap2/clock.c | 5 -- arch/arm/mach-omap2/clock.h | 8 --- arch/arm/plat-omap/clock.c | 26 --------- arch/arm/plat-omap/include/plat/clock.h | 10 ---- 5 files changed, 129 deletions(-)
arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c +0 -80
@@ -165,83 +165,3 @@ int omap2_select_table_rate(struct clk *clk, unsigned long rate)return 0 ; } - -#ifdef CONFIG_CPU_FREQ -/* -* Walk PRCM rate table and fillout cpufreq freq_table -* XXX This should be replaced by an OPP layer in the near future -*/ -static struct cpufreq_frequency_table *freq_table; - -void omap2_clk_init_cpufreq_table (struct cpufreq_frequency_table **table) -{ -const struct prcm_config *prcm; -int i =0 ; -int tbl_sz =0 ; - -if (!cpu_is_omap24xx ()) -return ; - -for (prcm = rate_table; prcm->mpu_speed; prcm++) { -if (!(prcm->flags & cpu_mask)) -continue ; -if (prcm->xtal_speed != sclk->rate) -continue ; - -/* don't put bypass rates in table */ -if (prcm->dpll_speed == prcm->xtal_speed) -continue ; - - tbl_sz++; - } - -/* -* XXX Ensure that we're doing what CPUFreq expects for this error -* case and the following one -*/ -if (tbl_sz ==0 ) { -pr_warning ("%s: no matching entries in rate_table\n" , - __func__); -return ; - } - -/* Include the CPUFREQ_TABLE_END terminator entry */ - tbl_sz++; - - freq_table =kzalloc (sizeof (struct cpufreq_frequency_table ) * tbl_sz, -GFP_ATOMIC ); -if (!freq_table) { -pr_err ("%s: could not kzalloc frequency table\n" , __func__); -return ; - } - -for (prcm = rate_table; prcm->mpu_speed; prcm++) { -if (!(prcm->flags & cpu_mask)) -continue ; -if (prcm->xtal_speed != sclk->rate) -continue ; - -/* don't put bypass rates in table */ -if (prcm->dpll_speed == prcm->xtal_speed) -continue ; - - freq_table[i].index = i; - freq_table[i].frequency = prcm->mpu_speed /1000 ; - i++; - } - - freq_table[i].index = i; - freq_table[i].frequency =CPUFREQ_TABLE_END ; - - *table = &freq_table[0 ]; -} - -void omap2_clk_exit_cpufreq_table (struct cpufreq_frequency_table **table) -{ -if (!cpu_is_omap24xx ()) -return ; - -kfree (freq_table); -} - -#endif
arch/arm/mach-omap2/clock.c +0 -5
@@ -536,10 +536,5 @@ struct clk_functions omap2_clk_functions = { .clk_set_rate = omap2_clk_set_rate, .clk_set_parent = omap2_clk_set_parent, .clk_disable_unused = omap2_clk_disable_unused, -#ifdef CONFIG_CPU_FREQ -/* These will be removed when the OPP code is integrated */ - .clk_init_cpufreq_table = omap2_clk_init_cpufreq_table, - .clk_exit_cpufreq_table = omap2_clk_exit_cpufreq_table, -#endif };
arch/arm/mach-omap2/clock.h +0 -8
@@ -146,14 +146,6 @@ extern const struct clksel_rate gpt_sys_rates[];extern const struct clksel_rate gfx_l3_rates[];extern const struct clksel_rate dsp_ick_rates[]; -#if defined(CONFIG_ARCH_OMAP2 ) && defined(CONFIG_CPU_FREQ ) -extern void omap2_clk_init_cpufreq_table (struct cpufreq_frequency_table **table); -extern void omap2_clk_exit_cpufreq_table (struct cpufreq_frequency_table **table); -#else -#define omap2_clk_init_cpufreq_table 0 -#define omap2_clk_exit_cpufreq_table 0 -#endif -extern const struct clkops clkops_omap2_iclk_dflt_wait;extern const struct clkops clkops_omap2_iclk_dflt;extern const struct clkops clkops_omap2_iclk_idle_only;
arch/arm/plat-omap/clock.c +0 -26
@@ -398,32 +398,6 @@ struct clk dummy_ck = { .ops = &clkops_null, }; -#ifdef CONFIG_CPU_FREQ -void clk_init_cpufreq_table (struct cpufreq_frequency_table **table) -{ -unsigned long flags; - -if (!arch_clock || !arch_clock->clk_init_cpufreq_table) -return ; - -spin_lock_irqsave (&clockfw_lock, flags); - arch_clock->clk_init_cpufreq_table (table); -spin_unlock_irqrestore (&clockfw_lock, flags); -} - -void clk_exit_cpufreq_table (struct cpufreq_frequency_table **table) -{ -unsigned long flags; - -if (!arch_clock || !arch_clock->clk_exit_cpufreq_table) -return ; - -spin_lock_irqsave (&clockfw_lock, flags); - arch_clock->clk_exit_cpufreq_table (table); -spin_unlock_irqrestore (&clockfw_lock, flags); -} -#endif -/* * */
arch/arm/plat-omap/include/plat/clock.h +0 -10
@@ -272,8 +272,6 @@ struct clk {#endif }; -struct cpufreq_frequency_table ; -struct clk_functions {int (*clk_enable)(struct clk *clk);void (*clk_disable)(struct clk *clk);
@@ -283,10 +281,6 @@ struct clk_functions {void (*clk_allow_idle)(struct clk *clk);void (*clk_deny_idle)(struct clk *clk);void (*clk_disable_unused)(struct clk *clk); -#ifdef CONFIG_CPU_FREQ -void (*clk_init_cpufreq_table)(struct cpufreq_frequency_table **); -void (*clk_exit_cpufreq_table)(struct cpufreq_frequency_table **); -#endif };extern int mpurate;
@@ -301,10 +295,6 @@ extern void recalculate_root_clocks(void);extern unsigned long followparent_recalc (struct clk *clk);extern void clk_enable_init_clocks (void );unsigned long omap_fixed_divisor_recalc (struct clk *clk); -#ifdef CONFIG_CPU_FREQ -extern void clk_init_cpufreq_table (struct cpufreq_frequency_table **table); -extern void clk_exit_cpufreq_table (struct cpufreq_frequency_table **table); -#endif extern struct clk *omap_clk_get_by_name (const char *name);extern int omap_clk_enable_autoidle_all (void );extern int omap_clk_disable_autoidle_all (void );
Signature · 1 line
1.7.9.2
Paul Walmsley
maintainerPATCH 1/1 ARM: OMAP: clock: cleanup CPUfreq leftovers, fix build errors
Quoted 26 lines · Kevin Hilman
Now that we have OPP layer, and OMAP CPUfreq driver is using it, we no longer need/use the clock framework code for filling up CPUfreq tables. Remove it.
Removing this code also eliminates build errors when
CPU_FREQ_TABLEsupport is not enabled.Thanks to Russell King for pointing out the parts I missed under plat-omap in the original version and also pointing out the build errors when
CPUFREQ_TABLEsupport was not enabled.Cc Russell King <[email protected]>Signed-off-by Kevin Hilman <[email protected]>---
Tony/Paul, can you queue this up ASAP for v3.4-rc? This was a cleanup that was targetted to go in to v3.4, but missed the merge window. The cleanup is still needed, but now it's also a fix since this dead code also causes build errors whenCPU_FREQ_TABLEsupport is not enabled.Also, if we don't merge this patch, we'll have to rework it because Russell has queued an alternate fix to this which changes some of this code that should be removed instead:
http://marc.info/?l=linux-arm-kernel&m=133434335009356&w=2
However, if we get this fix in soon, Russell is willing to drop his version.
Quoted 5 lines
arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c | 80 -------------------------- arch/arm/mach-omap2/clock.c | 5 -- arch/arm/mach-omap2/clock.h | 8 --- arch/arm/plat-omap/clock.c | 26 --------- arch/arm/plat-omap/include/plat/clock.h | 10 ----
- Paul
Tony Lindgren
maintainerPATCH 1/1 ARM: OMAP: clock: cleanup CPUfreq leftovers, fix build errors
In reply to Kevin HilmanHi,
Quoted 19 lines · Kevin Hilman
Now that we have OPP layer, and OMAP CPUfreq driver is using it, we no longer need/use the clock framework code for filling up CPUfreq tables. Remove it.
Removing this code also eliminates build errors when
CPU_FREQ_TABLEsupport is not enabled.Thanks to Russell King for pointing out the parts I missed under plat-omap in the original version and also pointing out the build errors when
CPUFREQ_TABLEsupport was not enabled.Cc Russell King <[email protected]>Signed-off-by Kevin Hilman <[email protected]>---
Tony/Paul, can you queue this up ASAP for v3.4-rc? This was a cleanup that was targetted to go in to v3.4, but missed the merge window. The cleanup is still needed, but now it's also a fix since this dead code also causes build errors whenCPU_FREQ_TABLEsupport is not enabled.
Quoted 6 lines
Also, if we don't merge this patch, we'll have to rework it because Russell has queued an alternate fix to this which changes some of this code that should be removed instead:
http://marc.info/?l=linux-arm-kernel&m=133434335009356&w=2
However, if we get this fix in soon, Russell is willing to drop his version.
Yes let's drop the unnecessary code instead as Kevin is suggesting. Please queue this directly with Olof as discussed on #armlinux:
Quoted 208 lines
arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c | 80 -------------------------- arch/arm/mach-omap2/clock.c | 5 -- arch/arm/mach-omap2/clock.h | 8 --- arch/arm/plat-omap/clock.c | 26 --------- arch/arm/plat-omap/include/plat/clock.h | 10 ---- 5 files changed, 129 deletions(-)arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c +0
-80@@ -165,83 +165,3 @@ int omap2_select_table_rate(struct clk *clk, unsigned long rate)return 0 ; } - -#ifdef CONFIG_CPU_FREQ -/* -* Walk PRCM rate table and fillout cpufreq freq_table -* XXX This should be replaced by an OPP layer in the near future -*/ -static struct cpufreq_frequency_table *freq_table; - -void omap2_clk_init_cpufreq_table (struct cpufreq_frequency_table **table) -{ -const struct prcm_config *prcm; -int i =0 ; -int tbl_sz =0 ; - -if (!cpu_is_omap24xx ()) -return ; - -for (prcm = rate_table; prcm->mpu_speed; prcm++) { -if (!(prcm->flags & cpu_mask)) -continue ; -if (prcm->xtal_speed != sclk->rate) -continue ; - -/* don't put bypass rates in table */ -if (prcm->dpll_speed == prcm->xtal_speed) -continue ; - - tbl_sz++; - } - -/* -* XXX Ensure that we're doing what CPUFreq expects for this error -* case and the following one -*/ -if (tbl_sz ==0 ) { -pr_warning ("%s: no matching entries in rate_table\n" , - __func__); -return ; - } - -/* Include the CPUFREQ_TABLE_END terminator entry */ - tbl_sz++; - - freq_table =kzalloc (sizeof (struct cpufreq_frequency_table ) * tbl_sz, -GFP_ATOMIC ); -if (!freq_table) { -pr_err ("%s: could not kzalloc frequency table\n" , __func__); -return ; - } - -for (prcm = rate_table; prcm->mpu_speed; prcm++) { -if (!(prcm->flags & cpu_mask)) -continue ; -if (prcm->xtal_speed != sclk->rate) -continue ; - -/* don't put bypass rates in table */ -if (prcm->dpll_speed == prcm->xtal_speed) -continue ; - - freq_table[i].index = i; - freq_table[i].frequency = prcm->mpu_speed /1000 ; - i++; - } - - freq_table[i].index = i; - freq_table[i].frequency =CPUFREQ_TABLE_END ; - - *table = &freq_table[0 ]; -} - -void omap2_clk_exit_cpufreq_table (struct cpufreq_frequency_table **table) -{ -if (!cpu_is_omap24xx ()) -return ; - -kfree (freq_table); -} - -#endif arch/arm/mach-omap2/clock.c +0
-5@@ -536,10 +536,5 @@ struct clk_functions omap2_clk_functions = { .clk_set_rate = omap2_clk_set_rate, .clk_set_parent = omap2_clk_set_parent, .clk_disable_unused = omap2_clk_disable_unused, -#ifdef CONFIG_CPU_FREQ -/* These will be removed when the OPP code is integrated */ - .clk_init_cpufreq_table = omap2_clk_init_cpufreq_table, - .clk_exit_cpufreq_table = omap2_clk_exit_cpufreq_table, -#endif };arch/arm/mach-omap2/clock.h +0
-8@@ -146,14 +146,6 @@ extern const struct clksel_rate gpt_sys_rates[];extern const struct clksel_rate gfx_l3_rates[];extern const struct clksel_rate dsp_ick_rates[]; -#if defined(CONFIG_ARCH_OMAP2 ) && defined(CONFIG_CPU_FREQ ) -extern void omap2_clk_init_cpufreq_table (struct cpufreq_frequency_table **table); -extern void omap2_clk_exit_cpufreq_table (struct cpufreq_frequency_table **table); -#else -#define omap2_clk_init_cpufreq_table 0 -#define omap2_clk_exit_cpufreq_table 0 -#endif -extern const struct clkops clkops_omap2_iclk_dflt_wait;extern const struct clkops clkops_omap2_iclk_dflt;extern const struct clkops clkops_omap2_iclk_idle_only;arch/arm/plat-omap/clock.c +0
-26@@ -398,32 +398,6 @@ struct clk dummy_ck = { .ops = &clkops_null, }; -#ifdef CONFIG_CPU_FREQ -void clk_init_cpufreq_table (struct cpufreq_frequency_table **table) -{ -unsigned long flags; - -if (!arch_clock || !arch_clock->clk_init_cpufreq_table) -return ; - -spin_lock_irqsave (&clockfw_lock, flags); - arch_clock->clk_init_cpufreq_table (table); -spin_unlock_irqrestore (&clockfw_lock, flags); -} - -void clk_exit_cpufreq_table (struct cpufreq_frequency_table **table) -{ -unsigned long flags; - -if (!arch_clock || !arch_clock->clk_exit_cpufreq_table) -return ; - -spin_lock_irqsave (&clockfw_lock, flags); - arch_clock->clk_exit_cpufreq_table (table); -spin_unlock_irqrestore (&clockfw_lock, flags); -} -#endif -/* * */ arch/arm/plat-omap/include/plat/clock.h +0
-10@@ -272,8 +272,6 @@ struct clk {#endif }; -struct cpufreq_frequency_table ; -struct clk_functions {int (*clk_enable)(struct clk *clk);void (*clk_disable)(struct clk *clk);@@ -283,10 +281,6 @@ struct clk_functions {void (*clk_allow_idle)(struct clk *clk);void (*clk_deny_idle)(struct clk *clk);void (*clk_disable_unused)(struct clk *clk); -#ifdef CONFIG_CPU_FREQ -void (*clk_init_cpufreq_table)(struct cpufreq_frequency_table **); -void (*clk_exit_cpufreq_table)(struct cpufreq_frequency_table **); -#endif };extern int mpurate;@@ -301,10 +295,6 @@ extern void recalculate_root_clocks(void);extern unsigned long followparent_recalc (struct clk *clk);extern void clk_enable_init_clocks (void );unsigned long omap_fixed_divisor_recalc (struct clk *clk); -#ifdef CONFIG_CPU_FREQ -extern void clk_init_cpufreq_table (struct cpufreq_frequency_table **table); -extern void clk_exit_cpufreq_table (struct cpufreq_frequency_table **table); -#endif extern struct clk *omap_clk_get_by_name (const char *name);extern int omap_clk_enable_autoidle_all (void );extern int omap_clk_disable_autoidle_all (void );Signature · 6 lines
1.7.9.2 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo at vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Olof Johansson
AppliedPATCH 1/1 ARM: OMAP: clock: cleanup CPUfreq leftovers, fix build errors
Quoted 4 lines · Tony Lindgren
Yes let's drop the unnecessary code instead as Kevin is suggesting. Please queue this directly with Olof as discussed on #armlinux:
Acked-by Tony Lindgren <[email protected]>
Applied to fixes. Thanks!
-Olof