mbox series

[v7,0/8] clk: Switch from soc_clk_dump to clk_ops function

Message ID 20231109105516.24892-1-ivprusov@sberdevices.ru
Headers show
Series clk: Switch from soc_clk_dump to clk_ops function | expand

Message

Igor Prusov Nov. 9, 2023, 10:55 a.m. UTC
Currently clock providers may override default implementation of
soc_clk_dump function to replace clk dump command output. This causes
confusing behaviour when u-boot is built with one of such drivers
enabled but still has clocks defined using CCF. For example, enabling
CMD_CLK and using clk dump on sandbox target will not show CCF clocks
because k210 driver overrides common soc_clk_dump.

Changelog:
 v1 -> v2:
 - Add missing static to dump functions

 v2 -> v3:
 - Make soc_clk_dump in cmd/clk.c static instead of removing __weak

 v3 -> v4:
 - Rebase and refactor dump for new Amlogic A1 clock controller driver

 v4 -> v5:
 - Add docs for dump() function in clk_ops
 - Print driver and device names before calling corresponding dump()

 v5 -> v6:
 - dump() return type changed to void
 - meson_clk_dump() and helper functions moved under CONFIG_CMD_CLK to
   fix unused-function diagnostic

v6 -> v7:
 - fix return type of k210_clk_dump()
 - fix clk_ops dump() docs since it returns void now

Igor Prusov (8):
  clk: zynq: Move soc_clk_dump to Zynq clock driver
  clk: ast2600: Move soc_clk_dump function
  clk: k210: Move soc_clk_dump function
  clk: amlogic: Move driver and ops structs
  clk: Add dump operation to clk_ops
  cmd: clk: Use dump function from clk_ops
  clk: treewide: switch to clock dump from clk_ops
  cmd: clk: Make soc_clk_dump static

 arch/arm/mach-zynq/clk.c               |  57 --------------
 arch/mips/mach-pic32/cpu.c             |  23 ------
 cmd/clk.c                              |  13 +++-
 drivers/clk/aspeed/clk_ast2600.c       |  83 ++++++++++----------
 drivers/clk/clk_k210.c                 | 104 ++++++++++++-------------
 drivers/clk/clk_pic32.c                |  37 +++++++++
 drivers/clk/clk_versal.c               |   9 ++-
 drivers/clk/clk_zynq.c                 |  52 +++++++++++++
 drivers/clk/clk_zynqmp.c               |  22 +++---
 drivers/clk/imx/clk-imx8.c             |  13 +---
 drivers/clk/meson/a1.c                 |  58 ++++++--------
 drivers/clk/mvebu/armada-37xx-periph.c |  20 +++--
 drivers/clk/stm32/clk-stm32mp1.c       |  31 ++------
 include/clk-uclass.h                   |  13 ++++
 include/clk.h                          |   2 -
 15 files changed, 269 insertions(+), 268 deletions(-)

Comments

Neil Armstrong Dec. 12, 2023, 2:03 p.m. UTC | #1
Hi Igor, Sean,

On 09/11/2023 11:55, Igor Prusov wrote:
> Currently clock providers may override default implementation of
> soc_clk_dump function to replace clk dump command output. This causes
> confusing behaviour when u-boot is built with one of such drivers
> enabled but still has clocks defined using CCF. For example, enabling
> CMD_CLK and using clk dump on sandbox target will not show CCF clocks
> because k210 driver overrides common soc_clk_dump.

What's the state of this serie ?

Thanks,
Neil

> 
> Changelog:
>   v1 -> v2:
>   - Add missing static to dump functions
> 
>   v2 -> v3:
>   - Make soc_clk_dump in cmd/clk.c static instead of removing __weak
> 
>   v3 -> v4:
>   - Rebase and refactor dump for new Amlogic A1 clock controller driver
> 
>   v4 -> v5:
>   - Add docs for dump() function in clk_ops
>   - Print driver and device names before calling corresponding dump()
> 
>   v5 -> v6:
>   - dump() return type changed to void
>   - meson_clk_dump() and helper functions moved under CONFIG_CMD_CLK to
>     fix unused-function diagnostic
> 
> v6 -> v7:
>   - fix return type of k210_clk_dump()
>   - fix clk_ops dump() docs since it returns void now
> 
> Igor Prusov (8):
>    clk: zynq: Move soc_clk_dump to Zynq clock driver
>    clk: ast2600: Move soc_clk_dump function
>    clk: k210: Move soc_clk_dump function
>    clk: amlogic: Move driver and ops structs
>    clk: Add dump operation to clk_ops
>    cmd: clk: Use dump function from clk_ops
>    clk: treewide: switch to clock dump from clk_ops
>    cmd: clk: Make soc_clk_dump static
> 
>   arch/arm/mach-zynq/clk.c               |  57 --------------
>   arch/mips/mach-pic32/cpu.c             |  23 ------
>   cmd/clk.c                              |  13 +++-
>   drivers/clk/aspeed/clk_ast2600.c       |  83 ++++++++++----------
>   drivers/clk/clk_k210.c                 | 104 ++++++++++++-------------
>   drivers/clk/clk_pic32.c                |  37 +++++++++
>   drivers/clk/clk_versal.c               |   9 ++-
>   drivers/clk/clk_zynq.c                 |  52 +++++++++++++
>   drivers/clk/clk_zynqmp.c               |  22 +++---
>   drivers/clk/imx/clk-imx8.c             |  13 +---
>   drivers/clk/meson/a1.c                 |  58 ++++++--------
>   drivers/clk/mvebu/armada-37xx-periph.c |  20 +++--
>   drivers/clk/stm32/clk-stm32mp1.c       |  31 ++------
>   include/clk-uclass.h                   |  13 ++++
>   include/clk.h                          |   2 -
>   15 files changed, 269 insertions(+), 268 deletions(-)
>
Sean Anderson Dec. 12, 2023, 2:11 p.m. UTC | #2
On 12/12/23 09:03, Neil Armstrong wrote:
> Hi Igor, Sean,
> 
> On 09/11/2023 11:55, Igor Prusov wrote:
>> Currently clock providers may override default implementation of
>> soc_clk_dump function to replace clk dump command output. This causes
>> confusing behaviour when u-boot is built with one of such drivers
>> enabled but still has clocks defined using CCF. For example, enabling
>> CMD_CLK and using clk dump on sandbox target will not show CCF clocks
>> because k210 driver overrides common soc_clk_dump.
> 
> What's the state of this serie ?

Awaiting upstream. I will make a PR with it for next.

--Sean

> Thanks,
> Neil
> 
>>
>> Changelog:
>>   v1 -> v2:
>>   - Add missing static to dump functions
>>
>>   v2 -> v3:
>>   - Make soc_clk_dump in cmd/clk.c static instead of removing __weak
>>
>>   v3 -> v4:
>>   - Rebase and refactor dump for new Amlogic A1 clock controller driver
>>
>>   v4 -> v5:
>>   - Add docs for dump() function in clk_ops
>>   - Print driver and device names before calling corresponding dump()
>>
>>   v5 -> v6:
>>   - dump() return type changed to void
>>   - meson_clk_dump() and helper functions moved under CONFIG_CMD_CLK to
>>     fix unused-function diagnostic
>>
>> v6 -> v7:
>>   - fix return type of k210_clk_dump()
>>   - fix clk_ops dump() docs since it returns void now
>>
>> Igor Prusov (8):
>>    clk: zynq: Move soc_clk_dump to Zynq clock driver
>>    clk: ast2600: Move soc_clk_dump function
>>    clk: k210: Move soc_clk_dump function
>>    clk: amlogic: Move driver and ops structs
>>    clk: Add dump operation to clk_ops
>>    cmd: clk: Use dump function from clk_ops
>>    clk: treewide: switch to clock dump from clk_ops
>>    cmd: clk: Make soc_clk_dump static
>>
>>   arch/arm/mach-zynq/clk.c               |  57 --------------
>>   arch/mips/mach-pic32/cpu.c             |  23 ------
>>   cmd/clk.c                              |  13 +++-
>>   drivers/clk/aspeed/clk_ast2600.c       |  83 ++++++++++----------
>>   drivers/clk/clk_k210.c                 | 104 ++++++++++++-------------
>>   drivers/clk/clk_pic32.c                |  37 +++++++++
>>   drivers/clk/clk_versal.c               |   9 ++-
>>   drivers/clk/clk_zynq.c                 |  52 +++++++++++++
>>   drivers/clk/clk_zynqmp.c               |  22 +++---
>>   drivers/clk/imx/clk-imx8.c             |  13 +---
>>   drivers/clk/meson/a1.c                 |  58 ++++++--------
>>   drivers/clk/mvebu/armada-37xx-periph.c |  20 +++--
>>   drivers/clk/stm32/clk-stm32mp1.c       |  31 ++------
>>   include/clk-uclass.h                   |  13 ++++
>>   include/clk.h                          |   2 -
>>   15 files changed, 269 insertions(+), 268 deletions(-)
>>
>
Sean Anderson Dec. 15, 2023, 8:48 p.m. UTC | #3
On Thu, 9 Nov 2023 13:55:08 +0300, Igor Prusov wrote:
> Currently clock providers may override default implementation of
> soc_clk_dump function to replace clk dump command output. This causes
> confusing behaviour when u-boot is built with one of such drivers
> enabled but still has clocks defined using CCF. For example, enabling
> CMD_CLK and using clk dump on sandbox target will not show CCF clocks
> because k210 driver overrides common soc_clk_dump.
> 
> [...]

Applied, thanks!

[1/8] clk: zynq: Move soc_clk_dump to Zynq clock driver
      https://source.denx.de/u-boot/custodians/u-boot-clk/-/commit/bdac75511411
[2/8] clk: ast2600: Move soc_clk_dump function
      https://source.denx.de/u-boot/custodians/u-boot-clk/-/commit/3f192541df79
[3/8] clk: k210: Move soc_clk_dump function
      https://source.denx.de/u-boot/custodians/u-boot-clk/-/commit/77beaad3d1d2
[4/8] clk: amlogic: Move driver and ops structs
      https://source.denx.de/u-boot/custodians/u-boot-clk/-/commit/4f48202ba82e
[5/8] clk: Add dump operation to clk_ops
      https://source.denx.de/u-boot/custodians/u-boot-clk/-/commit/505ef5f627d8
[6/8] cmd: clk: Use dump function from clk_ops
      https://source.denx.de/u-boot/custodians/u-boot-clk/-/commit/258c1002383e
[7/8] clk: treewide: switch to clock dump from clk_ops
      https://source.denx.de/u-boot/custodians/u-boot-clk/-/commit/bc3e313ff6af
[8/8] cmd: clk: Make soc_clk_dump static
      https://source.denx.de/u-boot/custodians/u-boot-clk/-/commit/5666558a6cb0

Best regards,