Message ID | 20230303023500.2173137-1-konrad.dybcio@linaro.org |
---|---|
State | New |
Headers | show |
Series | [RFC] interconnect: qcom: icc-rpm: Don't call __qcom_icc_set twice on the same node | expand |
On 3.03.23 4:35, Konrad Dybcio wrote: > Currently, when sync_state calls set(n, n) all the paths for setting > parameters on an icc node are called twice. Avoid that. This could be optimized indeed. > Fixes: 751f4d14cdb4 ("interconnect: icc-rpm: Set destination bandwidth as well as source bandwidth") > Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> > --- > RFC comes from the fact that I *believe* this should be correct, but I'm > not entirely sure about it.. > > > drivers/interconnect/qcom/icc-rpm.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/interconnect/qcom/icc-rpm.c b/drivers/interconnect/qcom/icc-rpm.c > index a6e0de03f46b..d35db1af9b08 100644 > --- a/drivers/interconnect/qcom/icc-rpm.c > +++ b/drivers/interconnect/qcom/icc-rpm.c > @@ -387,7 +387,7 @@ static int qcom_icc_set(struct icc_node *src, struct icc_node *dst) > ret = __qcom_icc_set(src, src_qn, sum_bw); > if (ret) > return ret; > - if (dst_qn) { > + if (dst_qn && src_qn != dst_qn) { > ret = __qcom_icc_set(dst, dst_qn, sum_bw); > if (ret) > return ret; Today we also call provider->set(node, node) in icc_node_add() to set the initial bandwidth when nodes are being added to the topology. The above change will affect that as well. BR, Georgi
diff --git a/drivers/interconnect/qcom/icc-rpm.c b/drivers/interconnect/qcom/icc-rpm.c index a6e0de03f46b..d35db1af9b08 100644 --- a/drivers/interconnect/qcom/icc-rpm.c +++ b/drivers/interconnect/qcom/icc-rpm.c @@ -387,7 +387,7 @@ static int qcom_icc_set(struct icc_node *src, struct icc_node *dst) ret = __qcom_icc_set(src, src_qn, sum_bw); if (ret) return ret; - if (dst_qn) { + if (dst_qn && src_qn != dst_qn) { ret = __qcom_icc_set(dst, dst_qn, sum_bw); if (ret) return ret;
Currently, when sync_state calls set(n, n) all the paths for setting parameters on an icc node are called twice. Avoid that. Fixes: 751f4d14cdb4 ("interconnect: icc-rpm: Set destination bandwidth as well as source bandwidth") Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> --- RFC comes from the fact that I *believe* this should be correct, but I'm not entirely sure about it.. drivers/interconnect/qcom/icc-rpm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)