* [GIT PULL] clk: sunxi-ng: clk parent rewrite part 1 - take 2
@ 2019-06-22 2:22 ` Chen-Yu Tsai
0 siblings, 0 replies; 6+ messages in thread
From: Chen-Yu Tsai @ 2019-06-22 2:22 UTC (permalink / raw)
To: Michael Turquette, Stephen Boyd
Cc: Maxime Ripard, Chen-Yu Tsai, linux-clk, linux-arm-kernel
[-- Attachment #1: Type: text/plain, Size: 5341 bytes --]
Hi,
Take 2 has build errors in drivers/clk/sunxi-ng/ccu-suniv-f1c100s.c
fixed.
The following changes since commit a188339ca5a396acc588e5851ed7e19f66b0ebd9:
Linux 5.2-rc1 (2019-05-19 15:47:09 -0700)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git sunxi-ng-parent-rewrite-part-1-take-2
for you to fetch changes up to 89f27fb2dd348d8d52a97e6ebec15c64fe461a25:
clk: sunxi-ng: sun8i-r: Use local parent references for SUNXI_CCU_GATE (2019-06-22 10:13:16 +0800)
----------------------------------------------------------------
Allwinner sunxi-ng clk driver parent relation rewrite part 1 - take 2
The first part of ongoing work to convert the sunxi-ng clk driver from
using global clock name strings to describe clk parenting, to having
direct struct clk_hw pointers, or local names based on clock-names from
the device tree binding.
This is based on Stephen Boyd's recent work allowing clk drivers to
specify clk parents using struct clk_hw * or parsing DT phandles in the
clk node.
This series can be split into a few major parts:
1) The first patch is a small fix for clk debugfs representation.
2) A bunch of CLK_HW_INIT_* helper macros are added. These cover the
situations I encountered, or assume I will encounter, such as single
internal (struct clk_hw *) parent, single DT (struct clk_parent_data
.fw_name), multiple internal parents, and multiple mixed (internal +
DT) parents. A special variant for just an internal single parent is
added, CLK_HW_INIT_HWS, which lets the driver share the singular
list, instead of having the compiler create a compound literal every
time. It might even make sense to only keep this variant.
3) A bunch of CLK_FIXED_FACTOR_* helper macros are added. The rationale
is the same as the single parent CLK_HW_INIT_* helpers.
4) Bulk conversion of CLK_FIXED_FACTOR to use local parent references,
either struct clk_hw * or DT .fw_name types, whichever the hardware
requires.
5) The beginning of SUNXI_CCU_GATE conversion to local parent
references. This part is not done. They are included as justification
and examples for the shared list of clk parents case.
----------------------------------------------------------------
Chen-Yu Tsai (25):
clk: Fix debugfs clk_possible_parents for clks without parent string names
clk: Add CLK_HW_INIT_* macros using .parent_hws
clk: Add CLK_HW_INIT_FW_NAME macro using .fw_name in .parent_data
clk: Add CLK_HW_INIT_PARENT_DATA macro using .parent_data
clk: fixed-factor: Add CLK_FIXED_FACTOR_HW which takes clk_hw pointer as parent
clk: fixed-factor: Add CLK_FIXED_FACTOR_HWS which takes list of struct clk_hw *
clk: fixed-factor: Add CLK_FIXED_FACTOR_FW_NAME for DT clock-names parent
clk: sunxi-ng: switch to of_clk_hw_register() for registering clks
clk: sunxi-ng: sun8i-r: Use local parent references for CLK_HW_INIT_*
clk: sunxi-ng: a10: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: sun5i: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: a31: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: a23: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: a33: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: h3: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: r40: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: v3s: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: sun8i-r: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: f1c100s: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: a64: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: h6: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: h6-r: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: gate: Add macros for referencing local clock parents
clk: sunxi-ng: a80-usb: Use local parent references for SUNXI_CCU_GATE
clk: sunxi-ng: sun8i-r: Use local parent references for SUNXI_CCU_GATE
drivers/clk/clk.c | 44 ++++++++++++-
drivers/clk/sunxi-ng/ccu-sun4i-a10.c | 39 +++++++-----
drivers/clk/sunxi-ng/ccu-sun50i-a64.c | 41 +++++++-----
drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c | 2 +-
drivers/clk/sunxi-ng/ccu-sun50i-h6.c | 69 ++++++++++++--------
drivers/clk/sunxi-ng/ccu-sun5i.c | 34 ++++++----
drivers/clk/sunxi-ng/ccu-sun6i-a31.c | 39 +++++++-----
drivers/clk/sunxi-ng/ccu-sun8i-a23.c | 34 ++++++----
drivers/clk/sunxi-ng/ccu-sun8i-a33.c | 34 ++++++----
drivers/clk/sunxi-ng/ccu-sun8i-h3.c | 29 ++++++---
drivers/clk/sunxi-ng/ccu-sun8i-r.c | 104 +++++++++++++++----------------
drivers/clk/sunxi-ng/ccu-sun8i-r40.c | 46 +++++++++-----
drivers/clk/sunxi-ng/ccu-sun8i-v3s.c | 29 ++++++---
drivers/clk/sunxi-ng/ccu-sun9i-a80-usb.c | 32 ++++++----
drivers/clk/sunxi-ng/ccu-suniv-f1c100s.c | 29 ++++++---
drivers/clk/sunxi-ng/ccu_common.c | 2 +-
drivers/clk/sunxi-ng/ccu_gate.h | 53 ++++++++++++++++
include/linux/clk-provider.h | 89 ++++++++++++++++++++++++++
18 files changed, 526 insertions(+), 223 deletions(-)
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* [GIT PULL] clk: sunxi-ng: clk parent rewrite part 1 - take 2
@ 2019-06-22 2:22 ` Chen-Yu Tsai
0 siblings, 0 replies; 6+ messages in thread
From: Chen-Yu Tsai @ 2019-06-22 2:22 UTC (permalink / raw)
To: Michael Turquette, Stephen Boyd
Cc: Maxime Ripard, Chen-Yu Tsai, linux-clk, linux-arm-kernel
[-- Attachment #1.1: Type: text/plain, Size: 5341 bytes --]
Hi,
Take 2 has build errors in drivers/clk/sunxi-ng/ccu-suniv-f1c100s.c
fixed.
The following changes since commit a188339ca5a396acc588e5851ed7e19f66b0ebd9:
Linux 5.2-rc1 (2019-05-19 15:47:09 -0700)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git sunxi-ng-parent-rewrite-part-1-take-2
for you to fetch changes up to 89f27fb2dd348d8d52a97e6ebec15c64fe461a25:
clk: sunxi-ng: sun8i-r: Use local parent references for SUNXI_CCU_GATE (2019-06-22 10:13:16 +0800)
----------------------------------------------------------------
Allwinner sunxi-ng clk driver parent relation rewrite part 1 - take 2
The first part of ongoing work to convert the sunxi-ng clk driver from
using global clock name strings to describe clk parenting, to having
direct struct clk_hw pointers, or local names based on clock-names from
the device tree binding.
This is based on Stephen Boyd's recent work allowing clk drivers to
specify clk parents using struct clk_hw * or parsing DT phandles in the
clk node.
This series can be split into a few major parts:
1) The first patch is a small fix for clk debugfs representation.
2) A bunch of CLK_HW_INIT_* helper macros are added. These cover the
situations I encountered, or assume I will encounter, such as single
internal (struct clk_hw *) parent, single DT (struct clk_parent_data
.fw_name), multiple internal parents, and multiple mixed (internal +
DT) parents. A special variant for just an internal single parent is
added, CLK_HW_INIT_HWS, which lets the driver share the singular
list, instead of having the compiler create a compound literal every
time. It might even make sense to only keep this variant.
3) A bunch of CLK_FIXED_FACTOR_* helper macros are added. The rationale
is the same as the single parent CLK_HW_INIT_* helpers.
4) Bulk conversion of CLK_FIXED_FACTOR to use local parent references,
either struct clk_hw * or DT .fw_name types, whichever the hardware
requires.
5) The beginning of SUNXI_CCU_GATE conversion to local parent
references. This part is not done. They are included as justification
and examples for the shared list of clk parents case.
----------------------------------------------------------------
Chen-Yu Tsai (25):
clk: Fix debugfs clk_possible_parents for clks without parent string names
clk: Add CLK_HW_INIT_* macros using .parent_hws
clk: Add CLK_HW_INIT_FW_NAME macro using .fw_name in .parent_data
clk: Add CLK_HW_INIT_PARENT_DATA macro using .parent_data
clk: fixed-factor: Add CLK_FIXED_FACTOR_HW which takes clk_hw pointer as parent
clk: fixed-factor: Add CLK_FIXED_FACTOR_HWS which takes list of struct clk_hw *
clk: fixed-factor: Add CLK_FIXED_FACTOR_FW_NAME for DT clock-names parent
clk: sunxi-ng: switch to of_clk_hw_register() for registering clks
clk: sunxi-ng: sun8i-r: Use local parent references for CLK_HW_INIT_*
clk: sunxi-ng: a10: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: sun5i: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: a31: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: a23: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: a33: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: h3: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: r40: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: v3s: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: sun8i-r: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: f1c100s: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: a64: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: h6: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: h6-r: Use local parent references for CLK_FIXED_FACTOR
clk: sunxi-ng: gate: Add macros for referencing local clock parents
clk: sunxi-ng: a80-usb: Use local parent references for SUNXI_CCU_GATE
clk: sunxi-ng: sun8i-r: Use local parent references for SUNXI_CCU_GATE
drivers/clk/clk.c | 44 ++++++++++++-
drivers/clk/sunxi-ng/ccu-sun4i-a10.c | 39 +++++++-----
drivers/clk/sunxi-ng/ccu-sun50i-a64.c | 41 +++++++-----
drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c | 2 +-
drivers/clk/sunxi-ng/ccu-sun50i-h6.c | 69 ++++++++++++--------
drivers/clk/sunxi-ng/ccu-sun5i.c | 34 ++++++----
drivers/clk/sunxi-ng/ccu-sun6i-a31.c | 39 +++++++-----
drivers/clk/sunxi-ng/ccu-sun8i-a23.c | 34 ++++++----
drivers/clk/sunxi-ng/ccu-sun8i-a33.c | 34 ++++++----
drivers/clk/sunxi-ng/ccu-sun8i-h3.c | 29 ++++++---
drivers/clk/sunxi-ng/ccu-sun8i-r.c | 104 +++++++++++++++----------------
drivers/clk/sunxi-ng/ccu-sun8i-r40.c | 46 +++++++++-----
drivers/clk/sunxi-ng/ccu-sun8i-v3s.c | 29 ++++++---
drivers/clk/sunxi-ng/ccu-sun9i-a80-usb.c | 32 ++++++----
drivers/clk/sunxi-ng/ccu-suniv-f1c100s.c | 29 ++++++---
drivers/clk/sunxi-ng/ccu_common.c | 2 +-
drivers/clk/sunxi-ng/ccu_gate.h | 53 ++++++++++++++++
include/linux/clk-provider.h | 89 ++++++++++++++++++++++++++
18 files changed, 526 insertions(+), 223 deletions(-)
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
[-- Attachment #2: Type: text/plain, Size: 176 bytes --]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [GIT PULL] clk: sunxi-ng: clk parent rewrite part 1 - take 2
2019-06-22 2:22 ` Chen-Yu Tsai
@ 2019-06-25 3:01 ` Stephen Boyd
-1 siblings, 0 replies; 6+ messages in thread
From: Stephen Boyd @ 2019-06-25 3:01 UTC (permalink / raw)
To: Chen-Yu Tsai, Michael Turquette
Cc: Maxime Ripard, Chen-Yu Tsai, linux-clk, linux-arm-kernel
Quoting Chen-Yu Tsai (2019-06-21 19:22:54)
> Hi,
>
> Take 2 has build errors in drivers/clk/sunxi-ng/ccu-suniv-f1c100s.c
> fixed.
>
> The following changes since commit a188339ca5a396acc588e5851ed7e19f66b0ebd9:
>
> Linux 5.2-rc1 (2019-05-19 15:47:09 -0700)
>
> are available in the Git repository at:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git sunxi-ng-parent-rewrite-part-1-take-2
>
> for you to fetch changes up to 89f27fb2dd348d8d52a97e6ebec15c64fe461a25:
>
> clk: sunxi-ng: sun8i-r: Use local parent references for SUNXI_CCU_GATE (2019-06-22 10:13:16 +0800)
>
> ----------------------------------------------------------------
Thanks. Pulled into clk-next. I applied this patch on top though to
clean up the debugfs patch. A newline was missing. Does it make sense? I
haven't tested it at all.
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index 093161ca4dcc..09d8e84a1968 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -2997,11 +2997,10 @@ static int clk_flags_show(struct seq_file *s, void *data)
}
DEFINE_SHOW_ATTRIBUTE(clk_flags);
-static int possible_parents_show(struct seq_file *s, void *data)
+static void possible_parent_show(struct seq_file *s, struct clk_core *core,
+ unsigned int i, char terminator)
{
- struct clk_core *core = s->private;
struct clk_core *parent;
- int i;
/*
* Go through the following options to fetch a parent's name.
@@ -3015,22 +3014,6 @@ static int possible_parents_show(struct seq_file *s, void *data)
* specified directly via a struct clk_hw pointer, but it isn't
* registered (yet).
*/
- for (i = 0; i < core->num_parents - 1; i++) {
- parent = clk_core_get_parent_by_index(core, i);
- if (parent)
- seq_printf(s, "%s ", parent->name);
- else if (core->parents[i].name)
- seq_printf(s, "%s ", core->parents[i].name);
- else if (core->parents[i].fw_name)
- seq_printf(s, "<%s>(fw) ", core->parents[i].fw_name);
- else if (core->parents[i].index >= 0)
- seq_printf(s, "%s ",
- of_clk_get_parent_name(core->of_node,
- core->parents[i].index));
- else
- seq_puts(s, "(missing) ");
- }
-
parent = clk_core_get_parent_by_index(core, i);
if (parent)
seq_printf(s, "%s", parent->name);
@@ -3045,6 +3028,19 @@ static int possible_parents_show(struct seq_file *s, void *data)
else
seq_puts(s, "(missing)");
+ seq_putc(s, terminator);
+}
+
+static int possible_parents_show(struct seq_file *s, void *data)
+{
+ struct clk_core *core = s->private;
+ int i;
+
+ for (i = 0; i < core->num_parents - 1; i++)
+ possible_parent_show(s, core, i, ' ');
+
+ possible_parent_show(s, core, i, '\n');
+
return 0;
}
DEFINE_SHOW_ATTRIBUTE(possible_parents);
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [GIT PULL] clk: sunxi-ng: clk parent rewrite part 1 - take 2
@ 2019-06-25 3:01 ` Stephen Boyd
0 siblings, 0 replies; 6+ messages in thread
From: Stephen Boyd @ 2019-06-25 3:01 UTC (permalink / raw)
To: Chen-Yu Tsai, Michael Turquette
Cc: Maxime Ripard, Chen-Yu Tsai, linux-clk, linux-arm-kernel
Quoting Chen-Yu Tsai (2019-06-21 19:22:54)
> Hi,
>
> Take 2 has build errors in drivers/clk/sunxi-ng/ccu-suniv-f1c100s.c
> fixed.
>
> The following changes since commit a188339ca5a396acc588e5851ed7e19f66b0ebd9:
>
> Linux 5.2-rc1 (2019-05-19 15:47:09 -0700)
>
> are available in the Git repository at:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git sunxi-ng-parent-rewrite-part-1-take-2
>
> for you to fetch changes up to 89f27fb2dd348d8d52a97e6ebec15c64fe461a25:
>
> clk: sunxi-ng: sun8i-r: Use local parent references for SUNXI_CCU_GATE (2019-06-22 10:13:16 +0800)
>
> ----------------------------------------------------------------
Thanks. Pulled into clk-next. I applied this patch on top though to
clean up the debugfs patch. A newline was missing. Does it make sense? I
haven't tested it at all.
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index 093161ca4dcc..09d8e84a1968 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -2997,11 +2997,10 @@ static int clk_flags_show(struct seq_file *s, void *data)
}
DEFINE_SHOW_ATTRIBUTE(clk_flags);
-static int possible_parents_show(struct seq_file *s, void *data)
+static void possible_parent_show(struct seq_file *s, struct clk_core *core,
+ unsigned int i, char terminator)
{
- struct clk_core *core = s->private;
struct clk_core *parent;
- int i;
/*
* Go through the following options to fetch a parent's name.
@@ -3015,22 +3014,6 @@ static int possible_parents_show(struct seq_file *s, void *data)
* specified directly via a struct clk_hw pointer, but it isn't
* registered (yet).
*/
- for (i = 0; i < core->num_parents - 1; i++) {
- parent = clk_core_get_parent_by_index(core, i);
- if (parent)
- seq_printf(s, "%s ", parent->name);
- else if (core->parents[i].name)
- seq_printf(s, "%s ", core->parents[i].name);
- else if (core->parents[i].fw_name)
- seq_printf(s, "<%s>(fw) ", core->parents[i].fw_name);
- else if (core->parents[i].index >= 0)
- seq_printf(s, "%s ",
- of_clk_get_parent_name(core->of_node,
- core->parents[i].index));
- else
- seq_puts(s, "(missing) ");
- }
-
parent = clk_core_get_parent_by_index(core, i);
if (parent)
seq_printf(s, "%s", parent->name);
@@ -3045,6 +3028,19 @@ static int possible_parents_show(struct seq_file *s, void *data)
else
seq_puts(s, "(missing)");
+ seq_putc(s, terminator);
+}
+
+static int possible_parents_show(struct seq_file *s, void *data)
+{
+ struct clk_core *core = s->private;
+ int i;
+
+ for (i = 0; i < core->num_parents - 1; i++)
+ possible_parent_show(s, core, i, ' ');
+
+ possible_parent_show(s, core, i, '\n');
+
return 0;
}
DEFINE_SHOW_ATTRIBUTE(possible_parents);
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [GIT PULL] clk: sunxi-ng: clk parent rewrite part 1 - take 2
2019-06-25 3:01 ` Stephen Boyd
@ 2019-06-25 3:15 ` Chen-Yu Tsai
-1 siblings, 0 replies; 6+ messages in thread
From: Chen-Yu Tsai @ 2019-06-25 3:15 UTC (permalink / raw)
To: Stephen Boyd
Cc: Chen-Yu Tsai, Michael Turquette, Maxime Ripard, linux-clk,
linux-arm-kernel
On Tue, Jun 25, 2019 at 11:01 AM Stephen Boyd <sboyd@kernel.org> wrote:
>
> Quoting Chen-Yu Tsai (2019-06-21 19:22:54)
> > Hi,
> >
> > Take 2 has build errors in drivers/clk/sunxi-ng/ccu-suniv-f1c100s.c
> > fixed.
> >
> > The following changes since commit a188339ca5a396acc588e5851ed7e19f66b0ebd9:
> >
> > Linux 5.2-rc1 (2019-05-19 15:47:09 -0700)
> >
> > are available in the Git repository at:
> >
> > https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git sunxi-ng-parent-rewrite-part-1-take-2
> >
> > for you to fetch changes up to 89f27fb2dd348d8d52a97e6ebec15c64fe461a25:
> >
> > clk: sunxi-ng: sun8i-r: Use local parent references for SUNXI_CCU_GATE (2019-06-22 10:13:16 +0800)
> >
> > ----------------------------------------------------------------
>
> Thanks. Pulled into clk-next. I applied this patch on top though to
> clean up the debugfs patch. A newline was missing. Does it make sense? I
> haven't tested it at all.
Looks good to me. Thanks for the cleanup.
Tested-by: Chen-Yu Tsai <wens@csie.org>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
>
> diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
> index 093161ca4dcc..09d8e84a1968 100644
> --- a/drivers/clk/clk.c
> +++ b/drivers/clk/clk.c
> @@ -2997,11 +2997,10 @@ static int clk_flags_show(struct seq_file *s, void *data)
> }
> DEFINE_SHOW_ATTRIBUTE(clk_flags);
>
> -static int possible_parents_show(struct seq_file *s, void *data)
> +static void possible_parent_show(struct seq_file *s, struct clk_core *core,
> + unsigned int i, char terminator)
> {
> - struct clk_core *core = s->private;
> struct clk_core *parent;
> - int i;
>
> /*
> * Go through the following options to fetch a parent's name.
> @@ -3015,22 +3014,6 @@ static int possible_parents_show(struct seq_file *s, void *data)
> * specified directly via a struct clk_hw pointer, but it isn't
> * registered (yet).
> */
> - for (i = 0; i < core->num_parents - 1; i++) {
> - parent = clk_core_get_parent_by_index(core, i);
> - if (parent)
> - seq_printf(s, "%s ", parent->name);
> - else if (core->parents[i].name)
> - seq_printf(s, "%s ", core->parents[i].name);
> - else if (core->parents[i].fw_name)
> - seq_printf(s, "<%s>(fw) ", core->parents[i].fw_name);
> - else if (core->parents[i].index >= 0)
> - seq_printf(s, "%s ",
> - of_clk_get_parent_name(core->of_node,
> - core->parents[i].index));
> - else
> - seq_puts(s, "(missing) ");
> - }
> -
> parent = clk_core_get_parent_by_index(core, i);
> if (parent)
> seq_printf(s, "%s", parent->name);
> @@ -3045,6 +3028,19 @@ static int possible_parents_show(struct seq_file *s, void *data)
> else
> seq_puts(s, "(missing)");
>
> + seq_putc(s, terminator);
> +}
> +
> +static int possible_parents_show(struct seq_file *s, void *data)
> +{
> + struct clk_core *core = s->private;
> + int i;
> +
> + for (i = 0; i < core->num_parents - 1; i++)
> + possible_parent_show(s, core, i, ' ');
> +
> + possible_parent_show(s, core, i, '\n');
> +
> return 0;
> }
> DEFINE_SHOW_ATTRIBUTE(possible_parents);
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [GIT PULL] clk: sunxi-ng: clk parent rewrite part 1 - take 2
@ 2019-06-25 3:15 ` Chen-Yu Tsai
0 siblings, 0 replies; 6+ messages in thread
From: Chen-Yu Tsai @ 2019-06-25 3:15 UTC (permalink / raw)
To: Stephen Boyd
Cc: Maxime Ripard, Michael Turquette, Chen-Yu Tsai, linux-clk,
linux-arm-kernel
On Tue, Jun 25, 2019 at 11:01 AM Stephen Boyd <sboyd@kernel.org> wrote:
>
> Quoting Chen-Yu Tsai (2019-06-21 19:22:54)
> > Hi,
> >
> > Take 2 has build errors in drivers/clk/sunxi-ng/ccu-suniv-f1c100s.c
> > fixed.
> >
> > The following changes since commit a188339ca5a396acc588e5851ed7e19f66b0ebd9:
> >
> > Linux 5.2-rc1 (2019-05-19 15:47:09 -0700)
> >
> > are available in the Git repository at:
> >
> > https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git sunxi-ng-parent-rewrite-part-1-take-2
> >
> > for you to fetch changes up to 89f27fb2dd348d8d52a97e6ebec15c64fe461a25:
> >
> > clk: sunxi-ng: sun8i-r: Use local parent references for SUNXI_CCU_GATE (2019-06-22 10:13:16 +0800)
> >
> > ----------------------------------------------------------------
>
> Thanks. Pulled into clk-next. I applied this patch on top though to
> clean up the debugfs patch. A newline was missing. Does it make sense? I
> haven't tested it at all.
Looks good to me. Thanks for the cleanup.
Tested-by: Chen-Yu Tsai <wens@csie.org>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
>
> diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
> index 093161ca4dcc..09d8e84a1968 100644
> --- a/drivers/clk/clk.c
> +++ b/drivers/clk/clk.c
> @@ -2997,11 +2997,10 @@ static int clk_flags_show(struct seq_file *s, void *data)
> }
> DEFINE_SHOW_ATTRIBUTE(clk_flags);
>
> -static int possible_parents_show(struct seq_file *s, void *data)
> +static void possible_parent_show(struct seq_file *s, struct clk_core *core,
> + unsigned int i, char terminator)
> {
> - struct clk_core *core = s->private;
> struct clk_core *parent;
> - int i;
>
> /*
> * Go through the following options to fetch a parent's name.
> @@ -3015,22 +3014,6 @@ static int possible_parents_show(struct seq_file *s, void *data)
> * specified directly via a struct clk_hw pointer, but it isn't
> * registered (yet).
> */
> - for (i = 0; i < core->num_parents - 1; i++) {
> - parent = clk_core_get_parent_by_index(core, i);
> - if (parent)
> - seq_printf(s, "%s ", parent->name);
> - else if (core->parents[i].name)
> - seq_printf(s, "%s ", core->parents[i].name);
> - else if (core->parents[i].fw_name)
> - seq_printf(s, "<%s>(fw) ", core->parents[i].fw_name);
> - else if (core->parents[i].index >= 0)
> - seq_printf(s, "%s ",
> - of_clk_get_parent_name(core->of_node,
> - core->parents[i].index));
> - else
> - seq_puts(s, "(missing) ");
> - }
> -
> parent = clk_core_get_parent_by_index(core, i);
> if (parent)
> seq_printf(s, "%s", parent->name);
> @@ -3045,6 +3028,19 @@ static int possible_parents_show(struct seq_file *s, void *data)
> else
> seq_puts(s, "(missing)");
>
> + seq_putc(s, terminator);
> +}
> +
> +static int possible_parents_show(struct seq_file *s, void *data)
> +{
> + struct clk_core *core = s->private;
> + int i;
> +
> + for (i = 0; i < core->num_parents - 1; i++)
> + possible_parent_show(s, core, i, ' ');
> +
> + possible_parent_show(s, core, i, '\n');
> +
> return 0;
> }
> DEFINE_SHOW_ATTRIBUTE(possible_parents);
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-06-25 3:15 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-22 2:22 [GIT PULL] clk: sunxi-ng: clk parent rewrite part 1 - take 2 Chen-Yu Tsai
2019-06-22 2:22 ` Chen-Yu Tsai
2019-06-25 3:01 ` Stephen Boyd
2019-06-25 3:01 ` Stephen Boyd
2019-06-25 3:15 ` Chen-Yu Tsai
2019-06-25 3:15 ` Chen-Yu Tsai
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.