OpenCloudOS-Kernel/drivers/clk
Bo Gan b8e33f0a3c clk: analogbits: Fix incorrect calculation of vco rate delta
[ Upstream commit d7f12857f095ef38523399d47e68787b357232f6 ]

In wrpll_configure_for_rate() we try to determine the best PLL
configuration for a target rate. However, in the loop where we try
values of R, we should compare the derived `vco` with `target_vco_rate`.
However, we were in fact comparing it with `target_rate`, which is
actually after Q shift. This is incorrect, and sometimes can result in
suboptimal clock rates. Fix it.

Fixes: 7b9487a9a5 ("clk: analogbits: add Wide-Range PLL library")
Signed-off-by: Bo Gan <ganboing@gmail.com>
Link: https://lore.kernel.org/r/20240830061639.2316-1-ganboing@gmail.com
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-02-08 09:52:02 +01:00
..
actions clk: actions: Convert to devm_platform_ioremap_resource() 2023-08-22 14:28:03 -07:00
analogbits clk: analogbits: Fix incorrect calculation of vco rate delta 2025-02-08 09:52:02 +01:00
at91 clk: at91: sama7g5: Allocate only the needed amount of memory for PLLs 2024-10-04 16:29:30 +02:00
axis
axs10x clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
baikal-t1 clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
bcm clk: bcm: bcm53573: fix OF node leak in init 2024-10-17 15:24:17 +02:00
berlin clk: berlin: div: Add a determine_rate hook 2023-06-08 18:39:26 -07:00
davinci clk: davinci: da8xx-cfgchip: Initialize clk_init_data before use 2024-08-03 08:54:23 +02:00
hisilicon clk: hisilicon: hi3559a: Fix an erroneous devm_kfree() 2024-03-26 18:19:50 -04:00
imgtec
imx clk: imx8mp: Fix clkout1/2 support 2025-02-08 09:51:54 +01:00
ingenic clk: ingenic: tcu: Switch to determine_rate 2023-06-08 18:39:34 -07:00
keystone clk: keystone: pll: fix a couple NULL vs IS_ERR() checks 2023-11-20 11:59:06 +01:00
mediatek clk: mediatek: drop two dead config options 2024-12-09 10:32:12 +01:00
meson clk: meson: Add missing clocks to axg_clk_regmaps 2024-03-26 18:19:45 -04:00
microchip clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
mmp clk: mmp: pxa168: Fix memory leak in pxa168_clk_init() 2024-02-05 20:14:29 +00:00
mstar clk: mstar: msc313 cpupll clk driver 2022-10-27 11:44:27 -07:00
mvebu Merge branches 'clk-imx', 'clk-samsung', 'clk-annotate', 'clk-marvell' and 'clk-lmk' into clk-next 2023-08-30 14:39:19 -07:00
mxs
nuvoton clk: nuvoton: Convert to devm_platform_ioremap_resource() 2023-08-22 14:52:11 -07:00
nxp clk: nxp: fix typo in comment 2022-10-03 12:34:32 -07:00
pistachio clk: pistachio: Fix initconst confusion 2022-09-28 18:35:45 -07:00
pxa ARM: SoC changes for 6.5 2023-06-29 15:28:33 -07:00
qcom clk: qcom: gcc-sdm845: Do not use shared clk_ops for QUPs 2025-02-08 09:51:56 +01:00
ralink clk: ralink: mtmips: remove duplicated 'xtal' clock for Ralink SoC RT3883 2025-02-08 09:51:58 +01:00
renesas clk: renesas: rzg2l: Fix FOUTPOSTDIV clk 2024-12-09 10:32:16 +01:00
rockchip clk: rockchip: fix error for unknown clocks 2024-10-10 11:57:54 +02:00
samsung clk: samsung: exynos7885: Update CLKS_NR_FSYS after bindings fix 2024-10-10 11:57:55 +02:00
sifive clk: sifive: Do not register clkdevs for PRCI clocks 2024-06-21 14:38:28 +02:00
socfpga clk: socfpga: Fix undefined behavior bug in struct stratix10_clock_data 2023-11-28 17:20:00 +00:00
spear clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
sprd clk: sprd: Fix thm_parents incorrect configuration 2023-09-11 13:50:49 -07:00
st clk: st: flexgen: Switch to determine_rate 2023-06-08 18:39:35 -07:00
starfive clk: starfive: Use pm_runtime_resume_and_get to fix pm_runtime_get_sync() usage 2024-10-04 16:29:31 +02:00
stm32 clk: stm32: Fix a signedness issue in clk_stm32_composite_determine_rate() 2023-10-12 17:30:54 -07:00
sunxi of: remove internal arguments from of_property_for_each_u32() 2025-02-08 09:51:51 +01:00
sunxi-ng clk: sunxi-ng: a64: stop force-selecting PLL-MIPI as TCON0 parent 2025-02-08 09:51:55 +01:00
tegra clk: tegra: fix error return case for recalc_rate 2023-09-12 10:56:05 -07:00
ti clk: ti: dra7-atl: Fix leak of of_nodes 2024-10-04 16:29:31 +02:00
uniphier clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
ux500 clk: ux500: sysctrl: Add a determine_rate hook 2023-06-08 18:39:30 -07:00
versatile clk: versatile: sp810: Add a determine_rate hook 2023-06-08 18:39:31 -07:00
visconti clk: visconti: Add bounds-checking coverage for struct visconti_pll_provider 2024-08-29 17:33:29 +02:00
x86 clk: x86: Convert to platform remove callback returning void 2023-03-28 19:31:45 -07:00
xilinx clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
zynq clk: zynq: Prevent null pointer dereference caused by kmalloc failure 2024-03-26 18:19:56 -04:00
zynqmp drivers: clk: zynqmp: update divider round rate logic 2024-01-25 15:35:37 -08:00
.kunitconfig
Kconfig This pull request is full of clk driver changes. In fact, there aren't any 2023-08-30 19:53:39 -07:00
Makefile Merge branches 'clk-versa', 'clk-strdup', 'clk-amlogic', 'clk-allwinner' and 'clk-rockchip' into clk-next 2023-08-30 14:38:19 -07:00
clk-apple-nco.c clk: clk-apple-nco: Add NULL check in applnco_probe 2024-12-09 10:32:22 +01:00
clk-asm9260.c clk: asm9260: use parent index to link the reference clock 2022-09-29 17:55:26 -07:00
clk-aspeed.c Merge branches 'clk-imx', 'clk-samsung', 'clk-annotate', 'clk-marvell' and 'clk-lmk' into clk-next 2023-08-30 14:39:19 -07:00
clk-aspeed.h
clk-ast2600.c Merge branches 'clk-imx', 'clk-samsung', 'clk-annotate', 'clk-marvell' and 'clk-lmk' into clk-next 2023-08-30 14:39:19 -07:00
clk-axi-clkgen.c clk: clk-axi-clkgen: make sure to enable the AXI bus clock 2024-12-09 10:32:22 +01:00
clk-axm5516.c clk: axm5516: Convert to devm_platform_ioremap_resource() 2023-08-22 14:28:05 -07:00
clk-bd718x7.c
clk-bm1880.c clk: bm1880: Convert to devm_platform_ioremap_resource() 2023-08-22 14:28:11 -07:00
clk-bulk.c clk: bulk: Use dev_err_probe() helper in __clk_bulk_get() 2022-10-17 16:07:51 -07:00
clk-cdce706.c Merge branches 'clk-renesas', 'clk-determine-rate', 'clk-allwinner', 'clk-samsung' and 'clk-amlogic' into clk-next 2023-06-26 08:55:04 -07:00
clk-cdce925.c clk: cdce925: Remove redundant of_match_ptr() 2023-08-22 14:16:53 -07:00
clk-clps711x.c
clk-composite.c clk: composite: Fix handling of high clock rates 2023-06-12 17:42:10 -07:00
clk-conf.c of: remove internal arguments from of_property_for_each_u32() 2025-02-08 09:51:51 +01:00
clk-cs2000-cp.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
clk-devres.c clk: Fix slab-out-of-bounds error in devm_clk_release() 2023-08-22 15:25:18 -07:00
clk-divider.c
clk-en7523.c clk: en7523: Initialize num before accessing hws in en7523_register_clocks() 2024-12-14 20:00:20 +01:00
clk-fixed-factor.c clk: fixed-factor: Convert to platform remove callback returning void 2023-03-28 19:23:36 -07:00
clk-fixed-mmio.c Nothing looks out of the ordinary in this batch of clk driver updates. There 2023-04-29 17:29:39 -07:00
clk-fixed-rate.c clk: fixed-rate: Convert to platform remove callback returning void 2023-03-28 19:23:36 -07:00
clk-fractional-divider.c clk: Compute masks for fractional_divider clk when needed. 2023-04-05 12:09:26 -07:00
clk-fractional-divider.h
clk-fsl-flexspi.c
clk-fsl-sai.c clk: fsl-sai: Convert to devm_platform_ioremap_resource() 2023-08-22 14:28:15 -07:00
clk-gate.c
clk-gate_test.c
clk-gemini.c Merge branches 'clk-imx', 'clk-samsung', 'clk-annotate', 'clk-marvell' and 'clk-lmk' into clk-next 2023-08-30 14:39:19 -07:00
clk-gpio.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
clk-hi655x.c
clk-highbank.c
clk-hsdk-pll.c clk: hsdk-pll: Convert to devm_platform_ioremap_resource() 2023-08-22 14:28:20 -07:00
clk-k210.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
clk-lan966x.c clk: lan966x: Remove unused round_rate hook 2023-06-08 18:39:25 -07:00
clk-lmk04832.c clk: lmk04832: Support using PLL1_LD as SPI readback pin 2023-08-23 15:47:35 -07:00
clk-lochnagar.c clk: lochnagar: Add a determine_rate hook 2023-06-08 18:39:27 -07:00
clk-loongson1.c clk: loongson1: Re-implement the clock driver 2023-03-21 16:34:23 -07:00
clk-loongson2.c clk: clk-loongson2: Zero init clk_init_data 2023-06-12 18:30:46 -07:00
clk-max9485.c clk: Switch i2c drivers back to use .probe() 2023-05-10 14:05:34 -07:00
clk-max77686.c
clk-milbeaut.c clk: Annotate struct clk_hw_onecell_data with __counted_by 2023-08-22 13:51:26 -07:00
clk-moxart.c
clk-multiplier.c
clk-mux.c
clk-nomadik.c clk: nomadik: correct struct name kernel-doc warning 2022-12-09 10:26:25 -08:00
clk-npcm7xx.c clk: npcm7xx: Fix incorrect kfree 2023-11-20 11:59:06 +01:00
clk-nspire.c
clk-palmas.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
clk-plldig.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
clk-pwm.c clk: pwm: Convert to platform remove callback returning void 2023-03-28 19:23:37 -07:00
clk-qoriq.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
clk-renesas-pcie.c clk: rs9: fix wrong default value for clock amplitude 2024-06-12 11:12:07 +02:00
clk-rk808.c clk: RK808: Reduce 'struct rk808' usage 2023-05-15 16:13:56 +01:00
clk-s2mps11.c clk: s2mps11: Convert to platform remove callback returning void 2023-03-28 19:23:37 -07:00
clk-scmi.c clk: scmi: Free scmi_clk allocated when the clocks with invalid info are skipped 2023-11-20 11:59:16 +01:00
clk-scpi.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
clk-si514.c clk: Switch i2c drivers back to use .probe() 2023-05-10 14:05:34 -07:00
clk-si521xx.c clk: si521xx: Increase stack based print buffer size in probe 2024-01-10 17:16:55 +01:00
clk-si544.c clk: Switch i2c drivers back to use .probe() 2023-05-10 14:05:34 -07:00
clk-si570.c clk: Switch i2c drivers back to use .probe() 2023-05-10 14:05:34 -07:00
clk-si5341.c clk: si5341: fix an error code problem in si5341_output_clk_set_rate 2024-01-25 15:35:38 -08:00
clk-si5351.c of: remove internal arguments from of_property_for_each_u32() 2025-02-08 09:51:51 +01:00
clk-si5351.h
clk-sp7021.c clk: sp7021: fix return value check in sp7021_clk_probe() 2024-01-25 15:35:37 -08:00
clk-sparx5.c
clk-stm32f4.c clk: stm32f4: mux: Add a determine_rate hook 2023-06-08 18:39:27 -07:00
clk-stm32h7.c clk: stm32h7: Remove an unused field in struct stm32_fractional_divider 2023-04-03 14:10:42 -07:00
clk-stm32mp1.c clk: stm32mp1: Convert to platform remove callback returning void 2023-03-28 19:23:37 -07:00
clk-tps68470.c
clk-twl6040.c
clk-versaclock3.c clk: vc3: Make vc3_clk_mux enum values based on vc3_clk enum values 2023-09-11 13:50:43 -07:00
clk-versaclock5.c Merge branches 'clk-versa', 'clk-strdup', 'clk-amlogic', 'clk-allwinner' and 'clk-rockchip' into clk-next 2023-08-30 14:38:19 -07:00
clk-versaclock7.c Merge branches 'clk-versa', 'clk-strdup', 'clk-amlogic', 'clk-allwinner' and 'clk-rockchip' into clk-next 2023-08-30 14:38:19 -07:00
clk-vt8500.c
clk-wm831x.c clk: wm831x: clkout: Add a determine_rate hook 2023-06-08 18:39:28 -07:00
clk-xgene.c clk: clk-xgene: simplify if-if to if-else 2022-10-03 14:13:29 -07:00
clk.c clk: fix an OF node reference leak in of_clk_get_parent_name() 2025-02-08 09:51:51 +01:00
clk.h
clk_test.c clk: test: Add a determine_rate hook 2023-06-08 18:39:25 -07:00
clkdev.c clkdev: Update clkdev id usage to allow for longer names 2024-06-21 14:38:38 +02:00