linux/drivers/clk/mvebu
Josua Mayer d45fcd38c6 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-02 12:57:00 +01:00
..
ap-cpu-clk.c clk: mvebu: ap-cpu-clk: convert from round_rate() to determine_rate() 2025-09-08 09:41:30 -04:00
ap806-system-controller.c clk: mvebu: ap80x: add AP807 clock support 2019-09-17 22:15:41 -07:00
armada-37xx-periph.c clk: mvebu: armada-37xx-periph: convert from round_rate() to determine_rate() 2025-09-08 09:41:30 -04:00
armada-37xx-tbg.c clk: Switch back to struct platform_driver::remove() 2024-09-21 14:12:05 -07:00
armada-37xx-xtal.c clk: Switch back to struct platform_driver::remove() 2024-09-21 14:12:05 -07:00
armada-38x.c clk: mvebu: use SPDX-License-Identifier 2018-10-01 15:12:47 -07:00
armada-39x.c clk: mvebu: use SPDX-License-Identifier 2018-10-01 15:12:47 -07:00
armada-370.c clk: armada-370: fix refcount leak in a370_clk_init() 2018-12-28 11:42:41 -08:00
armada-375.c clk: mvebu: use SPDX-License-Identifier 2018-10-01 15:12:47 -07:00
armada-xp.c clk: Fix typos 2025-07-26 23:49:18 -07:00
armada_ap_cp_helper.c clk: mvebu: Use of_address_to_resource() 2023-06-14 18:26:12 -07:00
armada_ap_cp_helper.h clk: mvebu: add helper file for Armada AP and CP clocks 2019-08-08 09:08:09 -07:00
clk-corediv.c clk: mvebu: corediv: convert from round_rate() to determine_rate() 2025-09-08 09:41:30 -04:00
clk-cpu.c clk: mvebu: cpu: convert from round_rate() to determine_rate() 2025-09-08 09:41:30 -04:00
common.c clk: mvebu: fix spelling mistake "gatable" -> "gateable" 2019-04-18 14:53:23 -07:00
common.h clk: mvebu: use SPDX-License-Identifier 2018-10-01 15:12:47 -07:00
cp110-system-controller.c clk: mvebu: cp110 add CLK_IGNORE_UNUSED to pcie_x10, pcie_x11 & pcie_x4 2026-01-02 12:57:00 +01:00
dove-divider.c clk: mvebu: dove-divider: convert from round_rate() to determine_rate() 2025-09-08 09:41:30 -04:00
dove-divider.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
dove.c clk: dove: fix refcount leak in dove_clk_init() 2018-12-28 11:45:43 -08:00
Kconfig clk: mvebu: ARMADA_AP_CPU_CLK needs to select ARMADA_AP_CP_HELPER 2020-07-11 09:07:06 -07:00
kirkwood.c clk: kirkwood: Fix a clocking boot regression 2021-08-28 21:11:22 -07:00
Makefile clk: mvebu: add CPU clock driver for Armada 7K/8K 2019-08-08 09:08:09 -07:00
mv98dx3236.c clk: mv98dx3236: fix refcount leak in mv98dx3236_clk_init() 2018-12-28 11:45:41 -08:00
orion.c clk: mvebu: use SPDX-License-Identifier 2018-10-01 15:12:47 -07:00