linux/drivers/clk
Josua Mayer c49300043e clk: mvebu: cp110 add CLK_IGNORE_UNUSED to pcie_x10, pcie_x11 & pcie_x4
[ Upstream commit f0e6bc0c3e ]

CP110 based platforms rely on the bootloader for pci port
initialization.
TF-A actively prevents non-uboot re-configuration of pci lanes, and many
boards do not have software control over the pci card reset.

If a pci port had link at boot-time and the clock is stopped at a later
point, the link fails and can not be recovered.

PCI controller driver probe - and by extension ownership of a driver for
the pci clocks - may be delayed especially on large modular kernels,
causing the clock core to start disabling unused clocks.

Add the CLK_IGNORE_UNUSED flag to the three pci port's clocks to ensure
they are not stopped before the pci controller driver has taken
ownership and tested for an existing link.

This fixes failed pci link detection when controller driver probes late,
e.g. with arm64 defconfig and CONFIG_PHY_MVEBU_CP110_COMPHY=m.

Closes: https://lore.kernel.org/r/b71596c7-461b-44b6-89ab-3cfbd492639f@solid-run.com
Signed-off-by: Josua Mayer <josua@solid-run.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2026-01-19 13:09:47 +01:00
..
actions clk: actions: Terminate clk_div_table with sentinel element 2022-04-08 14:23:48 +02:00
analogbits clk: analogbits: Fix incorrect calculation of vco rate delta 2025-03-13 12:49:58 +01:00
at91 clk: at91: clk-master: Add check for divide by 3 2025-12-07 06:09:24 +09:00
axis treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
axs10x clk: axs10x: use devm_platform_ioremap_resource() to simplify code 2019-10-16 16:17:50 -07:00
baikal-t1 clk: baikal-t1: Add SATA internal ref clock buffer 2022-10-26 12:35:20 +02:00
bcm clk: bcm: rpi: Add NULL check in raspberrypi_clk_register() 2025-06-27 11:05:13 +01:00
berlin clk: berlin: Add of_node_put() for of_get_parent() 2022-10-26 12:35:04 +02:00
davinci clk: davinci: Add NULL check in davinci_lpsc_clk_register() 2025-08-28 16:24:09 +02:00
h8300 treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
hisilicon clk: hisilicon: hi3559a: Fix an erroneous devm_kfree() 2024-03-26 18:21:29 -04:00
imgtec treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
imx clk: imx8mp: inform CCF of maximum frequency of clocks 2025-06-04 14:37:59 +02:00
ingenic clk: ingenic: jz4760: Update M/N/OD calculation algorithm 2023-02-14 19:18:03 +01:00
keystone clk: keystone: pll: fix a couple NULL vs IS_ERR() checks 2023-11-20 11:08:17 +01:00
loongson1 clk: loongson1: Terminate clk_div_table with sentinel element 2022-04-08 14:23:48 +02:00
mediatek clk: mediatek: clk-mt2701: Add check for mtk_alloc_clk_data 2023-11-20 11:08:18 +01:00
meson clk: meson-g12a: add missing fclk_div2 to spicc 2025-06-27 11:05:26 +01:00
microchip clk: let init callback return an error code 2019-12-23 18:53:13 -08:00
mmp clk: mmp: pxa168: Fix memory leak in pxa168_clk_init() 2024-02-23 08:54:48 +01:00
mstar clk: mstar: msc313-mpll: Fix format specifier 2021-02-16 12:52:28 -08:00
mvebu clk: mvebu: cp110 add CLK_IGNORE_UNUSED to pcie_x10, pcie_x11 & pcie_x4 2026-01-19 13:09:47 +01:00
mxs treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 159 2019-05-30 11:26:37 -07:00
nxp clk: nxp: Fix pll0 rate check condition in LPC18xx CGU driver 2025-10-19 16:21:40 +02:00
pistachio clk: pistachio: Make it selectable for generic MIPS kernel 2021-08-12 16:01:49 +02:00
pxa clk: pxa: Constify static struct clk_ops 2020-10-13 19:49:11 -07:00
qcom clk: qcom: gdsc: Set retain_ff before moving to HW CTRL 2025-09-09 18:50:25 +02:00
ralink clk: ralink: avoid to set 'CLK_IS_CRITICAL' flag for gates 2021-08-28 22:24:06 -07:00
renesas clk: renesas: r9a06g032: Fix memory leak in error path 2026-01-19 13:09:29 +01:00
rockchip clk: rockchip: rk3036: mark ddrphy as critical 2025-06-27 11:05:32 +01:00
samsung clk: samsung: Fix UBSAN panic in samsung_clk_init() 2025-04-10 14:31:59 +02:00
sifive clk: sifive: Do not register clkdevs for PRCI clocks 2024-07-05 09:14:15 +02:00
socfpga clk: socfpga: Fix undefined behavior bug in struct stratix10_clock_data 2023-11-28 16:56:28 +00:00
spear clk: spear: Move prototype to accessible header 2021-02-11 11:56:06 -08:00
sprd clk: sprd: set max_register according to mapping range 2023-04-20 12:13:52 +02:00
st clk: st: Fix memory leak in st_of_quadfs_setup() 2022-12-31 13:14:43 +01:00
sunxi clk: sunxi: sun9i-mmc: check return value after calling platform_get_resource() 2022-05-09 09:14:37 +02:00
sunxi-ng clk: sunxi-ng: v3s: Fix de clock definition 2025-08-28 16:24:10 +02:00
tegra clk: tegra: fix error return case for recalc_rate 2023-10-06 13:18:12 +02:00
ti clk: ti: am33xx: keep WKUP_DEBUGSS_CLKCTRL enabled 2025-12-07 06:09:25 +09:00
uniphier clk: uniphier: Fix fixed-rate initialization 2022-04-08 14:22:50 +02:00
ux500 mfd: db8500-prcmu: Handle missing FW variant 2021-08-09 09:33:29 +01:00
versatile clk: versatile: Depend on HAS_IOMEM 2021-06-04 12:23:28 -07:00
x86 clk: mxl: syscon_node_to_regmap() returns error pointers 2023-02-25 12:06:43 +01:00
xilinx clk: xilinx: vcu: unregister pll_post only if registered correctly 2025-08-28 16:24:09 +02:00
zynq clk: zynq: Prevent null pointer dereference caused by kmalloc failure 2024-03-26 18:21:32 -04:00
zynqmp Revert "drivers: clk: zynqmp: update divider round rate logic" 2024-12-14 19:51:12 +01:00
clk-asm9260.c clk: asm9260: use parent index to link the reference clock 2024-01-25 14:52:44 -08:00
clk-aspeed.c clk: aspeed: Add RMII RCLK gates for both AST2500 MACs 2019-11-26 10:02:48 -08:00
clk-aspeed.h clk: aspeed: Move structures to header 2019-09-06 15:17:02 -07:00
clk-ast2600.c clk: ast2600: BCLK comes from EPLL 2022-10-26 12:35:20 +02:00
clk-axi-clkgen.c clk: clk-axi-clkgen: fix fpfd_max frequency for zynq 2025-08-28 16:24:09 +02:00
clk-axm5516.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
clk-bd718x7.c clk: bd718xx: Drop BD70528 support 2021-06-27 18:42:45 -07:00
clk-bm1880.c clk: bm1880: remove kfrees on static allocations 2022-01-27 11:04:20 +01:00
clk-bulk.c clk: Make clk_bulk_get_all() return a valid "id" 2019-09-17 13:26:31 -07:00
clk-cdce706.c Replace HTTP links with HTTPS ones: Common CLK framework 2020-07-10 17:15:34 -07:00
clk-cdce925.c clk: cdce925: check return value of kasprintf() 2023-07-23 13:47:09 +02:00
clk-clps711x.c clk: clps711x: Terminate clk_div_table with sentinel element 2022-04-08 14:23:48 +02:00
clk-composite.c clk: composite: Also consider .determine_rate for rate + mux composites 2021-10-18 12:59:42 -07:00
clk-conf.c clk: add missing of_node_put() in "assigned-clocks" property parsing 2023-05-11 23:00:36 +09:00
clk-cs2000-cp.c clk: cs2000-cp: convert to SPDX identifiers 2018-08-02 13:55:00 -07:00
clk-devres.c clk: Fix slab-out-of-bounds error in devm_clk_release() 2023-08-30 16:18:16 +02:00
clk-divider.c clk: divider: Implement and wire up .determine_rate by default 2021-08-05 17:35:58 -07:00
clk-fixed-factor.c clk: fixed: fix double free in resource managed fixed-factor clock 2021-04-07 16:01:25 -07:00
clk-fixed-mmio.c clk: clk-fixed-mmio: Demote obvious kernel-doc abuse 2021-02-11 11:56:05 -08:00
clk-fixed-rate.c clk: fixed-rate: add devm_clk_hw_register_fixed_rate 2024-01-25 14:52:44 -08:00
clk-fractional-divider.c clk: fractional-divider: Document the arithmetics used behind the code 2021-08-12 12:42:00 -07:00
clk-fractional-divider.h clk: fractional-divider: Hide clk_fractional_divider_ops from wide audience 2021-08-12 12:42:00 -07:00
clk-fsl-flexspi.c clk: fsl-flexspi: new driver 2020-12-07 16:56:41 -08:00
clk-fsl-sai.c clk: fsl-sai: use devm_clk_hw_register_composite_pdata() 2020-12-07 14:06:16 -08:00
clk-gate.c treewide: Remove uninitialized_var() usage 2020-07-16 12:35:15 -07:00
clk-gemini.c treewide: Use struct_size() for kmalloc()-family 2018-06-06 11:15:43 -07:00
clk-gpio.c Replace HTTP links with HTTPS ones: Common CLK framework 2020-07-10 17:15:34 -07:00
clk-hi655x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
clk-highbank.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
clk-hsdk-pll.c CLK: HSDK: CGU: add support for 148.5MHz clock 2020-05-28 21:06:39 -07:00
clk-k210.c clk: k210: Fix k210_clk_set_parent() 2021-06-30 11:34:36 -07:00
clk-lmk04832.c clk: lmk04832: drop redundant fallthrough statements 2021-07-27 11:52:30 -07:00
clk-lochnagar.c clk: lochnagar: Don't reference clk_init_data after registration 2019-08-16 10:20:07 -07:00
clk-max9485.c clk: Add driver for MAX9485 2018-07-06 13:44:06 -07:00
clk-max77686.c clk: clk-max77686: Clean clkdev lookup leak and use devm 2019-02-06 10:35:03 -08:00
clk-milbeaut.c clk: milbeaut: Don't reference clk_init_data after registration 2019-08-16 10:20:15 -07:00
clk-moxart.c clk: Convert to using %pOF instead of full_name 2017-07-21 15:49:54 -07:00
clk-multiplier.c clk: Remove io.h from clk-provider.h 2019-05-15 13:21:37 -07:00
clk-mux.c clk: mux: provide devm_clk_hw_register_mux() 2021-04-07 11:05:44 -07:00
clk-nomadik.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
clk-npcm7xx.c clk: npcm7xx: Fix incorrect kfree 2023-11-20 11:08:18 +01:00
clk-nspire.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
clk-oxnas.c clk: oxnas: Hold reference returned by of_get_parent() 2022-10-26 12:35:03 +02:00
clk-palmas.c clk: palmas: Add a missing SPDX license header 2021-08-05 17:34:30 -07:00
clk-plldig.c clk: ls1028a: fix a dereference of pointer 'parent' before a null check 2020-02-03 23:03:49 -08:00
clk-pwm.c clk: pwm: drop of_match_ptr from of_device_id table 2020-12-10 12:24:18 -08:00
clk-qoriq.c clk: qoriq: Hold reference returned by of_get_parent() 2022-10-26 12:35:04 +02:00
clk-rk808.c - Core Frameworks 2019-07-15 20:18:40 -07:00
clk-s2mps11.c clk: s2mps11: Fix a resource leak in error handling paths in the probe function 2020-12-19 15:53:31 -08:00
clk-scmi.c clk: scmi: Free scmi_clk allocated when the clocks with invalid info are skipped 2023-11-20 11:08:21 +01:00
clk-scpi.c clk: scpi: mark scpi_clk_match as maybe unused 2020-12-10 12:24:40 -08:00
clk-si514.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
clk-si544.c clk: clk-si544: Implement small frequency change support 2019-06-27 13:45:38 -07:00
clk-si570.c clk: si570: Skip NVM to RAM recall operation if an optional property is set 2021-02-11 12:13:50 -08:00
clk-si5341.c clk: si5341: fix an error code problem in si5341_output_clk_set_rate 2024-01-25 14:52:44 -08:00
clk-si5351.c clk: si5351: Wait for bit clear after PLL reset 2020-12-19 15:49:54 -08:00
clk-si5351.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
clk-sparx5.c clk: sparx5: Add Sparx5 SoC DPLL clock driver 2020-07-28 18:17:56 -07:00
clk-stm32f4.c clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after system enter shell 2022-01-27 11:04:12 +01:00
clk-stm32h7.c clk: stm32h7: Switch to clk_divider.determine_rate 2021-08-05 17:36:10 -07:00
clk-stm32mp1.c clk: stm32mp1: Switch to clk_divider.determine_rate 2021-08-05 17:36:10 -07:00
clk-twl6040.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
clk-versaclock5.c clk: vc5: check memory returned by kasprintf() 2023-07-23 13:47:09 +02:00
clk-vt8500.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
clk-wm831x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
clk-xgene.c clk: clk-xgene: Add description for 'mask' and fix formatting for 'flags' 2021-02-11 11:56:06 -08:00
clk.c clk: check for disabled clock-provider in of_clk_get_hw_from_clkspec() 2025-05-02 07:44:34 +02:00
clk.h clk: consoldiate the __clk_get_hw() declarations 2019-07-12 11:00:14 -07:00
clkdev.c clkdev: remove unused clkdev_alloc() interfaces 2021-06-08 17:00:09 +02:00
Kconfig clk: fixed-mmio: make COMMON_CLK_FIXED_MMIO depend on HAS_IOMEM 2023-09-19 12:22:28 +02:00
Makefile clk: pistachio: Make it selectable for generic MIPS kernel 2021-08-12 16:01:49 +02:00