The existing support for disabling unused clks runs in the late initcall
stage, and it has been known for a long time that this is broken since
it runs too early in the boot up process. It doesn't work for kernel
modules, and it also doesn't work if all of the consumers haven't fully
probed yet. Folks have long recommended to boot certain platforms with
clk_ignore_unused to work around issues with disabling unused clks.
This series:
- Adds a generic clk_sync_state() callback that's initially empty.
- Adds a generic qcom_cc_sync_state() for qcom SoCs that need to
interact with the Interconnect framework.
- Converts the 7 qcom drivers from using icc_sync_state() to
qcom_cc_sync_state().
- Implement the framework-level sync state via clk_sync_state().
This approach maintains bisectability.
Signed-off-by: Brian Masney <bmasney@redhat.com>
---
Brian Masney (4):
clk: introduce stub clk_sync_state()
clk: qcom: common: introduce qcom_cc_sync_state()
clk: qcom: convert from icc_sync_state() to qcom_cc_sync_state()
clk: implement sync_state support
drivers/clk/clk.c | 75 +++++++++++++++++++++++++++++++++-------
drivers/clk/qcom/apss-ipq5424.c | 3 +-
drivers/clk/qcom/clk-cbf-8996.c | 5 ++-
drivers/clk/qcom/common.c | 9 +++++
drivers/clk/qcom/common.h | 1 +
drivers/clk/qcom/gcc-ipq5332.c | 3 +-
drivers/clk/qcom/gcc-ipq5424.c | 3 +-
drivers/clk/qcom/gcc-ipq9574.c | 3 +-
drivers/clk/qcom/nsscc-ipq5424.c | 3 +-
drivers/clk/qcom/nsscc-ipq9574.c | 3 +-
include/linux/clk.h | 14 ++++++++
11 files changed, 95 insertions(+), 27 deletions(-)
---
base-commit: 08484c504b55a98bd100527fbe10a3caf55ff3ff
change-id: 20260602-clk-sync-state-c0539c5530f4
Best regards,
--
Brian Masney <bmasney@redhat.com>