[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <a151ed7c1caac83e872cf6075c215fa55bd21f82.camel@icenowy.me>
Date: Tue, 12 Aug 2025 21:39:45 +0800
From: Icenowy Zheng <uwu@...nowy.me>
To: bmasney@...hat.com, Michael Turquette <mturquette@...libre.com>, Stephen
Boyd <sboyd@...nel.org>, Sudeep Holla <sudeep.holla@....com>, Cristian
Marussi <cristian.marussi@....com>, Chen Wang <unicorn_wang@...look.com>,
Inochi Amaoto <inochiama@...il.com>, Nicolas Ferre
<nicolas.ferre@...rochip.com>, Alexandre Belloni
<alexandre.belloni@...tlin.com>, Claudiu Beznea <claudiu.beznea@...on.dev>,
Paul Cercueil <paul@...pouillou.net>, Keguang Zhang
<keguang.zhang@...il.com>, Taichi Sugaya <sugaya.taichi@...ionext.com>,
Takao Orito <orito.takao@...ionext.com>, Shawn Guo <shawnguo@...nel.org>,
Sascha Hauer <s.hauer@...gutronix.de>, Pengutronix Kernel Team
<kernel@...gutronix.de>, Fabio Estevam <festevam@...il.com>, Jacky Huang
<ychuang3@...oton.com>, Shan-Chun Hung <schung@...oton.com>, Vladimir
Zapolskiy <vz@...ia.com>, Piotr Wojtaszczyk
<piotr.wojtaszczyk@...esys.com>, Paul Walmsley <paul.walmsley@...ive.com>,
Samuel Holland <samuel.holland@...ive.com>, Yixun Lan <dlan@...too.org>,
Steen Hegelund <Steen.Hegelund@...rochip.com>, Daniel Machon
<daniel.machon@...rochip.com>, UNGLinuxDriver@...rochip.com, Orson Zhai
<orsonzhai@...il.com>, Baolin Wang <baolin.wang@...ux.alibaba.com>, Chunyan
Zhang <zhang.lyra@...il.com>, Maxime Coquelin <mcoquelin.stm32@...il.com>,
Alexandre Torgue <alexandre.torgue@...s.st.com>, Michal Simek
<michal.simek@....com>, Maxime Ripard <mripard@...nel.org>, Andreas
Färber <afaerber@...e.de>, Manivannan Sadhasivam
<mani@...nel.org>, Sven Peter <sven@...nel.org>, Janne Grunau
<j@...nau.net>, Alyssa Rosenzweig <alyssa@...enzweig.io>, Neal Gompa
<neal@...pa.dev>, Eugeniy Paltsev <Eugeniy.Paltsev@...opsys.com>, Ray Jui
<rjui@...adcom.com>, Scott Branden <sbranden@...adcom.com>, Broadcom
internal kernel review list <bcm-kernel-feedback-list@...adcom.com>, Max
Filippov <jcmvbkbc@...il.com>, Matthias Brugger <matthias.bgg@...il.com>,
AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>,
Daniel Palmer <daniel@...ngy.jp>, Romain Perier <romain.perier@...il.com>,
Andrew Lunn <andrew@...n.ch>, Gregory Clement
<gregory.clement@...tlin.com>, Sebastian Hesselbarth
<sebastian.hesselbarth@...il.com>, Bjorn Andersson <andersson@...nel.org>,
Geert Uytterhoeven <geert+renesas@...der.be>, Heiko Stuebner
<heiko@...ech.de>, Andrea della Porta <andrea.porta@...e.com>, Krzysztof
Kozlowski <krzk@...nel.org>, Sylwester Nawrocki <s.nawrocki@...sung.com>,
Chanwoo Choi <cw00.choi@...sung.com>, Alim Akhtar
<alim.akhtar@...sung.com>, Qin Jian <qinjian@...lus1.com>, Viresh Kumar
<vireshk@...nel.org>, Ulf Hansson <ulf.hansson@...aro.org>, Luca Ceresoli
<luca.ceresoli@...tlin.com>, Alex Helms <alexander.helms.jy@...esas.com>,
Linus Walleij <linus.walleij@...aro.org>, Liviu Dudau
<liviu.dudau@....com>, Lorenzo Pieralisi <lpieralisi@...nel.org>, Nobuhiro
Iwamatsu <nobuhiro1.iwamatsu@...hiba.co.jp>
Cc: linux-clk@...r.kernel.org, linux-kernel@...r.kernel.org,
arm-scmi@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
sophgo@...ts.linux.dev, linux-mips@...r.kernel.org, imx@...ts.linux.dev,
linux-riscv@...ts.infradead.org, spacemit@...ts.linux.dev,
linux-stm32@...md-mailman.stormreply.com, patches@...nsource.cirrus.com,
linux-actions@...ts.infradead.org, asahi@...ts.linux.dev,
linux-mediatek@...ts.infradead.org, linux-arm-msm@...r.kernel.org,
linux-renesas-soc@...r.kernel.org, linux-rockchip@...ts.infradead.org,
linux-samsung-soc@...r.kernel.org, soc@...ts.linux.dev
Subject: Re: [PATCH 000/114] clk: convert drivers from deprecated
round_rate() to determine_rate()
在 2025-08-11星期一的 11:17 -0400,Brian Masney via B4 Relay写道:
> The round_rate() clk ops is deprecated in the clk framework in favor
> of the determine_rate() clk ops, so let's go ahead and convert the
> various clk drivers using the Coccinelle semantic patch posted below.
> I did a few minor cosmetic cleanups of the code in a few cases.
>
> This series is broken up into several categories:
>
> - Patch 1 to clk/at91/peripheral is a bug fix for a return value.
>
> - Patch 2 to clk/at91/peripheral wasn't straight forward like the
> other
> drivers, so I'm explicitly calling this one out separately.
>
> - Patch 3 adds a determine_rate() op and keeps the round_rate() in
> place
> since this is needed by drivers/clk/actions/owl-composite.c and
> keeps
> the tree bisectable. The deprecated round_rate() op is dropped in
> patch
> 113.
>
> - Patches 4-70 are for drivers where there is no clk submaintainer
> listed in the MAINTAINERS file. Patch 19 includes a minor fix so
> that
> Coccinelle can be ran against a particular source file.
>
> - Patches 71-110 are for drivers where this is an entry in
> MAINTAINERS
> for the driver.
>
> - Patches 111-114 are for drivers that implement both round_rate()
> and
> determine_rate(), so the round_rate() implementation is dropped.
I was doing a patch to add divider setting support to clk-th1520-ap
driver and sent patch now, should I remove round_rate from the next
revision and just keep determine_rate? Is it safe to do this even if
this patchset is not merged?
In addition, will the clk_round_rate() API exported to other subsystems
be affected?
>
> Once all of my conversion patches across the various trees in the
> kernel
> have been merged, I will post a small series that removes the
> round_rate() op from the clk core and the documentation. Here's the
> other patch series that are currently in flight that need to be
> merged
> before we can remove round_rate() from the core.
>
> - arm32 (3):
> https://lore.kernel.org/linux-clk/20250710-arm32-clk-round-rate-v1-0-a9146b77aca9@redhat.com/T/
> - clk/tegra (6):
> https://lore.kernel.org/linux-clk/20250710-clk-tegra-round-rate-v1-0-e48ac3df4279@redhat.com/T/
> - clk/ti (7):
> https://lore.kernel.org/linux-clk/20250811-b4-clk-ti-round-rate-v1-0-cc0840594a49@redhat.com/T/
> - clocksource (1):
> https://lore.kernel.org/linux-clk/20250810-clocksource-round-rate-v1-1-486ef53e45eb@redhat.com/T/
> - drm (9):
> https://lore.kernel.org/linux-clk/20250811-drm-clk-round-rate-v2-0-4a91ccf239cf@redhat.com/T/
> - drm/msm (7):
> https://lore.kernel.org/linux-clk/20250810-drm-msm-phy-clk-round-rate-v2-0-0fd1f7979c83@redhat.com/T/
> - i2c (1):
> https://lore.kernel.org/linux-clk/20250810-i2c-round-rate-v1-1-9488b57153e7@redhat.com/T/
> - media (4):
> https://lore.kernel.org/linux-clk/20250710-media-clk-round-rate-v1-0-a9617b061741@redhat.com/T/
> - mips (1):
> https://lore.kernel.org/linux-clk/20250810-mips-round-rate-v1-1-54e424c520dd@redhat.com/T/
> - net (1):
> https://lore.kernel.org/linux-clk/20250810-net-round-rate-v1-1-dbb237c9fe5c@redhat.com/T/
> - peci (1):
> https://lore.kernel.org/linux-clk/20250810-peci-round-rate-v1-1-ec96d216a455@redhat.com/T/
> - phy (9):
> https://lore.kernel.org/linux-phy/20250810-phy-clk-round-rate-v2-0-9162470bb9f2@redhat.com/T/
> - pmdomain (1):
> https://lore.kernel.org/linux-clk/20250810-pmdomain-round-rate-v1-1-1a90dbacdeb6@redhat.com/T/
> - tty (1):
> https://lore.kernel.org/linux-clk/20250810-tty-round-rate-v1-1-849009f3bdfd@redhat.com/T/
>
> Coccinelle semantic patch:
>
> virtual patch
>
> // Look up the current name of the round_rate function
> @ has_round_rate @
> identifier round_rate_name =~ ".*_round_rate";
> identifier hw_param, rate_param, parent_rate_param;
> @@
>
> long round_rate_name(struct clk_hw *hw_param, unsigned long
> rate_param,
> unsigned long *parent_rate_param)
> {
> ...
> }
>
> // Rename the route_rate function name to determine_rate()
> @ script:python generate_name depends on has_round_rate @
> round_rate_name << has_round_rate.round_rate_name;
> new_name;
> @@
>
> coccinelle.new_name = round_rate_name.replace("_round_rate",
> "_determine_rate")
>
> // Change rate to req->rate; also change occurrences of 'return
> XXX'.
> @ chg_rate depends on generate_name @
> identifier has_round_rate.round_rate_name;
> identifier has_round_rate.hw_param;
> identifier has_round_rate.rate_param;
> identifier has_round_rate.parent_rate_param;
> identifier ERR =~ "E.*";
> expression E;
> @@
>
> long round_rate_name(struct clk_hw *hw_param, unsigned long
> rate_param,
> unsigned long *parent_rate_param)
> {
> <...
> (
> -return -ERR;
> +return -ERR;
> |
> - return rate_param;
> + return 0;
> |
> - return E;
> + req->rate = E;
> +
> + return 0;
> |
> - rate_param
> + req->rate
> )
> ...>
> }
>
> // Coccinelle only transforms the first occurrence of the rate
> parameter
> // Run a second time. FIXME: Is there a better way to do this?
> @ chg_rate2 depends on generate_name @
> identifier has_round_rate.round_rate_name;
> identifier has_round_rate.hw_param;
> identifier has_round_rate.rate_param;
> identifier has_round_rate.parent_rate_param;
> @@
>
> long round_rate_name(struct clk_hw *hw_param, unsigned long
> rate_param,
> unsigned long *parent_rate_param)
> {
> <...
> - rate_param
> + req->rate
> ...>
> }
>
> // Change parent_rate to req->best_parent_rate
> @ chg_parent_rate depends on generate_name @
> identifier has_round_rate.round_rate_name;
> identifier has_round_rate.hw_param;
> identifier has_round_rate.rate_param;
> identifier has_round_rate.parent_rate_param;
> @@
>
> long round_rate_name(struct clk_hw *hw_param, unsigned long
> rate_param,
> unsigned long *parent_rate_param)
> {
> <...
> (
> - *parent_rate_param
> + req->best_parent_rate
> |
> - parent_rate_param
> + &req->best_parent_rate
> )
> ...>
> }
>
> // Convert the function definition from round_rate() to
> determine_rate()
> @ func_definition depends on chg_rate @
> identifier has_round_rate.round_rate_name;
> identifier has_round_rate.hw_param;
> identifier has_round_rate.rate_param;
> identifier has_round_rate.parent_rate_param;
> identifier generate_name.new_name;
> @@
>
> - long round_rate_name(struct clk_hw *hw_param, unsigned long
> rate_param,
> - unsigned long *parent_rate_param)
> + int new_name(struct clk_hw *hw, struct clk_rate_request *req)
> {
> ...
> }
>
> // Update the ops from round_rate() to determine_rate()
> @ ops depends on func_definition @
> identifier has_round_rate.round_rate_name;
> identifier generate_name.new_name;
> @@
>
> {
> ...,
> - .round_rate = round_rate_name,
> + .determine_rate = new_name,
> ...,
> }
>
> Note that I used coccinelle 1.2 instead of 1.3 since the newer
> version
> adds unnecessary braces as described in this post.
> https://lore.kernel.org/cocci/67642477-5f3e-4b2a-914d-579a54f48cbd@intel.com/
>
> Signed-off-by: Brian Masney <bmasney@...hat.com>
> ---
> Brian Masney (114):
> clk: at91: peripheral: fix return value
> clk: at91: peripheral: convert from round_rate() to
> determine_rate()
> clk: fixed-factor: add determine_rate() ops
> clk: at91: audio-pll: convert from round_rate() to
> determine_rate()
> clk: at91: h32mx: convert from round_rate() to determine_rate()
> clk: at91: pll: convert from round_rate() to determine_rate()
> clk: at91: plldiv: convert from round_rate() to
> determine_rate()
> clk: at91: sam9x60-pll: convert from round_rate() to
> determine_rate()
> clk: at91: usb: convert from round_rate() to determine_rate()
> clk: baikal-t1: ccu-div: convert from round_rate() to
> determine_rate()
> clk: baikal-t1: ccu-pll: convert from round_rate() to
> determine_rate()
> clk: cdce925: convert from round_rate() to determine_rate()
> clk: cs2000-cp: convert from round_rate() to determine_rate()
> clk: ep93xx: convert from round_rate() to determine_rate()
> clk: fractional-divider: convert from round_rate() to
> determine_rate()
> clk: gemini: convert from round_rate() to determine_rate()
> clk: highbank: convert from round_rate() to determine_rate()
> clk: hisilicon: clkdivider-hi6220: convert from round_rate() to
> determine_rate()
> clk: hisilicon: hi3660-stub: move comma from declaration of
> DEFINE_CLK_STUB()
> clk: hisilicon: hi3660-stub: convert from round_rate() to
> determine_rate()
> clk: hisilicon: hi6220-stub: convert from round_rate() to
> determine_rate()
> clk: ingenic: cgu: convert from round_rate() to
> determine_rate()
> clk: ingenic: jz4780-cgu: convert from round_rate() to
> determine_rate()
> clk: ingenic: x1000-cgu: convert from round_rate() to
> determine_rate()
> clk: lmk04832: convert from round_rate() to determine_rate()
> clk: loongson1: convert from round_rate() to determine_rate()
> clk: max9485: convert from round_rate() to determine_rate()
> clk: milbeaut: convert from round_rate() to determine_rate()
> clk: mmp: audio: convert from round_rate() to determine_rate()
> clk: mmp: frac: convert from round_rate() to determine_rate()
> clk: multiplier: convert from round_rate() to determine_rate()
> clk: mxs: div: convert from round_rate() to determine_rate()
> clk: mxs: frac: convert from round_rate() to determine_rate()
> clk: mxs: ref: convert from round_rate() to determine_rate()
> clk: nuvoton: ma35d1-divider: convert from round_rate() to
> determine_rate()
> clk: nuvoton: ma35d1-pll: convert from round_rate() to
> determine_rate()
> clk: nxp: lpc18xx-cgu: convert from round_rate() to
> determine_rate()
> clk: nxp: lpc32xx: convert from round_rate() to
> determine_rate()
> clk: pistachio: pll: convert from round_rate() to
> determine_rate()
> clk: scpi: convert from round_rate() to determine_rate()
> clk: si514: convert from round_rate() to determine_rate()
> clk: si521xx: convert from round_rate() to determine_rate()
> clk: si5341: convert from round_rate() to determine_rate()
> clk: si544: convert from round_rate() to determine_rate()
> clk: si570: convert from round_rate() to determine_rate()
> clk: sifive: sifive-prci: convert from round_rate() to
> determine_rate()
> clk: sophgo: cv18xx-ip: convert from round_rate() to
> determine_rate()
> clk: sophgo: sg2042-clkgen: convert from round_rate() to
> determine_rate()
> clk: spacemit: ccu_ddn: convert from round_rate() to
> determine_rate()
> clk: spacemit: ccu_mix: convert from round_rate() to
> determine_rate()
> clk: spacemit: ccu_pll: convert from round_rate() to
> determine_rate()
> clk: sparx5: convert from round_rate() to determine_rate()
> clk: sprd: div: convert from round_rate() to determine_rate()
> clk: sprd: pll: convert from round_rate() to determine_rate()
> clk: st: clkgen-fsyn: convert from round_rate() to
> determine_rate()
> clk: st: clkgen-pll: convert from round_rate() to
> determine_rate()
> clk: stm32f4: convert from round_rate() to determine_rate()
> clk: stm32: stm32-core: convert from round_rate() to
> determine_rate()
> clk: stm32: stm32mp1: convert from round_rate() to
> determine_rate()
> clk: tps68470: convert from round_rate() to determine_rate()
> clk: versaclock3: convert from round_rate() to determine_rate()
> clk: vt8500: convert from round_rate() to determine_rate()
> clk: wm831x: convert from round_rate() to determine_rate()
> clk: x86: cgu: convert from round_rate() to determine_rate()
> clk: xgene: convert from round_rate() to determine_rate()
> clk: xilinx: xlnx-clock-wizard: convert from round_rate() to
> determine_rate()
> clk: xilinx: xlnx_vcu: convert from round_rate() to
> determine_rate()
> clk: zynqmp: divider: convert from round_rate() to
> determine_rate()
> clk: zynqmp: pll: convert from round_rate() to determine_rate()
> clk: zynq: pll: convert from round_rate() to determine_rate()
> clk: actions: owl-composite: convert from round_rate() to
> determine_rate()
> clk: actions: owl-divider: convert from round_rate() to
> determine_rate()
> clk: actions: owl-factor: convert from round_rate() to
> determine_rate()
> clk: actions: owl-pll: convert from round_rate() to
> determine_rate()
> clk: apple-nco: convert from round_rate() to determine_rate()
> clk: axs10x: i2s_pll_clock: convert from round_rate() to
> determine_rate()
> clk: axs10x: pll_clock: convert from round_rate() to
> determine_rate()
> clk: bcm: iproc-asiu: convert from round_rate() to
> determine_rate()
> clk: bm1880: convert from round_rate() to determine_rate()
> clk: cdce706: convert from round_rate() to determine_rate()
> clk: hsdk-pll: convert from round_rate() to determine_rate()
> clk: mediatek: pll: convert from round_rate() to
> determine_rate()
> clk: microchip: core: convert from round_rate() to
> determine_rate()
> clk: mstar: msc313-cpupll: convert from round_rate() to
> determine_rate()
> clk: mvebu: ap-cpu-clk: convert from round_rate() to
> determine_rate()
> clk: mvebu: armada-37xx-periph: convert from round_rate() to
> determine_rate()
> clk: mvebu: corediv: convert from round_rate() to
> determine_rate()
> clk: mvebu: cpu: convert from round_rate() to determine_rate()
> clk: mvebu: dove-divider: convert from round_rate() to
> determine_rate()
> clk: qcom: alpha-pll: convert from round_rate() to
> determine_rate()
> clk: qcom: regmap-divider: convert from round_rate() to
> determine_rate()
> clk: renesas: rzg2l-cpg: convert from round_rate() to
> determine_rate()
> clk: renesas: rzv2h-cpg: remove round_rate() in favor of
> determine_rate()
> clk: rockchip: ddr: convert from round_rate() to
> determine_rate()
> clk: rockchip: half-divider: convert from round_rate() to
> determine_rate()
> clk: rockchip: pll: convert from round_rate() to
> determine_rate()
> clk: rp1: convert from round_rate() to determine_rate()
> clk: samsung: cpu: convert from round_rate() to
> determine_rate()
> clk: samsung: pll: convert from round_rate() to
> determine_rate()
> clk: sp7021: convert from round_rate() to determine_rate()
> clk: spear: aux-synth: convert from round_rate() to
> determine_rate()
> clk: spear: frac-synth: convert from round_rate() to
> determine_rate()
> clk: spear: gpt-synth: convert from round_rate() to
> determine_rate()
> clk: spear: vco-pll: convert from round_rate() to
> determine_rate()
> clk: ux500: prcmu: convert from round_rate() to
> determine_rate()
> clk: versaclock5: convert from round_rate() to determine_rate()
> clk: versaclock7: convert from round_rate() to determine_rate()
> clk: versatile: icst: convert from round_rate() to
> determine_rate()
> clk: versatile: vexpress-osc: convert from round_rate() to
> determine_rate()
> clk: visconti: pll: convert from round_rate() to
> determine_rate()
> clk: divider: remove round_rate() in favor of determine_rate()
> clk: scmi: remove round_rate() in favor of determine_rate()
> clk: sophgo: sg2042-pll: remove round_rate() in favor of
> determine_rate()
> clk: fixed-factor: drop round_rate() clk ops
>
> drivers/clk/actions/owl-composite.c | 8 +-
> drivers/clk/actions/owl-divider.c | 13 +--
> drivers/clk/actions/owl-factor.c | 12 +--
> drivers/clk/actions/owl-pll.c | 25 ++++--
> drivers/clk/at91/clk-audio-pll.c | 42 +++++----
> drivers/clk/at91/clk-h32mx.c | 33 ++++---
> drivers/clk/at91/clk-peripheral.c | 48 ++++++----
> drivers/clk/at91/clk-pll.c | 12 +--
> drivers/clk/at91/clk-plldiv.c | 34 +++++---
> drivers/clk/at91/clk-sam9x60-pll.c | 29 +++---
> drivers/clk/at91/clk-usb.c | 20 +++--
> drivers/clk/axs10x/i2s_pll_clock.c | 14 +--
> drivers/clk/axs10x/pll_clock.c | 12 +--
> drivers/clk/baikal-t1/ccu-div.c | 27 +++---
> drivers/clk/baikal-t1/ccu-pll.c | 14 +--
> drivers/clk/bcm/clk-iproc-asiu.c | 25 +++---
> drivers/clk/clk-apple-nco.c | 14 +--
> drivers/clk/clk-bm1880.c | 21 +++--
> drivers/clk/clk-cdce706.c | 16 ++--
> drivers/clk/clk-cdce925.c | 50 ++++++-----
> drivers/clk/clk-cs2000-cp.c | 14 +--
> drivers/clk/clk-divider.c | 23 -----
> drivers/clk/clk-ep93xx.c | 18 ++--
> drivers/clk/clk-fixed-factor.c | 16 ++--
> drivers/clk/clk-fractional-divider.c | 25 ++++--
> drivers/clk/clk-gemini.c | 15 ++--
> drivers/clk/clk-highbank.c | 26 +++---
> drivers/clk/clk-hsdk-pll.c | 12 +--
> drivers/clk/clk-lmk04832.c | 53 ++++++-----
> drivers/clk/clk-loongson1.c | 12 +--
> drivers/clk/clk-max9485.c | 27 +++---
> drivers/clk/clk-milbeaut.c | 22 +++--
> drivers/clk/clk-multiplier.c | 12 +--
> drivers/clk/clk-rp1.c | 45 ++++++----
> drivers/clk/clk-scmi.c | 30 -------
> drivers/clk/clk-scpi.c | 18 ++--
> drivers/clk/clk-si514.c | 24 +++--
> drivers/clk/clk-si521xx.c | 14 +--
> drivers/clk/clk-si5341.c | 22 +++--
> drivers/clk/clk-si544.c | 10 +--
> drivers/clk/clk-si570.c | 24 +++--
> drivers/clk/clk-sp7021.c | 22 ++---
> drivers/clk/clk-sparx5.c | 10 ++-
> drivers/clk/clk-stm32f4.c | 26 +++---
> drivers/clk/clk-tps68470.c | 12 +--
> drivers/clk/clk-versaclock3.c | 70 +++++++++------
> drivers/clk/clk-versaclock5.c | 71 ++++++++-------
> drivers/clk/clk-versaclock7.c | 30 ++++---
> drivers/clk/clk-vt8500.c | 59 ++++++++-----
> drivers/clk/clk-wm831x.c | 14 +--
> drivers/clk/clk-xgene.c | 41 +++++----
> drivers/clk/hisilicon/clk-hi3660-stub.c | 18 ++--
> drivers/clk/hisilicon/clk-hi6220-stub.c | 12 +--
> drivers/clk/hisilicon/clkdivider-hi6220.c | 12 +--
> drivers/clk/ingenic/cgu.c | 12 +--
> drivers/clk/ingenic/jz4780-cgu.c | 24 ++---
> drivers/clk/ingenic/x1000-cgu.c | 19 ++--
> drivers/clk/mediatek/clk-pll.c | 13 +--
> drivers/clk/mediatek/clk-pll.h | 3 +-
> drivers/clk/mediatek/clk-pllfh.c | 2 +-
> drivers/clk/microchip/clk-core.c | 44 ++++++----
> drivers/clk/mmp/clk-audio.c | 18 ++--
> drivers/clk/mmp/clk-frac.c | 27 +++---
> drivers/clk/mstar/clk-msc313-cpupll.c | 18 ++--
> drivers/clk/mvebu/ap-cpu-clk.c | 12 +--
> drivers/clk/mvebu/armada-37xx-periph.c | 15 ++--
> drivers/clk/mvebu/clk-corediv.c | 18 ++--
> drivers/clk/mvebu/clk-cpu.c | 12 +--
> drivers/clk/mvebu/dove-divider.c | 16 ++--
> drivers/clk/mxs/clk-div.c | 8 +-
> drivers/clk/mxs/clk-frac.c | 16 ++--
> drivers/clk/mxs/clk-ref.c | 16 ++--
> drivers/clk/nuvoton/clk-ma35d1-divider.c | 12 ++-
> drivers/clk/nuvoton/clk-ma35d1-pll.c | 28 +++---
> drivers/clk/nxp/clk-lpc18xx-cgu.c | 16 ++--
> drivers/clk/nxp/clk-lpc32xx.c | 59 +++++++------
> drivers/clk/pistachio/clk-pll.c | 20 +++--
> drivers/clk/qcom/clk-alpha-pll.c | 136 ++++++++++++++++---
> ----------
> drivers/clk/qcom/clk-regmap-divider.c | 27 +++---
> drivers/clk/renesas/rzg2l-cpg.c | 9 +-
> drivers/clk/renesas/rzv2h-cpg.c | 10 ---
> drivers/clk/rockchip/clk-ddr.c | 13 +--
> drivers/clk/rockchip/clk-half-divider.c | 12 +--
> drivers/clk/rockchip/clk-pll.c | 23 +++--
> drivers/clk/samsung/clk-cpu.c | 12 +--
> drivers/clk/samsung/clk-pll.c | 33 ++++---
> drivers/clk/sifive/fu540-prci.h | 2 +-
> drivers/clk/sifive/fu740-prci.h | 2 +-
> drivers/clk/sifive/sifive-prci.c | 11 +--
> drivers/clk/sifive/sifive-prci.h | 4 +-
> drivers/clk/sophgo/clk-cv18xx-ip.c | 10 ++-
> drivers/clk/sophgo/clk-sg2042-clkgen.c | 17 ++--
> drivers/clk/sophgo/clk-sg2042-pll.c | 24 ++---
> drivers/clk/spacemit/ccu_ddn.c | 11 ++-
> drivers/clk/spacemit/ccu_mix.c | 12 +--
> drivers/clk/spacemit/ccu_pll.c | 10 ++-
> drivers/clk/spear/clk-aux-synth.c | 12 +--
> drivers/clk/spear/clk-frac-synth.c | 12 +--
> drivers/clk/spear/clk-gpt-synth.c | 12 +--
> drivers/clk/spear/clk-vco-pll.c | 23 +++--
> drivers/clk/sprd/div.c | 13 +--
> drivers/clk/sprd/pll.c | 8 +-
> drivers/clk/st/clkgen-fsyn.c | 33 +++----
> drivers/clk/st/clkgen-pll.c | 38 ++++----
> drivers/clk/stm32/clk-stm32-core.c | 28 +++---
> drivers/clk/stm32/clk-stm32mp1.c | 13 +--
> drivers/clk/ux500/clk-prcmu.c | 14 +--
> drivers/clk/versatile/clk-icst.c | 72 +++++++++------
> drivers/clk/versatile/clk-vexpress-osc.c | 16 ++--
> drivers/clk/visconti/pll.c | 17 ++--
> drivers/clk/x86/clk-cgu.c | 35 ++++----
> drivers/clk/xilinx/clk-xlnx-clock-wizard.c | 55 ++++++------
> drivers/clk/xilinx/xlnx_vcu.c | 15 ++--
> drivers/clk/zynq/pll.c | 12 +--
> drivers/clk/zynqmp/divider.c | 23 ++---
> drivers/clk/zynqmp/pll.c | 24 ++---
> 116 files changed, 1477 insertions(+), 1132 deletions(-)
> ---
> base-commit: 8f5ae30d69d7543eee0d70083daf4de8fe15d585
> change-id: 20250729-clk-for-stephen-round-rate-5a88ebdf8da6
>
> Best regards,
Powered by blists - more mailing lists