From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
To: quic_utiwari@quicinc.com, herbert@gondor.apana.org.au,
thara.gopinath@gmail.com, davem@davemloft.net
Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org,
linux-kernel@vger.kernel.org, quic_neersoni@quicinc.com,
kernel test robot <lkp@intel.com>
Subject: Re: [PATCH v4] crypto: qce - Add runtime PM and interconnect bandwidth scaling support
Date: Mon, 17 Nov 2025 13:25:23 +0100 [thread overview]
Message-ID: <121a5d34-e94f-4c29-9d58-4b730757760a@oss.qualcomm.com> (raw)
In-Reply-To: <20251117062737.3946074-1-quic_utiwari@quicinc.com>
On 11/17/25 7:27 AM, quic_utiwari@quicinc.com wrote:
> From: Udit Tiwari <quic_utiwari@quicinc.com>
>
> The Qualcomm Crypto Engine (QCE) driver currently lacks support for
> runtime power management (PM) and interconnect bandwidth control.
> As a result, the hardware remains fully powered and clocks stay
> enabled even when the device is idle. Additionally, static
> interconnect bandwidth votes are held indefinitely, preventing the
> system from reclaiming unused bandwidth.
>
> Address this by enabling runtime PM and dynamic interconnect
> bandwidth scaling to allow the system to suspend the device when idle
> and scale interconnect usage based on actual demand. Improve overall
> system efficiency by reducing power usage and optimizing interconnect
> resource allocation.
>
> Make the following changes as part of this integration:
>
> - Add support for pm_runtime APIs to manage device power state
> transitions.
> - Implement runtime_suspend() and runtime_resume() callbacks to gate
> clocks and vote for interconnect bandwidth only when needed.
> - Replace devm_clk_get_optional_enabled() with devm_pm_clk_create() +
> pm_clk_add() and let the PM core manage device clocks during runtime
> PM and system sleep.
> - Register dev_pm_ops with the platform driver to hook into the PM
> framework.
>
> Tested:
>
> - Verify that ICC votes drop to zero after probe and upon request
> completion.
> - Confirm that runtime PM usage count increments during active
> requests and decrements afterward.
> - Observe that the device correctly enters the suspended state when
> idle.
>
> Signed-off-by: Udit Tiwari <quic_utiwari@quicinc.com>
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202511160711.Q6ytYvlG-lkp@intel.com/
> ---
> Changes in v4:
> - Annotate runtime PM callbacks with __maybe_unused to silence W=1 warnings.
> - Add Reported-by and Closes tags for kernel test robot warning.
The tags are now saying
"The kernel test robot reported that the QCE driver does not have PM
operations and this patch fixes that."
Which doesn't have a reflection in reality..
[...]
> +/* PM clock helpers: register device clocks */
Missing \t
> + ret = devm_pm_clk_create(dev);
> + if (ret)
> + return ret;
>
> - qce->iface = devm_clk_get_optional_enabled(qce->dev, "iface");
> - if (IS_ERR(qce->iface))
> - return PTR_ERR(qce->iface);
> + ret = pm_clk_add(dev, "core");
> + if (ret)
> + return ret;
>
> - qce->bus = devm_clk_get_optional_enabled(qce->dev, "bus");
> - if (IS_ERR(qce->bus))
> - return PTR_ERR(qce->bus);
> + ret = pm_clk_add(dev, "iface");
> + if (ret)
> + return ret;
>
> - qce->mem_path = devm_of_icc_get(qce->dev, "memory");
> + ret = pm_clk_add(dev, "bus");
> + if (ret)
> + return ret;
Not all SoC have a pair of clocks. This is going to break those who don't
Konrad
next prev parent reply other threads:[~2025-11-17 12:25 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-17 6:27 quic_utiwari
2025-11-17 12:25 ` Konrad Dybcio [this message]
2025-11-18 6:46 ` Udit Tiwari
2025-11-18 13:08 ` Konrad Dybcio
2025-11-18 13:37 ` Geert Uytterhoeven
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=121a5d34-e94f-4c29-9d58-4b730757760a@oss.qualcomm.com \
--to=konrad.dybcio@oss.qualcomm.com \
--cc=davem@davemloft.net \
--cc=herbert@gondor.apana.org.au \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkp@intel.com \
--cc=quic_neersoni@quicinc.com \
--cc=quic_utiwari@quicinc.com \
--cc=thara.gopinath@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®