[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <735088f7-2888-04b1-7751-a3ad7e13a857@linaro.org>
Date: Tue, 3 Jan 2023 23:07:46 +0000
From: Bryan O'Donoghue <bryan.odonoghue@...aro.org>
To: Konrad Dybcio <konrad.dybcio@...aro.org>,
linux-arm-msm@...r.kernel.org, andersson@...nel.org,
agross@...nel.org, krzysztof.kozlowski@...aro.org
Cc: marijn.suijten@...ainline.org, Georgi Djakov <djakov@...nel.org>,
linux-pm@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/4] interconnect: qcom: rpm: Don't set QoS params before
non-zero bw is requested
On 03/01/2023 17:30, Konrad Dybcio wrote:
> Until now, the icc-rpm driver unconditionally set QoS params, even on
> empty requests. This is superfluous and the downstream counterpart does
> not do it. Follow it by doing the same.
>
> Signed-off-by: Konrad Dybcio <konrad.dybcio@...aro.org>
> ---
> drivers/interconnect/qcom/icc-rpm.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/interconnect/qcom/icc-rpm.c b/drivers/interconnect/qcom/icc-rpm.c
> index 43b9ce0dcb6a..06e0fee547ab 100644
> --- a/drivers/interconnect/qcom/icc-rpm.c
> +++ b/drivers/interconnect/qcom/icc-rpm.c
> @@ -193,6 +193,12 @@ static int qcom_icc_qos_set(struct icc_node *node, u64 sum_bw)
> struct qcom_icc_provider *qp = to_qcom_provider(node->provider);
> struct qcom_icc_node *qn = node->data;
>
> + /* Defer setting QoS until the first non-zero bandwidth request. */
> + if (!(node->avg_bw || node->peak_bw)) {
> + dev_dbg(node->provider->dev, "NOT Setting QoS for %s\n", qn->name);
> + return 0;
> + }
> +
> dev_dbg(node->provider->dev, "Setting QoS for %s\n", qn->name);
>
> switch (qp->type) {
Doesn't downstream clear the registers on a zero allocation request ?
https://git.codelinaro.org/clo/la/kernel/msm-3.18/-/blob/LA.BR.1.2.9-00810-8x09.0/drivers/platform/msm/msm_bus/msm_bus_bimc.c#L1302
https://git.codelinaro.org/clo/la/kernel/msm-3.18/-/blob/LA.BR.1.2.9-00810-8x09.0/drivers/platform/msm/msm_bus/msm_bus_bimc.c#L1318
https://git.codelinaro.org/clo/la/kernel/msm-3.18/-/blob/LA.BR.1.2.9-00810-8x09.0/drivers/platform/msm/msm_bus/msm_bus_bimc.c#L1367
msm_bus_bimc_set_qos_bw()
{
/* Only calculate if there's a requested bandwidth and window */
if (qbw->bw && qbw->ws) {
}else
/* Clear bandwidth registers */
set_qos_bw_regs(base, mas_index, 0, 0, 0, 0, 0);
}
---
bod
Powered by blists - more mailing lists