From nobody Mon Apr 6 10:44:13 2026 Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 45ED8393DEE for ; Fri, 20 Mar 2026 10:49:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774003799; cv=none; b=QfngiBakv8r6F2o9DQgtJUvZZF3PN74DM9fL3a+x0nWuQbeG4YizZHs1pYiiPGOL4G6k+Kz3TEeCbRGkIKipkThF9QvsYbO0yIPEkl65hz6cHYjF9xVmjJfBFBa5SmKOLfj/Y/56RnNFKjbvrWkvKP+2bEN2Puf3a/JbefLaEII= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774003799; c=relaxed/simple; bh=KV6RQJ0PMqXgl39fDov5/8rRWnSxE60D38ftJ3AsSuE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qpMqFr8wJRHdjdzGsvIEK454IdiKentjC5N4h3abwJvtIdOcQ4Lm7XBtA/xHV7HY5Uk0jd1e2VrbwfSBmHuuO4TNP1vDGocN90yYC/XmBltGqfIkKfzzwUJBOkoxfv/w+g25kpuzHfaZ30zYv0ZwrLiIxbsb1LK70wJMOllxaPY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=IpT7Y5v3; arc=none smtp.client-ip=209.85.221.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="IpT7Y5v3" Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-43b41b545d9so2168449f8f.2 for ; Fri, 20 Mar 2026 03:49:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1774003795; x=1774608595; darn=vger.kernel.org; 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=MDoprgHu93ls7kHmqlV6l9UPsfd/brYSyxRd8cyc4oY=; b=IpT7Y5v3raw+RZdp+jC5c0PFbAwoirt4NpG6AmXItNJE6RogvPPjGiUjBTWmZ5GH+E Fi3mkvqXZ/G7WsdOISyLqo85Ri2VYaFxTEuc2XM89WxxAvrXxYCRJy54CzzH6doHPP1n 4puUWGYWwFmRoPqA4AvCP4iKzOeJaL4gluJ00fD8Riz56jsTnQo0EW/Zv+fEH8WoCKD9 /xiMqrSo5GLNV1eCYax5WV/BZx2+eI/4sM0H9ZgajYht2Ts1iPwFMR9jnoWUOnPsvHSR oofa45n7aKa0RVUq6m71GYY9v9ZQGvIbAc6cZB40Z3Biu8ObQEtBuCpPk5170bQUAFUE J3vQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774003795; x=1774608595; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=MDoprgHu93ls7kHmqlV6l9UPsfd/brYSyxRd8cyc4oY=; b=gPkiiu5gPFDP1rhBD1KqVD5F5Yo1fOHpszDmwo2QyVx2+zVXbd7+vk75srqI3Chqpf L4SE2exrvGJBBWUoO/oAT1+hdZGUP78NAx5YsUETFPzMQcV8ex+WYWr1B31FkRwKlHd3 +m2lsX+7l5oYg+tXaiPobNfh//nNKSPb5C3OXlOQ2D32TsutYbmuYD4uvZ7yoKGmoMNH xTpVvxab7PArqq3i5P8Jwtq6WjzvTsTICBCIUgdCR7iqTz8965TqQIOvii77enTZkXHN Kn4MihWlyRs2bpSLcBjQF1JDtmdkY47h0jcAfenqP+01wNZdOs+Ty6IM/cnwKhjqfZnT CkqA== X-Forwarded-Encrypted: i=1; AJvYcCUXpBiU2UQB/3oO+mmuZF69QiNWiABj9PbhGWblhDWRImB/4xNbVqoOZfbwEArJmhANJfvkSTTH7jyqcz8=@vger.kernel.org X-Gm-Message-State: AOJu0YzjM4to+pDxjb5b+TgMKDzqpD2ci6cpviPDUR5uVDWbZIOWk8qU +gxvIOIHracInM5O115Smrmuqxbz0ysIRg19km+oY6EiKj1NkDp91LSC X-Gm-Gg: ATEYQzz2adq5AQnvv2qadzh2iC3aM1ny8xvUHox+r/wH05BDC6GDwsxxsUsfwPsDTXD b5TO/wxefEo2umDOit0r9ajah8DnOctjSNHXeiw7lC8io+gNrXg41Tz6R9augUDuxpu8mi3H91Y T26MzTBRyIKMakx3nyehYItX6LhEKrkxJdXfC3GirV71hFFE7XbE6sm1A6bUcFKCvUUNQJQ7EY6 TWEv900fT4Sj6r/xFyR+0FhodcxDi1jrNuHR4H6Eo0Y39tBz71ML7m5LWp0NlwY9hvyWNkxMD5R UIv9ncKrtmee0vkjHq57dbXI628wq6VNfroxSMvrTBUuOdVppP37wOtBDpVvI7EGaipnZtpA7rT cwS8ACM3CEtLYm5B9JU/TAJwBJD4mMexO+LLx0bBlhP/T31MLFAL/XboXawOfgauZTXYCoPHwWu AmSb2TlmGibL0qaSuVTMESF16LRpz7Hqo= X-Received: by 2002:a05:6000:4381:b0:439:fd13:5c4a with SMTP id ffacd0b85a97d-43b64234891mr4494405f8f.6.1774003795250; Fri, 20 Mar 2026 03:49:55 -0700 (PDT) Received: from biju.lan ([2a00:23c4:a758:8a01:5b93:d2b1:bc5c:9231]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b644ae619sm6203062f8f.5.2026.03.20.03.49.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 03:49:54 -0700 (PDT) From: Biju X-Google-Original-From: Biju To: Geert Uytterhoeven , Michael Turquette , Stephen Boyd , Philipp Zabel Cc: Biju Das , linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org, Prabhakar Mahadev Lad , Biju Das Subject: [PATCH v7 05/10] clk: renesas: rzg2l-cpg: Re-enable critical module clocks during resume Date: Fri, 20 Mar 2026 10:49:39 +0000 Message-ID: <20260320104950.42220-6-biju.das.jz@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260320104950.42220-1-biju.das.jz@bp.renesas.com> References: <20260320104950.42220-1-biju.das.jz@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Biju Das After a suspend/resume cycle, critical module clocks (CLK_IS_CRITICAL) may be left disabled as there is no owning driver to restore them, unlike regular clocks. Add rzg2l_mod_enable_crit_clock_init_mstop() which walks all module clocks on resume, re-enables any critical clock found disabled, and then restores the MSTOP state for clocks that have one via the existing helper. This replaces the direct call to rzg2l_mod_clock_init_mstop() in rzg2l_cpg_resume(), preserving the correct clock-before-MSTOP restore ordering. Signed-off-by: Biju Das --- v6->v7: * Updated commit description * RZ/V2M has critical clocks but no mstop, so move the mstop check after enabling critical clocks. After this, we need to restore only mstop for module clocks, so remove the inverted logic and continue statement and directly call rzg2l_mod_clock_init_mstop_helper() if the clock has mstop. v5->v6: * Updated commit description * Dropped the list implementation. * Replaced rzg2l_mod_clock_init_mstop->rzg2l_mod_enable_crit_clock_init_m= stop()=20 for enabling critical clks and restoring mstop state during resume. v4->v5: * No change v4: * Moved this patch from [1] as it is boot-dependent [1] https://lore.kernel.org/all/20260306134228.871815-1-biju.das.jz@bp.ren= esas.com/ --- drivers/clk/renesas/rzg2l-cpg.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/drivers/clk/renesas/rzg2l-cpg.c b/drivers/clk/renesas/rzg2l-cp= g.c index b68b0312f0e3..038b3f8e85a1 100644 --- a/drivers/clk/renesas/rzg2l-cpg.c +++ b/drivers/clk/renesas/rzg2l-cpg.c @@ -1600,6 +1600,21 @@ static void rzg2l_mod_clock_init_mstop_helper(struct= rzg2l_cpg_priv *priv, } } =20 +static void rzg2l_mod_enable_crit_clock_init_mstop(struct rzg2l_cpg_priv *= priv) +{ + struct mod_clock *clk; + struct clk_hw *hw; + + for_each_mod_clock(clk, hw, priv) { + if ((clk_hw_get_flags(&clk->hw) & CLK_IS_CRITICAL) && + (!rzg2l_mod_clock_is_enabled(&clk->hw))) + rzg2l_mod_clock_endisable(&clk->hw, true); + + if (clk->mstop) + rzg2l_mod_clock_init_mstop_helper(priv, clk); + } +} + static void rzg2l_mod_clock_init_mstop(struct rzg2l_cpg_priv *priv) { struct mod_clock *clk; @@ -2095,7 +2110,7 @@ static int rzg2l_cpg_resume(struct device *dev) if (ret) return ret; =20 - rzg2l_mod_clock_init_mstop(priv); + rzg2l_mod_enable_crit_clock_init_mstop(priv); =20 return 0; } --=20 2.43.0