Consolidate clks_register() and similar
Subsystems (10)
PATCH 1/1 Consolidate clks_register() and similar
Most machine classes want some way to register a block of clk_lookup structures, and most do it by implementing a clks_register() type function which walks an array, or by open-coding a loop.
Consolidate all this into clkdev_add_table().
---
This misses out Davinci, which needs cleaning up to remove its seemingly redundant wrapping of the clk_lookup structure.
arch/arm/common/clkdev.c | 10 ++++++++++ arch/arm/include/asm/clkdev.h | 3 +++ arch/arm/mach-bcmring/core.c | 3 +-- arch/arm/mach-ep93xx/clock.c | 4 +--- arch/arm/mach-integrator/core.c | 3 +-- arch/arm/mach-integrator/integrator_cp.c | 4 +--- arch/arm/mach-mmp/clock.c | 8 -------- arch/arm/mach-mmp/clock.h | 2 -- arch/arm/mach-mmp/pxa168.c | 2 +- arch/arm/mach-mmp/pxa910.c | 2 +- arch/arm/mach-mx1/clock.c | 4 +--- arch/arm/mach-mx2/clock_imx21.c | 4 +--- arch/arm/mach-mx2/clock_imx27.c | 4 +--- arch/arm/mach-mx25/clock.c | 6 +----- arch/arm/mach-mx3/clock-imx35.c | 4 +--- arch/arm/mach-mx3/clock.c | 4 +--- arch/arm/mach-mxc91231/clock.c | 4 +--- arch/arm/mach-pnx4008/clock.c | 5 +---- arch/arm/mach-pxa/clock.c | 8 -------- arch/arm/mach-pxa/clock.h | 4 ---- arch/arm/mach-pxa/eseries.c | 2 +- arch/arm/mach-pxa/pxa25x.c | 4 ++-- arch/arm/mach-pxa/pxa27x.c | 2 +- arch/arm/mach-pxa/pxa300.c | 4 ++-- arch/arm/mach-pxa/pxa320.c | 2 +- arch/arm/mach-pxa/pxa3xx.c | 2 +- arch/arm/mach-realview/core.c | 5 +---- arch/arm/mach-u300/clock.c | 5 +---- arch/arm/mach-ux500/clock.c | 5 +---- arch/arm/mach-versatile/core.c | 3 +-- arch/arm/mach-w90x900/clock.c | 9 --------- arch/arm/mach-w90x900/clock.h | 1 - arch/arm/mach-w90x900/cpu.c | 2 +- arch/arm/plat-stmp3xxx/clock.c | 3 +-- 34 files changed, 41 insertions(+), 96 deletions(-)
arch/arm/common/clkdev.c +10 -0
@@ -99,6 +99,16 @@ void clkdev_add(struct clk_lookup *cl) }EXPORT_SYMBOL (clkdev_add); +void __init clkdev_add_table (struct clk_lookup *cl,size_t num) +{ +mutex_lock (&clocks_mutex); +while (num--) { +list_add_tail (&cl->node, &clocks); + cl++; + } +mutex_unlock (&clocks_mutex); +} +#define MAX_DEV_ID 20#define MAX_CON_ID 16
arch/arm/include/asm/clkdev.h +3 -0
@@ -27,4 +27,7 @@ struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id,void clkdev_add (struct clk_lookup *cl);void clkdev_drop (struct clk_lookup *cl); +void clkdev_add_table (struct clk_lookup *,size_t ); +int clk_add_alias (const char *,const char *,char *,struct device *); +#endif
arch/arm/mach-bcmring/core.c +1 -2
@@ -142,8 +142,7 @@ void __init bcmring_amba_init(void)chipcHw_busInterfaceClockEnable (bus_clock); -for (i =0 ; i <ARRAY_SIZE (lookups); i++) -clkdev_add (&lookups[i]); +clkdev_add_table (lookups,ARRAY_SIEZ (lookups));for (i =0 ; i <ARRAY_SIZE (amba_devs); i++) {struct amba_device *d = amba_devs[i];
arch/arm/mach-ep93xx/clock.c +1 -3
@@ -445,7 +445,6 @@ static void __init ep93xx_dma_clock_init(void)static int __init ep93xx_clock_init (void ) {u32 value; -int i; value =__raw_readl (EP93XX_SYSCON_CLOCK_SET1 );if (!(value &0x00800000 )) {/* PLL1 bypassed? */
@@ -474,8 +473,7 @@ static int __init ep93xx_clock_init(void) clk_f.rate /1000000 , clk_h.rate /1000000 , clk_p.rate / 1000000); -for (i =0 ; i <ARRAY_SIZE (clocks); i++) -clkdev_add (&clocks[i]); +clkdev_add_table (clocks,ARRAY_SIZE (clocks));return 0 ; }arch_initcall (ep93xx_clock_init);
arch/arm/mach-integrator/core.c +1 -2
@@ -144,8 +144,7 @@ static int __init integrator_init(void) {int i; -for (i =0 ; i <ARRAY_SIZE (lookups); i++) -clkdev_add (&lookups[i]); +clkdev_add_table (lookups,ARRAY_SIZE (lookups));for (i =0 ; i <ARRAY_SIZE (amba_devs); i++) {struct amba_device *d = amba_devs[i];
arch/arm/mach-integrator/integrator_cp.c +1 -3
@@ -558,9 +558,7 @@ static void __init intcp_init(void) {int i; -for (i =0 ; i <ARRAY_SIZE (cp_lookups); i++) -clkdev_add (&cp_lookups[i]); - +clkdev_add_table (cp_lookups,ARRAY_SIZE (cp_lookups));platform_add_devices (intcp_devs,ARRAY_SIZE (intcp_devs));for (i =0 ; i <ARRAY_SIZE (amba_devs); i++) {
arch/arm/mach-mmp/clock.c +0 -8
@@ -88,11 +88,3 @@ unsigned long clk_get_rate(struct clk *clk)return rate; }EXPORT_SYMBOL (clk_get_rate); - -void clks_register (struct clk_lookup *clks,size_t num) -{ -int i; - -for (i =0 ; i < num; i++) -clkdev_add (&clks[i]); -}
arch/arm/mach-mmp/clock.h +0 -2
@@ -68,5 +68,3 @@ struct clk clk_##_name = { \extern struct clk clk_pxa168_gpio;extern struct clk clk_pxa168_timers; - -extern void clks_register (struct clk_lookup *,size_t );
arch/arm/mach-mmp/pxa168.c +1 -1
@@ -94,7 +94,7 @@ static int __init pxa168_init(void)mfp_init_base (MFPR_VIRT_BASE );mfp_init_addr (pxa168_mfp_addr_map);pxa_init_dma (IRQ_PXA168_DMA_INT0 ,32 ); -clks_register (ARRAY_AND_SIZE (pxa168_clkregs)); +clkdev_add_table (ARRAY_AND_SIZE (pxa168_clkregs)); }return 0 ;
arch/arm/mach-mmp/pxa910.c +1 -1
@@ -131,7 +131,7 @@ static int __init pxa910_init(void)mfp_init_base (MFPR_VIRT_BASE );mfp_init_addr (pxa910_mfp_addr_map);pxa_init_dma (IRQ_PXA910_DMA_INT0 ,32 ); -clks_register (ARRAY_AND_SIZE (pxa910_clkregs)); +clkdev_add_table (ARRAY_AND_SIZE (pxa910_clkregs)); }return 0 ;
arch/arm/mach-mx1/clock.c +1 -3
@@ -570,7 +570,6 @@ static struct clk_lookup lookups[] __initdata = {int __init mx1_clocks_init (unsigned long fref) {unsigned int reg; -int i;/* disable clocks we are able to */ __raw_writel (0 ,SCM_GCCR );
@@ -592,8 +591,7 @@ int __init mx1_clocks_init(unsigned long fref) reg = (reg &CCM_CSCR_CLKO_MASK ) >>CCM_CSCR_CLKO_OFFSET ; clko_clk.parent = (struct clk *)clko_clocks[reg]; -for (i =0 ; i <ARRAY_SIZE (lookups); i++) -clkdev_add (&lookups[i]); +clkdev_add_table (lookups,ARRAY_SIZE (lookups));clk_enable (&hclk);clk_enable (&fclk);
arch/arm/mach-mx2/clock_imx21.c +1 -3
@@ -968,7 +968,6 @@ static struct clk_lookup lookups[] = {*/ int __init mx21_clocks_init (unsigned long lref,unsigned long href) { -int i;u32 cscr; external_low_reference = lref;
@@ -986,8 +985,7 @@ int __init mx21_clocks_init(unsigned long lref, unsigned long href)else spll_clk.parent = &fpm_clk; -for (i =0 ; i <ARRAY_SIZE (lookups); i++) -clkdev_add (&lookups[i]); +clkdev_add_table (lookups,ARRAY_SIZE (lookups));/* Turn off all clock gates */ __raw_writel (0 ,CCM_PCCR0 );
arch/arm/mach-mx2/clock_imx27.c +1 -3
@@ -719,7 +719,6 @@ static void __init to2_adjust_clocks(void)int __init mx27_clocks_init (unsigned long fref) {u32 cscr =__raw_readl (CCM_CSCR ); -int i; external_high_reference = fref;
@@ -736,8 +735,7 @@ int __init mx27_clocks_init(unsigned long fref)to2_adjust_clocks (); -for (i =0 ; i <ARRAY_SIZE (lookups); i++) -clkdev_add (&lookups[i]); +clkdev_add_table (lookups,ARRAY_SIZE (lookups));/* Turn off all clocks we do not need */ __raw_writel (0 ,CCM_PCCR0 );
arch/arm/mach-mx25/clock.c +1 -5
@@ -208,11 +208,7 @@ static struct clk_lookup lookups[] = {int __init mx25_clocks_init (unsigned long fref) { -int i; - -for (i =0 ; i <ARRAY_SIZE (lookups); i++) -clkdev_add (&lookups[i]); - +clkdev_add_table (lookups,ARRAY_SIZE (lookups));mxc_timer_init (&gpt_clk,MX25_IO_ADDRESS (MX25_GPT1_BASE_ADDR ),54 );return 0 ;
arch/arm/mach-mx3/clock-imx35.c +1 -3
@@ -485,15 +485,13 @@ static struct clk_lookup lookups[] = {int __init mx35_clocks_init () { -int i;unsigned int ll =0 ;#if defined(CONFIG_DEBUG_LL ) && !defined(CONFIG_DEBUG_ICEDCC ) ll = (3 <<16 );#endif -for (i =0 ; i <ARRAY_SIZE (lookups); i++) -clkdev_add (&lookups[i]); +clkdev_add_table (lookups,ARRAY_SIZE (lookups));/* Turn off all clocks except the ones we need to survive, namely: * EMI, GPIO1/2/3, GPT, IOMUX, MAX and eventually uart
arch/arm/mach-mx3/clock.c +1 -3
@@ -578,12 +578,10 @@ static struct clk_lookup lookups[] = {int __init mx31_clocks_init (unsigned long fref) {u32 reg; -int i; ckih_rate = fref; -for (i =0 ; i <ARRAY_SIZE (lookups); i++) -clkdev_add (&lookups[i]); +clkdev_add_table (lookups,ARRAY_SIZE (lookups));/* change the csi_clk parent if necessary */ reg =__raw_readl (MXC_CCM_CCMR );
arch/arm/mach-mxc91231/clock.c +1 -3
@@ -624,7 +624,6 @@ static struct clk_lookup lookups[] = {int __init mxc91231_clocks_init (unsigned long fref) {void __iomem *gpt_base; -int i; ckih_rate = fref;
@@ -632,8 +631,7 @@ int __init mxc91231_clocks_init(unsigned long fref) sdhc_clk[0 ].parent =clk_sdhc_parent (&sdhc_clk[0 ]); sdhc_clk[1 ].parent =clk_sdhc_parent (&sdhc_clk[1 ]); -for (i =0 ; i <ARRAY_SIZE (lookups); i++) -clkdev_add (&lookups[i]); +clkdev_add_table (lookups,ARRAY_SIZE (lookups)); gpt_base =MXC91231_IO_ADDRESS (MXC91231_GPT1_BASE_ADDR );mxc_timer_init (&gpt_clk, gpt_base,MXC91231_INT_GPT );
arch/arm/mach-pnx4008/clock.c +1 -4
@@ -961,7 +961,6 @@ EXPORT_SYMBOL(clk_set_parent);static int __init clk_init (void ) { -struct clk_lookup *cl;struct clk **clkp;/* Disable autoclocking, as it doesn't seem to work */
@@ -995,9 +994,7 @@ static int __init clk_init(void)/* Disable autoclocking */ __raw_writeb (0xff ,AUTOCLK_CTRL ); -for (cl = onchip_clkreg; - cl < onchip_clkreg +ARRAY_SIZE (onchip_clkreg); cl++) -clkdev_add (cl); +clkdev_add_table (onchip_clkreg,ARRAY_SIZE (onchip_clkreg));return 0 ; }
arch/arm/mach-pxa/clock.c +0 -8
@@ -78,11 +78,3 @@ const struct clkops clk_cken_ops = { .enable = clk_cken_enable, .disable = clk_cken_disable, }; - -void clks_register (struct clk_lookup *clks,size_t num) -{ -int i; - -for (i =0 ; i < num; i++) -clkdev_add (&clks[i]); -}
arch/arm/mach-pxa/clock.h +0 -4
@@ -67,7 +67,3 @@ extern void clk_pxa3xx_cken_enable(struct clk *);extern void clk_pxa3xx_cken_disable (struct clk *);#endif -void clks_register (struct clk_lookup *clks,size_t num); -int clk_add_alias (const char *alias,const char *alias_name,char *id, -struct device *dev); -
arch/arm/mach-pxa/eseries.c +1 -1
@@ -128,6 +128,6 @@ static struct clk_lookup eseries_clkregs[] = {void eseries_register_clks (void ) { -clks_register (eseries_clkregs,ARRAY_SIZE (eseries_clkregs)); +clkdev_add_table (eseries_clkregs,ARRAY_SIZE (eseries_clkregs)); }
arch/arm/mach-pxa/pxa25x.c +2 -2
@@ -349,7 +349,7 @@ static int __init pxa25x_init(void) reset_status =RCSR ; -clks_register (pxa25x_clkregs,ARRAY_SIZE (pxa25x_clkregs)); +clkdev_add_table (pxa25x_clkregs,ARRAY_SIZE (pxa25x_clkregs));if ((ret =pxa_init_dma (IRQ_DMA ,16 )))return ret;
@@ -370,7 +370,7 @@ static int __init pxa25x_init(void)/* Only add HWUART for PXA255/26x; PXA210/250 do not have it. */ if (cpu_is_pxa255 ()) -clks_register (&pxa25x_hwuart_clkreg,1 ); +clkdev_add (&pxa25x_hwuart_clkreg);return ret; }
arch/arm/mach-pxa/pxa27x.c +1 -1
@@ -392,7 +392,7 @@ static int __init pxa27x_init(void) reset_status =RCSR ; -clks_register (pxa27x_clkregs,ARRAY_SIZE (pxa27x_clkregs)); +clkdev_add_table (pxa27x_clkregs,ARRAY_SIZE (pxa27x_clkregs));if ((ret =pxa_init_dma (IRQ_DMA ,32 )))return ret;
arch/arm/mach-pxa/pxa300.c +2 -2
@@ -102,12 +102,12 @@ static int __init pxa300_init(void)if (cpu_is_pxa300 () ||cpu_is_pxa310 ()) {mfp_init_base (io_p2v (MFPR_BASE ));mfp_init_addr (pxa300_mfp_addr_map); -clks_register (ARRAY_AND_SIZE (common_clkregs)); +clkdev_add_table (ARRAY_AND_SIZE (common_clkregs)); }if (cpu_is_pxa310 ()) {mfp_init_addr (pxa310_mfp_addr_map); -clks_register (ARRAY_AND_SIZE (pxa310_clkregs)); +clkdev_add_table (ARRAY_AND_SIZE (pxa310_clkregs)); }return 0 ;
arch/arm/mach-pxa/pxa320.c +1 -1
@@ -90,7 +90,7 @@ static int __init pxa320_init(void)if (cpu_is_pxa320 ()) {mfp_init_base (io_p2v (MFPR_BASE ));mfp_init_addr (pxa320_mfp_addr_map); -clks_register (ARRAY_AND_SIZE (pxa320_clkregs)); +clkdev_add_table (ARRAY_AND_SIZE (pxa320_clkregs)); }return 0 ;
arch/arm/mach-pxa/pxa3xx.c +1 -1
@@ -634,7 +634,7 @@ static int __init pxa3xx_init(void)*/ ASCR &= ~(ASCR_RDH |ASCR_D1S |ASCR_D2S |ASCR_D3S ); -clks_register (pxa3xx_clkregs,ARRAY_SIZE (pxa3xx_clkregs)); +clkdev_add_table (pxa3xx_clkregs,ARRAY_SIZE (pxa3xx_clkregs));if ((ret =pxa_init_dma (IRQ_DMA ,32 )))return ret;
arch/arm/mach-realview/core.c +1 -4
@@ -346,10 +346,7 @@ static struct clk_lookup lookups[] = {static int __init clk_init (void ) { -int i; - -for (i =0 ; i <ARRAY_SIZE (lookups); i++) -clkdev_add (&lookups[i]); +clkdev_add_table (lookups,ARRAY_SIZE (lookups));return 0 ; }arch_initcall (clk_init);
arch/arm/mach-u300/clock.c +1 -4
@@ -1276,11 +1276,8 @@ static struct clk_lookup lookups[] = {static void __init clk_register (void ) { -int i; -/* Register the lookups */ -for (i =0 ; i <ARRAY_SIZE (lookups); i++) -clkdev_add (&lookups[i]); +clkdev_add_table (lookups,ARRAY_SIZE (lookups)); }/*
arch/arm/mach-ux500/clock.c +1 -4
@@ -85,11 +85,8 @@ static struct clk_lookup lookups[] = {static int __init clk_init (void ) { -int i; -/* register the clock lookups */ -for (i =0 ; i <ARRAY_SIZE (lookups); i++) -clkdev_add (&lookups[i]); +clkdev_add_table (lookups,ARRAY_SIZE (lookups));return 0 ; }arch_initcall (clk_init);
arch/arm/mach-versatile/core.c +1 -2
@@ -851,8 +851,7 @@ void __init versatile_init(void) {int i; -for (i =0 ; i <ARRAY_SIZE (lookups); i++) -clkdev_add (&lookups[i]); +clkdev_add_table (lookups,ARRAY_SIZE (lookups));platform_device_register (&versatile_flash_device);platform_device_register (&versatile_i2c_device);
arch/arm/mach-w90x900/clock.c +0 -9
@@ -90,12 +90,3 @@ void nuc900_subclk_enable(struct clk *clk, int enable)__raw_writel (clken,W90X900_VA_CLKPWR +SUBCLK ); } - - -void clks_register (struct clk_lookup *clks,size_t num) -{ -int i; - -for (i =0 ; i < num; i++) -clkdev_add (&clks[i]); -}
arch/arm/mach-w90x900/clock.h +0 -1
@@ -14,7 +14,6 @@void nuc900_clk_enable (struct clk *clk,int enable);void nuc900_subclk_enable (struct clk *clk,int enable); -void clks_register (struct clk_lookup *clks,size_t num);struct clk {unsigned long cken;
arch/arm/mach-w90x900/cpu.c +1 -1
@@ -208,6 +208,6 @@ void __init nuc900_map_io(struct map_desc *mach_desc, int mach_size)void __init nuc900_init_clocks (void ) { -clks_register (nuc900_clkregs,ARRAY_SIZE (nuc900_clkregs)); +clkdev_add_table (nuc900_clkregs,ARRAY_SIZE (nuc900_clkregs)); }
arch/arm/plat-stmp3xxx/clock.c +1 -2
@@ -1126,9 +1126,8 @@ static int __init clk_init(void)if (ops && ops->set_parent) ops->set_parent (cl->clk, cl->clk->parent); } - -clkdev_add (cl); } +clkdev_add_table (onchip_clks,ARRAY_SIZE (onchip_clks));return 0 ; }
PATCH 1/1 Consolidate clks_register() and similar
Russell,
arch/arm/mach-bcmring/core.c void __init bcmring_amba_init(void) · line 145
Quoted 9 lines
arch/arm/mach-bcmring/core.c +1
-2@@ -142,8 +142,7 @@ void __init bcmring_amba_init(void)chipcHw_busInterfaceClockEnable (bus_clock); -for (i =0 ; i <ARRAY_SIZE (lookups); i++) -clkdev_add (&lookups[i]); +clkdev_add_table (lookups,ARRAY_SIEZ (lookups));
SIEZ -> SIZE.
Also, perhaps a macro to simplify this common usage?
#define clkdev_add_table(clks) __clkdev_add_table(clks, ARRAY_SIZE(clks))
Cheers,
Jeremy
PATCH 1/1 Consolidate clks_register() and similar
Quoted 6 lines · Jeremy Kerr
Russell,
Quoted 4 lines
arch/arm/mach-bcmring/core.c +0
-0@@ -142,8 +142,7 @@ void __init bcmring_amba_init(void)
Quoted 7 lines
arch/arm/mach-bcmring/core.c void __init bcmring_amba_init(void) · line 145
Quoted 5 lines
arch/arm/mach-bcmring/core.c +1
-2chipcHw_busInterfaceClockEnable (bus_clock); -for (i =0 ; i <ARRAY_SIZE (lookups); i++) -clkdev_add (&lookups[i]); +clkdev_add_table (lookups,ARRAY_SIEZ (lookups));SIEZ -> SIZE.
Fied.
Quoted 3 lines
Also, perhaps a macro to simplify this common usage?
#define
clkdev_add_table(clks)__clkdev_add_table(clks, ARRAY_SIZE(clks))
I'm not a fan of that kind of clean up - it leads people into thinking that they can pass a normal pointer instead of an array to clkdev_add_table() - and then they'll get a surprise.
PXA has ARRAY_AND_SIZE() which I think is rather nice for this kind of thing, but other people had other thoughts on that...
PATCH 1/1 Consolidate clks_register() and similar
Quoted 19 lines · Russell King - ARM Linux
Quoted 6 lines · Jeremy Kerr
Russell,
Quoted 4 lines
arch/arm/mach-bcmring/core.c +0
-0@@ -142,8 +142,7 @@ void __init bcmring_amba_init(void)Quoted 7 lines
arch/arm/mach-bcmring/core.c void __init bcmring_amba_init(void) · line 145
Quoted 5 lines
arch/arm/mach-bcmring/core.c +1
-2chipcHw_busInterfaceClockEnable (bus_clock); -for (i =0 ; i <ARRAY_SIZE (lookups); i++) -clkdev_add (&lookups[i]); +clkdev_add_table (lookups,ARRAY_SIEZ (lookups));SIEZ -> SIZE.
Fied.
Quoted 2 lines
Also, perhaps a macro to simplify this common usage?
Quoted 8 lines
Quoted 1 line
#define
clkdev_add_table(clks)__clkdev_add_table(clks, ARRAY_SIZE(clks))I'm not a fan of that kind of clean up - it leads people into thinking that they can pass a normal pointer instead of an array to
clkdev_add_table()- and then they'll get a surprise.PXA has
ARRAY_AND_SIZE()which I think is rather nice for this kind of thing, but other people had other thoughts on that...
I liked it, there are so many places in the kernel where this could be used that I would love to se it added...
Signature · 4 lines
Ben Q: What's a light-year? A: One-third less calories than a regular year.
PATCH 1/1 Consolidate clks_register() and similar
In reply to Russell King - ARM LinuxQuoted 8 lines · Russell King
Most machine classes want some way to register a block of
clk_lookupstructures, and most do it by implementing aclks_register()type function which walks an array, or by open-coding a loop.Consolidate all this into
clkdev_add_table().Signed-off-by Russell King <[email protected]>---
[snip]
Quoted 26 lines
arch/arm/common/clkdev.c +10
-0@@ -99,6 +99,16 @@ void clkdev_add(struct clk_lookup *cl) }EXPORT_SYMBOL (clkdev_add); +void __init clkdev_add_table (struct clk_lookup *cl,size_t num) +{ +mutex_lock (&clocks_mutex); +while (num--) { +list_add_tail (&cl->node, &clocks); + cl++; + } +mutex_unlock (&clocks_mutex); +} +#define MAX_DEV_ID 20#define MAX_CON_ID 16arch/arm/include/asm/clkdev.h +0
-0
arch/arm/include/asm/clkdev.h struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id, · line 31
Quoted 5 lines
arch/arm/include/asm/clkdev.h +2
-0@@ -27,4 +27,7 @@ struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id,void clkdev_add (struct clk_lookup *cl);void clkdev_drop (struct clk_lookup *cl); +void clkdev_add_table (struct clk_lookup *,size_t ); +int clk_add_alias (const char *,const char *,char *,struct device *);
clk_add_alias does not seem to be related to this patch.
Quoted 2 lines
arch/arm/include/asm/clkdev.h +1
-0+#endif
[snip]
Quoted 13 lines
arch/arm/mach-ep93xx/clock.c +0
-1@@ -445,7 +445,6 @@ static void __init ep93xx_dma_clock_init(void)static int __init ep93xx_clock_init (void ) {u32 value; -int i; value =__raw_readl (EP93XX_SYSCON_CLOCK_SET1 );if (!(value &0x00800000 )) {/* PLL1 bypassed? */
arch/arm/mach-ep93xx/clock.c static int __init ep93xx_clock_init(void) · line 479
Quoted 9 lines
arch/arm/mach-ep93xx/clock.c +1
-2@@ -474,8 +473,7 @@ static int __init ep93xx_clock_init(void) clk_f.rate /1000000 , clk_h.rate /1000000 , clk_p.rate / 1000000); -for (i =0 ; i <ARRAY_SIZE (clocks); i++) -clkdev_add (&clocks[i]); +clkdev_add_table (clocks,ARRAY_SIZE (clocks));return 0 ; }arch_initcall (ep93xx_clock_init);
For ep93xx.
PATCH 1/1 Consolidate clks_register() and similar
Quoted 9 lines · H Hartley Sweeten
Quoted 8 lines · Russell King
arch/arm/include/asm/clkdev.h +0
-0@@ -27,4 +27,7 @@ struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id,void clkdev_add (struct clk_lookup *cl);void clkdev_drop (struct clk_lookup *cl);
Quoted 4 lines
arch/arm/include/asm/clkdev.h struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id, · line 31
Quoted 2 lines
arch/arm/include/asm/clkdev.h +2
-0+void clkdev_add_table (struct clk_lookup *,size_t ); +int clk_add_alias (const char *,const char *,char *,struct device *);
clk_add_aliasdoes not seem to be related to this patch.
True, but it might as well get cleaned up along with the rest of this. For some reason, the prototype was never moved there.
Quoted 13 lines
arch/arm/include/asm/clkdev.h static int __init ep93xx_clock_init(void) · line 479
Quoted 10 lines
arch/arm/include/asm/clkdev.h +1
-2@@ -474,8 +473,7 @@ static int __init ep93xx_clock_init(void) clk_f.rate /1000000 , clk_h.rate /1000000 , clk_p.rate / 1000000); -for (i =0 ; i <ARRAY_SIZE (clocks); i++) -clkdev_add (&clocks[i]); +clkdev_add_table (clocks,ARRAY_SIZE (clocks));return 0 ; }arch_initcall (ep93xx_clock_init);For ep93xx.
Quoted 1 line
Thanks.
PATCH 1/1 Consolidate clks_register() and similar
In reply to Russell King - ARM LinuxQuoted 7 lines · Russell King - ARM Linux
Most machine classes want some way to register a block of
clk_lookupstructures, and most do it by implementing aclks_register()type function which walks an array, or by open-coding a loop.Consolidate all this into
clkdev_add_table().Signed-off-by Russell King <[email protected]>
Are you planning this for 2.6.33-rc? or 2.6.34?
Quoted 3 lines
---
This misses out Davinci, which needs cleaning up to remove its seemingly redundant wrapping of theclk_lookupstructure.
This should take care of davinci. Tested on v2.6.33-rc3 + $SUBJECT patch.
PATCH 1/1 Consolidate clks_register() and similar
Quoted 6 lines · Kevin Hilman
Quoted 4 lines · Russell King - ARM Linux
Most machine classes want some way to register a block of
clk_lookupstructures, and most do it by implementing aclks_register()type function which walks an array, or by open-coding a loop.
Quoted 7 lines
Quoted 3 lines
Consolidate all this into
clkdev_add_table().Signed-off-by Russell King <[email protected]>Reviewed-by Kevin Hilman <[email protected]>Are you planning this for 2.6.33-rc? or 2.6.34?
I don't think it's -rc material (not a bug fix) so 2.6.34.
Quoted 1 line
This should take care of davinci. Tested on v2.6.33-rc3 + $SUBJECT patch.
Shall I queue this for merging after my patch, or are there likely to be conflicts in this area?
PATCH 1/1 Consolidate clks_register() and similar
On Tuesday, January 12, 2010 5:17 AM, Russell King wrote,
Quoted 9 lines · Kevin Hilman
Quoted 8 lines
Quoted 6 lines · Russell King - ARM Linux
Most machine classes want some way to register a block of
clk_lookupstructures, and most do it by implementing aclks_register()type function which walks an array, or by open-coding a loop.Consolidate all this into
clkdev_add_table().
Quoted 7 lines
Quoted 5 lines
Quoted 1 line
Signed-off-by Russell King <[email protected]>Reviewed-by Kevin Hilman <[email protected]>Are you planning this for 2.6.33-rc? or 2.6.34?
I don't think it's -rc material (not a bug fix) so 2.6.34.
It's not a bug fix but due to how often people patch the various clock sources it might be better to get this is soon so that merge conflicts don't show up.
Quoted 5 lines
Quoted 2 lines
This should take care of davinci. Tested on v2.6.33-rc3 + $SUBJECT patch.
Shall I queue this for merging after my patch, or are there likely to be conflicts in this area?
BTW, arch/arm/mach-ep93xx/clock.c might need to be rebased due to you applying 5875/1 and 5879/1 to your git-curr (ep93xx branch).
Regards,
Hartley
PATCH 1/1 Consolidate clks_register() and similar
Quoted 6 lines · H Hartley Sweeten
On Tuesday, January 12, 2010 5:17 AM, Russell King wrote,
Quoted 1 line
I don't think it's -rc material (not a bug fix) so 2.6.34.
It's not a bug fix but due to how often people patch the various clock sources it might be better to get this is soon so that merge conflicts don't show up.
Things in the tables tends to change, rather than the code which sets them up. I don't think there'll be much in the way of conflicts.
Quoted 7 lines
Quoted 4 lines
Quoted 1 line
This should take care of davinci. Tested on v2.6.33-rc3 + $SUBJECT patch.
Shall I queue this for merging after my patch, or are there likely to be conflicts in this area?
BTW,
arch/arm/mach-ep93xx/clock.cmight need to be rebased due to you applying 5875/1 and 5879/1 to your git-curr (ep93xx branch).
It merged fine - more the problem was 5875/1 vs 5879/1 which could only be applied with GNU patch with fuzz.
PATCH 1/1 Consolidate clks_register() and similar
Quoted 10 lines · Russell King
Quoted 6 lines · H Hartley Sweeten
On Tuesday, January 12, 2010 5:17 AM, Russell King wrote,
Quoted 1 line
I don't think it's -rc material (not a bug fix) so 2.6.34.
It's not a bug fix but due to how often people patch the various clock sources it might be better to get this is soon so that merge conflicts don't show up.
Things in the tables tends to change, rather than the code which sets them up. I don't think there'll be much in the way of conflicts.
OK.
Quoted 10 lines
Quoted 7 lines
Quoted 4 lines
Quoted 1 line
This should take care of davinci. Tested on v2.6.33-rc3 + $SUBJECT patch.
Shall I queue this for merging after my patch, or are there likely to be conflicts in this area?
BTW,
arch/arm/mach-ep93xx/clock.cmight need to be rebased due to you applying 5875/1 and 5879/1 to your git-curr (ep93xx branch).It merged fine - more the problem was 5875/1 vs 5879/1 which could only be applied with GNU patch with fuzz.
You must have merged you patch first. The removal of line 448:
- int i;
Probably produced a one line fuzz for both patches. Is everything ok still for those two patches?
Regards,
Hartley
PATCH 1/1 Consolidate clks_register() and similar
Quoted 1 line · H Hartley Sweeten
You must have merged you patch first. The removal of line 448:
No - the ep93xx was merged as a whole with the miscellaneous branch, resulting in no conflicts. Git is occasionally good with merging.
Quoted 4 lines
(quoted diff) +0
-1- int i;Probably produced a one line fuzz for both patches. Is everything ok still for those two patches?
$ diff -u <(pdb getpatch 5879/1) <(git diff-tree -u 346e34abb2c56695ee4bd6af924141c97a0babfb ) --- /proc/self/fd/63 2010-01-12 18:53:48.958011270 +0000 +++ /proc/self/fd/62 2010-01-12 18:53:48.981135820 +0000 @@ -1,13 +1,9 @@ -------------------------------------------------------------------------------- - arch/arm/mach-ep93xx/clock.c | 20 ++++++++++++-------- - arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h | 7 +++++-- - 2 files changed, 17 insertions(+), 10 deletions(-) -------------------------------------------------------------------------------- +346e34abb2c56695ee4bd6af924141c97a0babfb diff --git a/arch/arm/mach-ep93xx/clock.c b/arch/arm/mach-ep93xx/clock.c -index 1d0f9d8..f77c410 100644 +index 07a58d0..27e3351 100644 --- a/arch/arm/mach-ep93xx/clock.c +++ b/arch/arm/mach-ep93xx/clock.c -@@ -447,25 +447,29 @@ static int __init ep93xx_clock_init(void) +@@ -449,25 +449,29 @@ static int __init ep93xx_clock_init(void) u32 value; int i;
@@ -44,7 +40,7 @@
+ /* Initialize the pll2 derived clocks */
clk_usb_host.rate = clk_pll2.rate / (((value >> 28) & 0xf) + 1);
- printk(KERN_INFO "ep93xx: PLL1 running at %ld MHz, PLL2 at %ld MHz\n",
+ pr_info("PLL1 running at %ld MHz, PLL2 at %ld MHz\n",
diff --git a/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h b/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h index d55194a..cd35912 100644
--- a/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
So the only difference in the patch is the pr_info line.
PATCH 1/1 Consolidate clks_register() and similar
In reply to Russell King - ARM LinuxQuoted 9 lines · Russell King - ARM Linux
Quoted 8 lines · Kevin Hilman
Quoted 6 lines · Russell King - ARM Linux
Most machine classes want some way to register a block of
clk_lookupstructures, and most do it by implementing aclks_register()type function which walks an array, or by open-coding a loop.Consolidate all this into
clkdev_add_table().
Quoted 7 lines
Quoted 5 lines
Quoted 1 line
Signed-off-by Russell King <[email protected]>Reviewed-by Kevin Hilman <[email protected]>Are you planning this for 2.6.33-rc? or 2.6.34?
I don't think it's -rc material (not a bug fix) so 2.6.34.
ok
Quoted 4 lines
Quoted 1 line
This should take care of davinci. Tested on v2.6.33-rc3 + $SUBJECT patch.
Shall I queue this for merging after my patch, or are there likely to be conflicts in this area?
There are likely to be conflicts with other davinci patches, so since it's independent from yours, I'll queue in my 2.6.34 queue along with the rest of the davinci changes.
As long as your patch is included in linux-next, there shouldn't be any problems keeping them separate.
Thanks,
Kevin
PATCH 1/1 Consolidate clks_register() and similar
In reply to Russell King - ARM LinuxQuoted 7 lines · Russell King - ARM Linux
Most machine classes want some way to register a block of
clk_lookupstructures, and most do it by implementing aclks_register()type function which walks an array, or by open-coding a loop.Consolidate all this into
clkdev_add_table().Signed-off-by Russell King <[email protected]>
For PXA part, Acked-by: Eric Miao <[email protected]>