|
|
Log in / Subscribe / Register

clk: implement sync_state support

From:  Brian Masney <bmasney-AT-redhat.com>
To:  Saravana Kannan <saravanak-AT-kernel.org>, Abel Vesa <abelvesa-AT-kernel.org>, Maxime Ripard <mripard-AT-kernel.org>, Michael Turquette <mturquette-AT-baylibre.com>, Stephen Boyd <sboyd-AT-kernel.org>, Russell King <linux-AT-armlinux.org.uk>, Bjorn Andersson <andersson-AT-kernel.org>, Hans de Goede <johannes.goede-AT-oss.qualcomm.com>, Konrad Dybcio <konrad.dybcio-AT-oss.qualcomm.com>, Dmitry Baryshkov <dmitry.baryshkov-AT-oss.qualcomm.com>
Subject:  [PATCH v2 0/5] clk: implement sync_state support
Date:  Tue, 16 Jun 2026 17:09:42 -0400
Message-ID:  <20260616-clk-sync-state-v2-0-15f82c64d95c@redhat.com>
Cc:  linux-clk-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, linux-arm-msm-AT-vger.kernel.org, Brian Masney <bmasney-AT-redhat.com>, Jens Glathe <jens.glathe-AT-oldschoolsolutions.biz>
Archive-link:  Article

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.

Changes in v2:
- Split out clk-cbf-8996.c into it's own patch, and don't call
  qcom_cc_sync_state().
- Clarify comment above call to dev_set_drv_sync_state() about
  the -EBUSY.
- Added Tested-by from Jens
- Link to v1: https://lore.kernel.org/r/20260603-clk-sync-state-v1-0-45...

Signed-off-by: Brian Masney <bmasney@redhat.com>
---
Brian Masney (5):
      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: qcom: cbf-8996: add clk_sync_state() call
      clk: implement sync_state support

 drivers/clk/clk.c                | 76 +++++++++++++++++++++++++++++++++-------
 drivers/clk/qcom/apss-ipq5424.c  |  3 +-
 drivers/clk/qcom/clk-cbf-8996.c  |  8 +++--
 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, 100 insertions(+), 26 deletions(-)
---
base-commit: 08484c504b55a98bd100527fbe10a3caf55ff3ff
change-id: 20260602-clk-sync-state-c0539c5530f4

Best regards,
-- 
Brian Masney <bmasney@redhat.com>




Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds