* [PATCH v1 1/5] clk: pxa: fix pxa27x CCCR bit usage
2014-10-06 23:07 [PATCH v1 0/5] Fixes for the pxa common clocks Robert Jarzmik
@ 2014-10-06 23:07 ` Robert Jarzmik
2014-11-17 19:25 ` Mike Turquette
2014-10-06 23:07 ` [PATCH v1 2/5] clk: pxa: declare init function and data __init Robert Jarzmik
` (4 subsequent siblings)
5 siblings, 1 reply; 10+ messages in thread
From: Robert Jarzmik @ 2014-10-06 23:07 UTC (permalink / raw)
To: linux-arm-kernel
Trivial fix to check the A bit of CCCR for memory frequency
calculations, where the shift of the bit index was missing, triggering a
wrong calculation of memory frequency.
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
---
drivers/clk/pxa/clk-pxa27x.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/clk/pxa/clk-pxa27x.c b/drivers/clk/pxa/clk-pxa27x.c
index b345cc7..88b9fe1 100644
--- a/drivers/clk/pxa/clk-pxa27x.c
+++ b/drivers/clk/pxa/clk-pxa27x.c
@@ -322,7 +322,7 @@ static unsigned long clk_pxa27x_memory_get_rate(struct clk_hw *hw,
unsigned long ccsr = CCSR;
osc_forced = ccsr & (1 << CCCR_CPDIS_BIT);
- a = cccr & CCCR_A_BIT;
+ a = cccr & (1 << CCCR_A_BIT);
l = ccsr & CCSR_L_MASK;
if (osc_forced || a)
@@ -341,7 +341,7 @@ static u8 clk_pxa27x_memory_get_parent(struct clk_hw *hw)
unsigned long ccsr = CCSR;
osc_forced = ccsr & (1 << CCCR_CPDIS_BIT);
- a = cccr & CCCR_A_BIT;
+ a = cccr & (1 << CCCR_A_BIT);
if (osc_forced)
return PXA_MEM_13Mhz;
if (a)
--
2.1.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v1 1/5] clk: pxa: fix pxa27x CCCR bit usage
2014-10-06 23:07 ` [PATCH v1 1/5] clk: pxa: fix pxa27x CCCR bit usage Robert Jarzmik
@ 2014-11-17 19:25 ` Mike Turquette
0 siblings, 0 replies; 10+ messages in thread
From: Mike Turquette @ 2014-11-17 19:25 UTC (permalink / raw)
To: linux-arm-kernel
Quoting Robert Jarzmik (2014-10-06 16:07:57)
> Trivial fix to check the A bit of CCCR for memory frequency
> calculations, where the shift of the bit index was missing, triggering a
> wrong calculation of memory frequency.
>
> Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Applied to clk-fixes towards -rc6.
Regards,
Mike
> ---
> drivers/clk/pxa/clk-pxa27x.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/clk/pxa/clk-pxa27x.c b/drivers/clk/pxa/clk-pxa27x.c
> index b345cc7..88b9fe1 100644
> --- a/drivers/clk/pxa/clk-pxa27x.c
> +++ b/drivers/clk/pxa/clk-pxa27x.c
> @@ -322,7 +322,7 @@ static unsigned long clk_pxa27x_memory_get_rate(struct clk_hw *hw,
> unsigned long ccsr = CCSR;
>
> osc_forced = ccsr & (1 << CCCR_CPDIS_BIT);
> - a = cccr & CCCR_A_BIT;
> + a = cccr & (1 << CCCR_A_BIT);
> l = ccsr & CCSR_L_MASK;
>
> if (osc_forced || a)
> @@ -341,7 +341,7 @@ static u8 clk_pxa27x_memory_get_parent(struct clk_hw *hw)
> unsigned long ccsr = CCSR;
>
> osc_forced = ccsr & (1 << CCCR_CPDIS_BIT);
> - a = cccr & CCCR_A_BIT;
> + a = cccr & (1 << CCCR_A_BIT);
> if (osc_forced)
> return PXA_MEM_13Mhz;
> if (a)
> --
> 2.1.0
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v1 2/5] clk: pxa: declare init function and data __init
2014-10-06 23:07 [PATCH v1 0/5] Fixes for the pxa common clocks Robert Jarzmik
2014-10-06 23:07 ` [PATCH v1 1/5] clk: pxa: fix pxa27x CCCR bit usage Robert Jarzmik
@ 2014-10-06 23:07 ` Robert Jarzmik
2014-10-06 23:07 ` [PATCH v1 3/5] clk: pxa: keep clocks initialization separated per variant Robert Jarzmik
` (3 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Robert Jarzmik @ 2014-10-06 23:07 UTC (permalink / raw)
To: linux-arm-kernel
As the clock descriptions are constant and only usefull at init time,
mark them as such by :
- spliting clock description (desc) and clock private data (dynamic)
- mark __initdata clock descriptions
This makes all the register and descriptions of the clocks to go after
kernel init phase.
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
---
drivers/clk/pxa/clk-pxa.c | 42 +++++++++++++++++++++++++++---------------
drivers/clk/pxa/clk-pxa.h | 8 ++++----
drivers/clk/pxa/clk-pxa27x.c | 2 +-
3 files changed, 32 insertions(+), 20 deletions(-)
diff --git a/drivers/clk/pxa/clk-pxa.c b/drivers/clk/pxa/clk-pxa.c
index ef3c053..994fd6f 100644
--- a/drivers/clk/pxa/clk-pxa.c
+++ b/drivers/clk/pxa/clk-pxa.c
@@ -26,12 +26,20 @@ static struct clk_onecell_data onecell_data = {
.clk_num = CLK_MAX,
};
-#define to_pxa_clk(_hw) container_of(_hw, struct pxa_clk_cken, hw)
+struct pxa_clk {
+ struct clk_hw hw;
+ struct clk_fixed_factor lp;
+ struct clk_fixed_factor hp;
+ struct clk_gate gate;
+ bool (*is_in_low_power)(void);
+};
+
+#define to_pxa_clk(_hw) container_of(_hw, struct pxa_clk, hw)
static unsigned long cken_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate)
{
- struct pxa_clk_cken *pclk = to_pxa_clk(hw);
+ struct pxa_clk *pclk = to_pxa_clk(hw);
struct clk_fixed_factor *fix;
if (!pclk->is_in_low_power || pclk->is_in_low_power())
@@ -48,7 +56,7 @@ static struct clk_ops cken_rate_ops = {
static u8 cken_get_parent(struct clk_hw *hw)
{
- struct pxa_clk_cken *pclk = to_pxa_clk(hw);
+ struct pxa_clk *pclk = to_pxa_clk(hw);
if (!pclk->is_in_low_power)
return 0;
@@ -69,23 +77,27 @@ void __init clkdev_pxa_register(int ckid, const char *con_id,
clk_register_clkdev(clk, con_id, dev_id);
}
-int __init clk_pxa_cken_init(struct pxa_clk_cken *clks, int nb_clks)
+int __init clk_pxa_cken_init(const struct desc_clk_cken *clks, int nb_clks)
{
int i;
- struct pxa_clk_cken *pclk;
+ struct pxa_clk *pxa_clk;
struct clk *clk;
for (i = 0; i < nb_clks; i++) {
- pclk = clks + i;
- pclk->gate.lock = &lock;
- clk = clk_register_composite(NULL, pclk->name,
- pclk->parent_names, 2,
- &pclk->hw, &cken_mux_ops,
- &pclk->hw, &cken_rate_ops,
- &pclk->gate.hw, &clk_gate_ops,
- pclk->flags);
- clkdev_pxa_register(pclk->ckid, pclk->con_id, pclk->dev_id,
- clk);
+ pxa_clk = kzalloc(sizeof(*pxa_clk), GFP_KERNEL);
+ pxa_clk->is_in_low_power = clks[i].is_in_low_power;
+ pxa_clk->lp = clks[i].lp;
+ pxa_clk->hp = clks[i].hp;
+ pxa_clk->gate = clks[i].gate;
+ pxa_clk->gate.lock = &lock;
+ clk = clk_register_composite(NULL, clks[i].name,
+ clks[i].parent_names, 2,
+ &pxa_clk->hw, &cken_mux_ops,
+ &pxa_clk->hw, &cken_rate_ops,
+ &pxa_clk->gate.hw, &clk_gate_ops,
+ clks[i].flags);
+ clkdev_pxa_register(clks[i].ckid, clks[i].con_id,
+ clks[i].dev_id, clk);
}
return 0;
}
diff --git a/drivers/clk/pxa/clk-pxa.h b/drivers/clk/pxa/clk-pxa.h
index 5fe219d..7b8d48e 100644
--- a/drivers/clk/pxa/clk-pxa.h
+++ b/drivers/clk/pxa/clk-pxa.h
@@ -25,7 +25,7 @@
static struct clk_ops name ## _rate_ops = { \
.recalc_rate = name ## _get_rate, \
}; \
- static struct clk *clk_register_ ## name(void) \
+ static struct clk * __init clk_register_ ## name(void) \
{ \
return clk_register_composite(NULL, clk_name, \
name ## _parents, \
@@ -40,7 +40,7 @@
static struct clk_ops name ## _rate_ops = { \
.recalc_rate = name ## _get_rate, \
}; \
- static struct clk *clk_register_ ## name(void) \
+ static struct clk * __init clk_register_ ## name(void) \
{ \
return clk_register_composite(NULL, clk_name, \
name ## _parents, \
@@ -66,7 +66,7 @@
* | Clock | --- | / div_hp |
* +------------+ +-----------+
*/
-struct pxa_clk_cken {
+struct desc_clk_cken {
struct clk_hw hw;
int ckid;
const char *name;
@@ -102,6 +102,6 @@ static int dummy_clk_set_parent(struct clk_hw *hw, u8 index)
extern void clkdev_pxa_register(int ckid, const char *con_id,
const char *dev_id, struct clk *clk);
-extern int clk_pxa_cken_init(struct pxa_clk_cken *clks, int nb_clks);
+extern int clk_pxa_cken_init(const struct desc_clk_cken *clks, int nb_clks);
#endif
diff --git a/drivers/clk/pxa/clk-pxa27x.c b/drivers/clk/pxa/clk-pxa27x.c
index 88b9fe1..32d3e02 100644
--- a/drivers/clk/pxa/clk-pxa27x.c
+++ b/drivers/clk/pxa/clk-pxa27x.c
@@ -111,7 +111,7 @@ PARENTS(pxa27x_membus) = { "lcd_base", "lcd_base" };
PXA_CKEN_1RATE(dev_id, con_id, bit, parents, \
&CKEN, CKEN_ ## bit, CLK_IGNORE_UNUSED)
-static struct pxa_clk_cken pxa27x_clocks[] = {
+static struct desc_clk_cken pxa27x_clocks[] __initdata = {
PXA27X_PBUS_CKEN("pxa2xx-uart.0", NULL, FFUART, 2, 42, 1),
PXA27X_PBUS_CKEN("pxa2xx-uart.1", NULL, BTUART, 2, 42, 1),
PXA27X_PBUS_CKEN("pxa2xx-uart.2", NULL, STUART, 2, 42, 1),
--
2.1.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v1 3/5] clk: pxa: keep clocks initialization separated per variant
2014-10-06 23:07 [PATCH v1 0/5] Fixes for the pxa common clocks Robert Jarzmik
2014-10-06 23:07 ` [PATCH v1 1/5] clk: pxa: fix pxa27x CCCR bit usage Robert Jarzmik
2014-10-06 23:07 ` [PATCH v1 2/5] clk: pxa: declare init function and data __init Robert Jarzmik
@ 2014-10-06 23:07 ` Robert Jarzmik
2014-11-17 19:32 ` Mike Turquette
2014-10-06 23:08 ` [PATCH v1 4/5] DON'T MERGE ME: arm: pxa: change clocks init sequence Robert Jarzmik
` (2 subsequent siblings)
5 siblings, 1 reply; 10+ messages in thread
From: Robert Jarzmik @ 2014-10-06 23:07 UTC (permalink / raw)
To: linux-arm-kernel
Have each pxa variant (pxa25x, pxa27x, pxa3xx) have its own device-tree
clock initializing function, to be able to register its own specific
core clocks.
Apply that change specifically to pxa27x.
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
---
drivers/clk/pxa/clk-pxa.c | 3 +--
drivers/clk/pxa/clk-pxa.h | 1 +
drivers/clk/pxa/clk-pxa27x.c | 7 +++++++
3 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/clk/pxa/clk-pxa.c b/drivers/clk/pxa/clk-pxa.c
index 994fd6f..4e83475 100644
--- a/drivers/clk/pxa/clk-pxa.c
+++ b/drivers/clk/pxa/clk-pxa.c
@@ -102,8 +102,7 @@ int __init clk_pxa_cken_init(const struct desc_clk_cken *clks, int nb_clks)
return 0;
}
-static void __init pxa_dt_clocks_init(struct device_node *np)
+void __init clk_pxa_dt_common_init(struct device_node *np)
{
of_clk_add_provider(np, of_clk_src_onecell_get, &onecell_data);
}
-CLK_OF_DECLARE(pxa_clks, "marvell,pxa-clocks", pxa_dt_clocks_init);
diff --git a/drivers/clk/pxa/clk-pxa.h b/drivers/clk/pxa/clk-pxa.h
index 7b8d48e..3239654 100644
--- a/drivers/clk/pxa/clk-pxa.h
+++ b/drivers/clk/pxa/clk-pxa.h
@@ -103,5 +103,6 @@ static int dummy_clk_set_parent(struct clk_hw *hw, u8 index)
extern void clkdev_pxa_register(int ckid, const char *con_id,
const char *dev_id, struct clk *clk);
extern int clk_pxa_cken_init(const struct desc_clk_cken *clks, int nb_clks);
+void clk_pxa_dt_common_init(struct device_node *np);
#endif
diff --git a/drivers/clk/pxa/clk-pxa27x.c b/drivers/clk/pxa/clk-pxa27x.c
index 32d3e02..5f9b54b 100644
--- a/drivers/clk/pxa/clk-pxa27x.c
+++ b/drivers/clk/pxa/clk-pxa27x.c
@@ -368,3 +368,10 @@ static int __init pxa27x_clocks_init(void)
return clk_pxa_cken_init(pxa27x_clocks, ARRAY_SIZE(pxa27x_clocks));
}
postcore_initcall(pxa27x_clocks_init);
+
+static void __init pxa27x_dt_clocks_init(struct device_node *np)
+{
+ pxa27x_clocks_init();
+ clk_pxa_dt_common_init(np);
+}
+CLK_OF_DECLARE(pxa_clks, "marvell,pxa270-clocks", pxa27x_dt_clocks_init);
--
2.1.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v1 3/5] clk: pxa: keep clocks initialization separated per variant
2014-10-06 23:07 ` [PATCH v1 3/5] clk: pxa: keep clocks initialization separated per variant Robert Jarzmik
@ 2014-11-17 19:32 ` Mike Turquette
0 siblings, 0 replies; 10+ messages in thread
From: Mike Turquette @ 2014-11-17 19:32 UTC (permalink / raw)
To: linux-arm-kernel
Quoting Robert Jarzmik (2014-10-06 16:07:59)
> Have each pxa variant (pxa25x, pxa27x, pxa3xx) have its own device-tree
> clock initializing function, to be able to register its own specific
> core clocks.
>
> Apply that change specifically to pxa27x.
>
> Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Patches #2 & #3 applied to clk-next.
Regards,
Mike
> ---
> drivers/clk/pxa/clk-pxa.c | 3 +--
> drivers/clk/pxa/clk-pxa.h | 1 +
> drivers/clk/pxa/clk-pxa27x.c | 7 +++++++
> 3 files changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/clk/pxa/clk-pxa.c b/drivers/clk/pxa/clk-pxa.c
> index 994fd6f..4e83475 100644
> --- a/drivers/clk/pxa/clk-pxa.c
> +++ b/drivers/clk/pxa/clk-pxa.c
> @@ -102,8 +102,7 @@ int __init clk_pxa_cken_init(const struct desc_clk_cken *clks, int nb_clks)
> return 0;
> }
>
> -static void __init pxa_dt_clocks_init(struct device_node *np)
> +void __init clk_pxa_dt_common_init(struct device_node *np)
> {
> of_clk_add_provider(np, of_clk_src_onecell_get, &onecell_data);
> }
> -CLK_OF_DECLARE(pxa_clks, "marvell,pxa-clocks", pxa_dt_clocks_init);
> diff --git a/drivers/clk/pxa/clk-pxa.h b/drivers/clk/pxa/clk-pxa.h
> index 7b8d48e..3239654 100644
> --- a/drivers/clk/pxa/clk-pxa.h
> +++ b/drivers/clk/pxa/clk-pxa.h
> @@ -103,5 +103,6 @@ static int dummy_clk_set_parent(struct clk_hw *hw, u8 index)
> extern void clkdev_pxa_register(int ckid, const char *con_id,
> const char *dev_id, struct clk *clk);
> extern int clk_pxa_cken_init(const struct desc_clk_cken *clks, int nb_clks);
> +void clk_pxa_dt_common_init(struct device_node *np);
>
> #endif
> diff --git a/drivers/clk/pxa/clk-pxa27x.c b/drivers/clk/pxa/clk-pxa27x.c
> index 32d3e02..5f9b54b 100644
> --- a/drivers/clk/pxa/clk-pxa27x.c
> +++ b/drivers/clk/pxa/clk-pxa27x.c
> @@ -368,3 +368,10 @@ static int __init pxa27x_clocks_init(void)
> return clk_pxa_cken_init(pxa27x_clocks, ARRAY_SIZE(pxa27x_clocks));
> }
> postcore_initcall(pxa27x_clocks_init);
> +
> +static void __init pxa27x_dt_clocks_init(struct device_node *np)
> +{
> + pxa27x_clocks_init();
> + clk_pxa_dt_common_init(np);
> +}
> +CLK_OF_DECLARE(pxa_clks, "marvell,pxa270-clocks", pxa27x_dt_clocks_init);
> --
> 2.1.0
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v1 4/5] DON'T MERGE ME: arm: pxa: change clocks init sequence
2014-10-06 23:07 [PATCH v1 0/5] Fixes for the pxa common clocks Robert Jarzmik
` (2 preceding siblings ...)
2014-10-06 23:07 ` [PATCH v1 3/5] clk: pxa: keep clocks initialization separated per variant Robert Jarzmik
@ 2014-10-06 23:08 ` Robert Jarzmik
2014-10-06 23:08 ` [PATCH v1 5/5] DON'T MERGE ME: clk: pxa: migrate to the clk_core API Robert Jarzmik
2014-10-30 6:51 ` [PATCH v1 0/5] Fixes for the pxa common clocks Robert Jarzmik
5 siblings, 0 replies; 10+ messages in thread
From: Robert Jarzmik @ 2014-10-06 23:08 UTC (permalink / raw)
To: linux-arm-kernel
Since pxa clocks were ported to the clock framework, an ordering issue
appears between clocks and clocksource initialization. As a consequence,
the pxa timer clock cannot be acquired in pxa_timer, and is disabled by
clock framework because it is "unused".
The ordering issue is that in the kernel boot sequence :
start_kernel()
...
time_init()
-> pxa_timer()
-> here the clocksource is initialized
...
rest_init()
kernel_init()
initcalls
-> here the clocks are initialized
In the current sequence, the clocks are initialized way after pxa_timer,
which cannot acquire the OSTIMER0 clock.
To solve this issue, the clocks initialization is moved to pxa_timer(),
so that clocks are initialized before clocksource for non device-tree.
For device-tree, the standard arm time_init() will take care of the
ordering.
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
---
arch/arm/mach-pxa/generic.c | 2 ++
arch/arm/mach-pxa/generic.h | 1 +
drivers/clk/pxa/clk-pxa27x.c | 3 +--
3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-pxa/generic.c b/arch/arm/mach-pxa/generic.c
index 04b013f..4ca801b 100644
--- a/arch/arm/mach-pxa/generic.c
+++ b/arch/arm/mach-pxa/generic.c
@@ -63,6 +63,8 @@ EXPORT_SYMBOL(get_clock_tick_rate);
*/
void __init pxa_timer_init(void)
{
+ if (cpu_is_pxa27x())
+ pxa27x_clocks_init();
pxa_timer_nodt_init(IRQ_OST0, io_p2v(0x40a00000),
get_clock_tick_rate());
}
diff --git a/arch/arm/mach-pxa/generic.h b/arch/arm/mach-pxa/generic.h
index 8963984..7fda082 100644
--- a/arch/arm/mach-pxa/generic.h
+++ b/arch/arm/mach-pxa/generic.h
@@ -14,6 +14,7 @@
struct irq_data;
extern void pxa_timer_init(void);
+extern int pxa27x_clocks_init(void);
extern void __init pxa_map_io(void);
diff --git a/drivers/clk/pxa/clk-pxa27x.c b/drivers/clk/pxa/clk-pxa27x.c
index 5f9b54b..2b8343a 100644
--- a/drivers/clk/pxa/clk-pxa27x.c
+++ b/drivers/clk/pxa/clk-pxa27x.c
@@ -362,12 +362,11 @@ static void __init pxa27x_base_clocks_init(void)
clk_register_clk_pxa27x_lcd_base();
}
-static int __init pxa27x_clocks_init(void)
+int __init pxa27x_clocks_init(void)
{
pxa27x_base_clocks_init();
return clk_pxa_cken_init(pxa27x_clocks, ARRAY_SIZE(pxa27x_clocks));
}
-postcore_initcall(pxa27x_clocks_init);
static void __init pxa27x_dt_clocks_init(struct device_node *np)
{
--
2.1.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v1 5/5] DON'T MERGE ME: clk: pxa: migrate to the clk_core API
2014-10-06 23:07 [PATCH v1 0/5] Fixes for the pxa common clocks Robert Jarzmik
` (3 preceding siblings ...)
2014-10-06 23:08 ` [PATCH v1 4/5] DON'T MERGE ME: arm: pxa: change clocks init sequence Robert Jarzmik
@ 2014-10-06 23:08 ` Robert Jarzmik
2014-10-30 6:51 ` [PATCH v1 0/5] Fixes for the pxa common clocks Robert Jarzmik
5 siblings, 0 replies; 10+ messages in thread
From: Robert Jarzmik @ 2014-10-06 23:08 UTC (permalink / raw)
To: linux-arm-kernel
After the clock framework split structure clk and clk_core, amend the
pxa clock providers for the new API.
This patch was tested on a pxa270 on top of Tomeu's patches v9.
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
---
drivers/clk/pxa/clk-pxa.c | 6 +++---
drivers/clk/pxa/clk-pxa.h | 8 ++++----
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/clk/pxa/clk-pxa.c b/drivers/clk/pxa/clk-pxa.c
index 4e83475..8cc29a9 100644
--- a/drivers/clk/pxa/clk-pxa.c
+++ b/drivers/clk/pxa/clk-pxa.c
@@ -20,7 +20,7 @@
DEFINE_SPINLOCK(lock);
-static struct clk *pxa_clocks[CLK_MAX];
+static struct clk_core *pxa_clocks[CLK_MAX];
static struct clk_onecell_data onecell_data = {
.clks = pxa_clocks,
.clk_num = CLK_MAX,
@@ -69,7 +69,7 @@ static struct clk_ops cken_mux_ops = {
};
void __init clkdev_pxa_register(int ckid, const char *con_id,
- const char *dev_id, struct clk *clk)
+ const char *dev_id, struct clk_core *clk)
{
if (!IS_ERR(clk) && (ckid != CLK_NONE))
pxa_clocks[ckid] = clk;
@@ -81,7 +81,7 @@ int __init clk_pxa_cken_init(const struct desc_clk_cken *clks, int nb_clks)
{
int i;
struct pxa_clk *pxa_clk;
- struct clk *clk;
+ struct clk_core *clk;
for (i = 0; i < nb_clks; i++) {
pxa_clk = kzalloc(sizeof(*pxa_clk), GFP_KERNEL);
diff --git a/drivers/clk/pxa/clk-pxa.h b/drivers/clk/pxa/clk-pxa.h
index 3239654..e2dd28d 100644
--- a/drivers/clk/pxa/clk-pxa.h
+++ b/drivers/clk/pxa/clk-pxa.h
@@ -25,7 +25,7 @@
static struct clk_ops name ## _rate_ops = { \
.recalc_rate = name ## _get_rate, \
}; \
- static struct clk * __init clk_register_ ## name(void) \
+ static struct clk_core * __init clk_register_ ## name(void) \
{ \
return clk_register_composite(NULL, clk_name, \
name ## _parents, \
@@ -40,7 +40,7 @@
static struct clk_ops name ## _rate_ops = { \
.recalc_rate = name ## _get_rate, \
}; \
- static struct clk * __init clk_register_ ## name(void) \
+ static struct clk_core * __init clk_register_ ## name(void) \
{ \
return clk_register_composite(NULL, clk_name, \
name ## _parents, \
@@ -101,8 +101,8 @@ static int dummy_clk_set_parent(struct clk_hw *hw, u8 index)
}
extern void clkdev_pxa_register(int ckid, const char *con_id,
- const char *dev_id, struct clk *clk);
-extern int clk_pxa_cken_init(const struct desc_clk_cken *clks, int nb_clks);
+ const char *dev_id, struct clk_core *clk);
+extern int clk_pxa_cken_init(struct desc_clk_cken *clks, int nb_clks);
void clk_pxa_dt_common_init(struct device_node *np);
#endif
--
2.1.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v1 0/5] Fixes for the pxa common clocks
2014-10-06 23:07 [PATCH v1 0/5] Fixes for the pxa common clocks Robert Jarzmik
` (4 preceding siblings ...)
2014-10-06 23:08 ` [PATCH v1 5/5] DON'T MERGE ME: clk: pxa: migrate to the clk_core API Robert Jarzmik
@ 2014-10-30 6:51 ` Robert Jarzmik
2014-11-07 22:05 ` Robert Jarzmik
5 siblings, 1 reply; 10+ messages in thread
From: Robert Jarzmik @ 2014-10-30 6:51 UTC (permalink / raw)
To: linux-arm-kernel
Robert Jarzmik <robert.jarzmik@free.fr> writes:
> Hi Mike, Arnd, Haojian,
>
> Here are all the fixes I had gathered so far on pxa clocks serie.
>
> Amongst these :
> - only patch 1/5 is a really required fix
> - patches 2/5 and 3/5, after review, could go to the next merge window
> - patch 4/5 should be carefully reviewed by pxa and arm people, but not merged
> until pxa25x support is in place.
> - patch 5/5 should only be considered if ever Tomeu's changes get in.
>
> I'm sending these to give us time to review ahead of time. And of course they
> have only been tested on a single pxa27x platform, but once my environment is
> ready, I'll pass a full build test on all PXA platform.
>
> Cheers.
Hi Mike,
Did you had a chance to look at those patches (1/5 to 3/5) ?
Cheers.
--
Robert
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH v1 0/5] Fixes for the pxa common clocks
2014-10-30 6:51 ` [PATCH v1 0/5] Fixes for the pxa common clocks Robert Jarzmik
@ 2014-11-07 22:05 ` Robert Jarzmik
0 siblings, 0 replies; 10+ messages in thread
From: Robert Jarzmik @ 2014-11-07 22:05 UTC (permalink / raw)
To: linux-arm-kernel
Robert Jarzmik <robert.jarzmik@free.fr> writes:
> Robert Jarzmik <robert.jarzmik@free.fr> writes:
>
>> Hi Mike, Arnd, Haojian,
>>
>> Here are all the fixes I had gathered so far on pxa clocks serie.
>>
>> Amongst these :
>> - only patch 1/5 is a really required fix
>> - patches 2/5 and 3/5, after review, could go to the next merge window
>> - patch 4/5 should be carefully reviewed by pxa and arm people, but not merged
>> until pxa25x support is in place.
>> - patch 5/5 should only be considered if ever Tomeu's changes get in.
>>
>> I'm sending these to give us time to review ahead of time. And of course they
>> have only been tested on a single pxa27x platform, but once my environment is
>> ready, I'll pass a full build test on all PXA platform.
>>
>> Cheers.
>
> Hi Mike,
>
> Did you had a chance to look at those patches (1/5 to 3/5) ?
Mike ?
--
Robert
^ permalink raw reply [flat|nested] 10+ messages in thread