From patchwork Mon Oct 24 18:33:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Abel Vesa X-Patchwork-Id: 10153 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp639501wru; Mon, 24 Oct 2022 13:30:26 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4NklpW0Ah4nmixxgTbDxZVOJlbVdVd+WvsjX0vLeIhMV8PILhP0th0UiNi41+5eioG9DMg X-Received: by 2002:a05:6402:27c9:b0:45d:4539:b462 with SMTP id c9-20020a05640227c900b0045d4539b462mr32236472ede.226.1666643426037; Mon, 24 Oct 2022 13:30:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666643426; cv=none; d=google.com; s=arc-20160816; b=OyXUN3J5Nqk5V7oN05n6K2dPPXrBRpTXnCdKuSOwQsbewOBIHs8/sGdcPL5TPbpvsY gft4QM6LKA45ZeyRkBOJdps8KrJLQtsB3dMCi9MhowZ6bEGmkcX8X0QomgfP4HFZpgxW nu6AtWHvugdc4m1CHmTJHq8vq/1KVpdIWtiQZNIIWZHlZtKgUe3jpUNJFYlt+bHAqkte +PGc1FleBoUnquUKGwint1F9vIQ0E4UaMTIJTkJK3wjE2N4W+XFnjQGkHKrSsXuC3n/I P9icy6YZQ7DigulURsttvEElW+QzQ3XdTRg/i3mA8G8UWI8yOfwOXFXRi/DbPUTSVkPL uVtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=a5wmw7XwD+ppaZR2w3Z9il63MoJr3+QslIiVrYauqc4=; b=nO/VAOvLqY9z/nCUokCML9mZsMtcdh/dhnpAt1biTBUz/XhhweYlbAqG+WA8S76cHz hVYFjj4eCpFrOVwSpbo0CYOOn8HkkkFAuVQDIPnsI8jgT2psOaqsNWhH/XJYP8UdFshS FRJbkH0xmO/azr14gck7P0mQTSFdI7miSHyqHEknm6GyS2Sm6JklwT6YWMwThe7vvTb8 wAlg0XmvVn8nPyrADP/m9tpxD1qAS7vgBHh8iKw/ftPmiZt1WBrPJeGOiuTIDkR3BruP RsGlasBF+Eqrb3L1H6KEspE7ZPseKglDfNnv6BiCk6BmS25B8Iw4bSnvT8sAfIx0nXJ+ vzoQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=tOcfAA3F; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r9-20020a05640251c900b00461b22b19b8si818241edd.511.2022.10.24.13.29.59; Mon, 24 Oct 2022 13:30:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=tOcfAA3F; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232151AbiJXUSj (ORCPT + 99 others); Mon, 24 Oct 2022 16:18:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40846 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234112AbiJXUSN (ORCPT ); Mon, 24 Oct 2022 16:18:13 -0400 Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8ECC4FA038 for ; Mon, 24 Oct 2022 11:35:19 -0700 (PDT) Received: by mail-wr1-x429.google.com with SMTP id z14so4016859wrn.7 for ; Mon, 24 Oct 2022 11:35:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=a5wmw7XwD+ppaZR2w3Z9il63MoJr3+QslIiVrYauqc4=; b=tOcfAA3FdBlp+oU8hIpAafb52EX0dDovvBrvTfAhwgBO9uH+TBPkajNOY8PAkgGT2L GNdHzsmWFuI7hGyEehTLjg7PHkppHJ12ooSzMElD+c8+r7xPEnYZ/e9Mdn283DCub8iS JGq2+JwsNhHDMr7TiuQnAaS2lhtnmVsWigKtjpEMtqlQzQmZ/Qm4gmToRDJ13UzTshhd hb6PuUjQh6vy5IBbcVYuA8Q/JdPkJcAtk/8vKPIcVVw+YfDpPmxO7W9/VGB3SBstpnGO YA3wfBANugkPFz6H9ibnDno5FXe3KOaxXSGS1yUec+88PI/LugHM16+uVKAMhlswgFTm 3JFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=a5wmw7XwD+ppaZR2w3Z9il63MoJr3+QslIiVrYauqc4=; b=46p6dvUuwS4aQx/85E9isFIV0GI+Cj57oL03I3GzWX1MPcNA0s2qXY19DX7NViP15K h2ABmijhvUcEnWC3QyF3f95n1izWarzInq8VcB6GJsp0888KY+LZwLZq/K+tlOAv2tR6 KTD0xviCJfzC/OEGQ5plPdMoFrwtmwx5bWlVwejDXqfDDRgniVpAVlq6XRa+bc2a4UmT XQAlePrQWtnbcTTHGWUkBQg9XYMX0rNuVjrj2VP6/NA/foKMbjy+qT1KHuVrdOpXiVg7 CrSVT5U8r/1a1wwsJPUeHiCyIidh0pAMtW2vFgAa7rImjaRkO68YMM0TlbfhjlYXsUVV ZYeA== X-Gm-Message-State: ACrzQf2bnaqm+g0s+Sj5cYsGtGd7lmvw0WD0bRCC/JsGH3Dmox7RTVQJ +H5cqj78FwqEv6vKPdnTzOa2PA== X-Received: by 2002:a5d:4745:0:b0:22e:3521:a557 with SMTP id o5-20020a5d4745000000b0022e3521a557mr21993951wrs.125.1666636450728; Mon, 24 Oct 2022 11:34:10 -0700 (PDT) Received: from localhost.localdomain ([94.52.112.99]) by smtp.gmail.com with ESMTPSA id n11-20020adff08b000000b00228692033dcsm280323wro.91.2022.10.24.11.34.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Oct 2022 11:34:10 -0700 (PDT) From: Abel Vesa To: Stephen Boyd , Mike Turquette , Bjorn Andersson , Andy Gross , Konrad Dybcio Cc: linux-clk@vger.kernel.org, Linux Kernel Mailing List , linux-arm-kernel@lists.infradead.org, Steev Klimaszewski Subject: [PATCH 1/2] clk: Add generic sync_state callback for disabling unused clocks Date: Mon, 24 Oct 2022 21:33:57 +0300 Message-Id: <20221024183358.569765-1-abel.vesa@linaro.org> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747602297315957495?= X-GMAIL-MSGID: =?utf-8?q?1747602297315957495?= There are unused clocks that need to remain untouched by clk_disable_unused, and most likely could be disabled later on sync_state. So provide a generic sync_state callback for the clock providers that register such clocks. Then, use the same mechanism as clk_disable_unused from that generic callback, but pass the device to make sure only the clocks belonging to the current clock provider get disabled, if unused. Also, during the default clk_disable_unused, if the driver that registered the clock has the generic clk_sync_state_disable_unused callback set for sync_state, skip disabling its clocks. Signed-off-by: Abel Vesa --- Here is the link to the RFC: https://lore.kernel.org/all/20220929151047.wom3m2ydgxme5nhh@builder.lan/ Changes since RFC: * Added from_sync_state local variable, as Bjorn suggested * Dropped the addition extra condition for the CLK_IGNORE_UNUSED * Changed the comments above the sync_state checking * Moved back the clk_ignore_unused check to clk_disable_unused_subtree function, as Bjorn suggested drivers/clk/clk.c | 55 ++++++++++++++++++++++++++++++------ include/linux/clk-provider.h | 1 + 2 files changed, 47 insertions(+), 9 deletions(-) diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index c3c3f8c07258..acf5139e16d8 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -1292,14 +1292,27 @@ static void clk_core_disable_unprepare(struct clk_core *core) clk_core_unprepare_lock(core); } -static void __init clk_unprepare_unused_subtree(struct clk_core *core) +static void clk_unprepare_unused_subtree(struct clk_core *core, + struct device *dev) { + bool from_sync_state = !!dev; struct clk_core *child; lockdep_assert_held(&prepare_lock); hlist_for_each_entry(child, &core->children, child_node) - clk_unprepare_unused_subtree(child); + clk_unprepare_unused_subtree(child, dev); + + if (from_sync_state && core->dev != dev) + return; + + /* + * clock will be unprepared on sync_state, + * so leave as is for now + */ + if (!from_sync_state && dev_has_sync_state(core->dev) && + core->dev->driver->sync_state == clk_sync_state_disable_unused) + return; if (core->prepare_count) return; @@ -1322,15 +1335,28 @@ static void __init clk_unprepare_unused_subtree(struct clk_core *core) clk_pm_runtime_put(core); } -static void __init clk_disable_unused_subtree(struct clk_core *core) +static void clk_disable_unused_subtree(struct clk_core *core, + struct device *dev) { + bool from_sync_state = !!dev; struct clk_core *child; unsigned long flags; lockdep_assert_held(&prepare_lock); hlist_for_each_entry(child, &core->children, child_node) - clk_disable_unused_subtree(child); + clk_disable_unused_subtree(child, dev); + + if (from_sync_state && core->dev != dev) + return; + + /* + * clock will be disabled on sync_state, + * so leave as is for now + */ + if (!from_sync_state && + core->dev->driver->sync_state == clk_sync_state_disable_unused) + return; if (core->flags & CLK_OPS_PARENT_ENABLE) clk_core_prepare_enable(core->parent); @@ -1376,7 +1402,7 @@ static int __init clk_ignore_unused_setup(char *__unused) } __setup("clk_ignore_unused", clk_ignore_unused_setup); -static int __init clk_disable_unused(void) +static void __clk_disable_unused(struct device *dev) { struct clk_core *core; @@ -1388,23 +1414,34 @@ static int __init clk_disable_unused(void) clk_prepare_lock(); hlist_for_each_entry(core, &clk_root_list, child_node) - clk_disable_unused_subtree(core); + clk_disable_unused_subtree(core, dev); hlist_for_each_entry(core, &clk_orphan_list, child_node) - clk_disable_unused_subtree(core); + clk_disable_unused_subtree(core, dev); hlist_for_each_entry(core, &clk_root_list, child_node) - clk_unprepare_unused_subtree(core); + clk_unprepare_unused_subtree(core, dev); hlist_for_each_entry(core, &clk_orphan_list, child_node) - clk_unprepare_unused_subtree(core); + clk_unprepare_unused_subtree(core, dev); clk_prepare_unlock(); +} + +static int __init clk_disable_unused(void) +{ + __clk_disable_unused(NULL); return 0; } late_initcall_sync(clk_disable_unused); +void clk_sync_state_disable_unused(struct device *dev) +{ + __clk_disable_unused(dev); +} +EXPORT_SYMBOL_GPL(clk_sync_state_disable_unused); + static int clk_core_determine_round_nolock(struct clk_core *core, struct clk_rate_request *req) { diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h index 267cd06b54a0..06a8622f90cf 100644 --- a/include/linux/clk-provider.h +++ b/include/linux/clk-provider.h @@ -718,6 +718,7 @@ struct clk *clk_register_divider_table(struct device *dev, const char *name, void __iomem *reg, u8 shift, u8 width, u8 clk_divider_flags, const struct clk_div_table *table, spinlock_t *lock); +void clk_sync_state_disable_unused(struct device *dev); /** * clk_register_divider - register a divider clock with the clock framework * @dev: device registering this clock From patchwork Mon Oct 24 18:33:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Abel Vesa X-Patchwork-Id: 10150 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp639033wru; Mon, 24 Oct 2022 13:29:02 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7f+KxG3wE441hdYzFFUfWv41Vry6t+HLxAazOMs2iy9TwYTyuP0C/+JAQOyH/mPHlU2i/G X-Received: by 2002:a17:906:30c8:b0:73c:81a9:f8e1 with SMTP id b8-20020a17090630c800b0073c81a9f8e1mr29200108ejb.649.1666643342141; Mon, 24 Oct 2022 13:29:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666643342; cv=none; d=google.com; s=arc-20160816; b=Xv7cqAR9gMDKIIUib2UhxMiyqfZ7fe6AxaQ9SbB82joiT3JgrVSyX+WpkT67CVILi3 cB+4DRR2nd2qigJwE5vZ1vYHjx6h16xlN6M/bajbqrBP4ze7sEQF1EXHh9vUtUmeeFOT 273oopiqN6pn3QYnUB2PtVNOIWLFLvChTyY+tHrNbkUgd+vr6tREyoeNWFf4vDXCQOtU GaqGiup0xL1c7BkYHbx2t3s+MCpmFQ7g+5dyo3VDt30aC7ROpCwxr26AOJzFASF6y7fB UbRZNTSJAvQhODo1LLFpUBbMMWN79ESjbaRoyAqqBbQU6J/+RKUK9yY9H78xeP+j14SW s2dA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=u/us6so7a7L/wAT5CX3+5Z/jO0OFN3Rtpb2Ic6XDIGg=; b=RjRUyejFXs+RjuBvY03TJ9SIrgsCswVIcM2Zyamx6VxotICL4jKZvo9pMtbLyTPnOG Hzro0sJED4WTNhiF39PQnTHVyKAGyBOHH/fU7Epxv7eY5Za67C22pxlIYc1ixqPNTJp5 qV/Pduv4olw4H1YRo4Ma/3Cq94DBri3FUtOR6ugQO4NyRwTj8eqjPcfV6chmN9yz3wOE uxzQfeAkCWtKNLCGWVbtC/smCzMDFmGi6rFbtw5Si09I8VeL3cMRzVre8/M36j7V8unj XWFAeQU0yIc+ulf/++nE1E09mWp72iRbygwVSeAb/eRO/2wA/4sgFmB7AwCdzE+FiQaW L/ng== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=tYTUZ5NT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id gs35-20020a1709072d2300b00780328a0868si736875ejc.110.2022.10.24.13.28.38; Mon, 24 Oct 2022 13:29:02 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=tYTUZ5NT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233376AbiJXUSp (ORCPT + 99 others); Mon, 24 Oct 2022 16:18:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59414 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233510AbiJXUSa (ORCPT ); Mon, 24 Oct 2022 16:18:30 -0400 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A5D4310827D for ; Mon, 24 Oct 2022 11:35:23 -0700 (PDT) Received: by mail-wm1-x32f.google.com with SMTP id l14-20020a05600c1d0e00b003c6ecc94285so7217119wms.1 for ; Mon, 24 Oct 2022 11:35:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=u/us6so7a7L/wAT5CX3+5Z/jO0OFN3Rtpb2Ic6XDIGg=; b=tYTUZ5NTpMo0q3fxgyh+J1efpmkcEl5aAVtNKf8717N3Nu1eLt0N4dwQamcO8K5dj/ s5tKaPClYuOTOVPrKwNhnaVbWFADG62EweuqPDDIncVDuBv1icozaf89clr8aFtGlg2G QgLMNjeMdxnThCVkJy5xFgZ0lQI9DiANcQvFymvuj8sNPK2Nzxnfkl5v5OI9DulnqV0p UykVi+rPsPi8tdpMl/CFLLQQui/XXG+7C3Pus2orKhKvlkdcOMOpGHmAHCTsidrlhR7b NM5vcAzn9TcUJ1QHOiiiF8oh1zQq0Eu8jTjeeugZgFnsiYo7Sv/Xj0Rt6fkvi2qHRng4 mySw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=u/us6so7a7L/wAT5CX3+5Z/jO0OFN3Rtpb2Ic6XDIGg=; b=VSa6R4oxoK8OjdTvcgCvm8mB5rlLCwmAbIjhFIgDBdPvofsmzr31ddjiSz8WGL4awh XyM52ZEWq0AxKoCNH/RWkx518NhBA/QI6hkVKNDnT6r9qEyMC9Iy9w0iZSzMdxSJ4ETm y2dxgiL0Pfz25FO86YxMKQPdBXHCesS4Bxpd4h2SO4bdVN/8hNWrn5C3duiL8MqdeNwb sNbeQaRBF8GLWvWCkWoCcPALg4ZhmfwkWb7x+TscHOoQt2S97yFMB05ntUiuwc0e1SoO qYRH197s2GdK6tHjSplvUocpt2aksGwgJ71FKIWLZHUbT04Spp1t4hEWbEcyn1XBdHaB jrPQ== X-Gm-Message-State: ACrzQf3DWqppiBk1RqDoC8skMpKbzzm1aqzOZKUF3bx/JojdC6+qDAWa hkogdYc9itx+WTKKmeSqZlRzI5AO3eYBxw== X-Received: by 2002:a05:600c:358f:b0:3c6:da94:66f9 with SMTP id p15-20020a05600c358f00b003c6da9466f9mr22777161wmq.142.1666636451706; Mon, 24 Oct 2022 11:34:11 -0700 (PDT) Received: from localhost.localdomain ([94.52.112.99]) by smtp.gmail.com with ESMTPSA id n11-20020adff08b000000b00228692033dcsm280323wro.91.2022.10.24.11.34.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Oct 2022 11:34:11 -0700 (PDT) From: Abel Vesa To: Stephen Boyd , Mike Turquette , Bjorn Andersson , Andy Gross , Konrad Dybcio Cc: linux-clk@vger.kernel.org, Linux Kernel Mailing List , linux-arm-kernel@lists.infradead.org, Steev Klimaszewski Subject: [PATCH 2/2] clk: qcom: sdm845: Use generic clk_sync_state_disable_unused callback Date: Mon, 24 Oct 2022 21:33:58 +0300 Message-Id: <20221024183358.569765-2-abel.vesa@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221024183358.569765-1-abel.vesa@linaro.org> References: <20221024183358.569765-1-abel.vesa@linaro.org> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747602209146870089?= X-GMAIL-MSGID: =?utf-8?q?1747602209146870089?= By adding the newly added clk_sync_state_disable_unused as sync_state callback to all sdm845 clock providers, we make sure that no clock belonging to these providers gets disabled on clk_disable_unused, but rather they are disabled on sync_state, when it is safe, since all the consumers build as modules have had their chance of enabling their own clocks. Signed-off-by: Abel Vesa Reviewed-by: Bjorn Andersson --- Changes since RFC: * Added Bjorn's R-b tag drivers/clk/qcom/camcc-sdm845.c | 1 + drivers/clk/qcom/dispcc-sdm845.c | 1 + drivers/clk/qcom/gcc-sdm845.c | 1 + drivers/clk/qcom/gpucc-sdm845.c | 1 + 4 files changed, 4 insertions(+) diff --git a/drivers/clk/qcom/camcc-sdm845.c b/drivers/clk/qcom/camcc-sdm845.c index 27d44188a7ab..e5aeb832e47b 100644 --- a/drivers/clk/qcom/camcc-sdm845.c +++ b/drivers/clk/qcom/camcc-sdm845.c @@ -1743,6 +1743,7 @@ static struct platform_driver cam_cc_sdm845_driver = { .driver = { .name = "sdm845-camcc", .of_match_table = cam_cc_sdm845_match_table, + .sync_state = clk_sync_state_disable_unused, }, }; diff --git a/drivers/clk/qcom/dispcc-sdm845.c b/drivers/clk/qcom/dispcc-sdm845.c index 735adfefc379..1810d58bad09 100644 --- a/drivers/clk/qcom/dispcc-sdm845.c +++ b/drivers/clk/qcom/dispcc-sdm845.c @@ -869,6 +869,7 @@ static struct platform_driver disp_cc_sdm845_driver = { .driver = { .name = "disp_cc-sdm845", .of_match_table = disp_cc_sdm845_match_table, + .sync_state = clk_sync_state_disable_unused, }, }; diff --git a/drivers/clk/qcom/gcc-sdm845.c b/drivers/clk/qcom/gcc-sdm845.c index 6af08e0ca847..0ff05af515c4 100644 --- a/drivers/clk/qcom/gcc-sdm845.c +++ b/drivers/clk/qcom/gcc-sdm845.c @@ -4020,6 +4020,7 @@ static struct platform_driver gcc_sdm845_driver = { .driver = { .name = "gcc-sdm845", .of_match_table = gcc_sdm845_match_table, + .sync_state = clk_sync_state_disable_unused, }, }; diff --git a/drivers/clk/qcom/gpucc-sdm845.c b/drivers/clk/qcom/gpucc-sdm845.c index 110b54401bc6..622a54a67d32 100644 --- a/drivers/clk/qcom/gpucc-sdm845.c +++ b/drivers/clk/qcom/gpucc-sdm845.c @@ -205,6 +205,7 @@ static struct platform_driver gpu_cc_sdm845_driver = { .driver = { .name = "sdm845-gpucc", .of_match_table = gpu_cc_sdm845_match_table, + .sync_state = clk_sync_state_disable_unused, }, };