* [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
0 siblings, 1 reply; 3+ 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] 3+ messages in thread* Re: [GIT PULL] clk: sunxi-ng: clk parent rewrite part 1 - take 2 2019-06-22 2:22 [GIT PULL] clk: sunxi-ng: clk parent rewrite part 1 - take 2 Chen-Yu Tsai @ 2019-06-25 3:01 ` Stephen Boyd 2019-06-25 3:15 ` Chen-Yu Tsai 0 siblings, 1 reply; 3+ 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] 3+ 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 0 siblings, 0 replies; 3+ 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] 3+ messages in thread
end of thread, other threads:[~2019-06-25 3:15 UTC | newest] Thread overview: 3+ 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-25 3:01 ` Stephen Boyd 2019-06-25 3:15 ` Chen-Yu Tsai
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox