On Thu, Apr 28, 2022 at 10:19:55AM +0300, Georgi Djakov wrote: > On 16.04.22 4:26, Leo Yan wrote: > > It's fashion to use the icc_sync_state callback to notify the framework > > when all consumers are probed, so that the bandwidth request doesn't > > need to stay on maximum value. > > > > Do the same thing for msm8939 driver. > > I assume that you tested this with some out of tree DT? Is it public? Yes, Bryan is upstreaming for DT binding patch, see: https://lore.kernel.org/all/20220419010903.3109514-3-bryan.odonoghue@xxxxxxxxxx/ > If the consumers are not described as such in DT and/or the support > in the client drivers is missing, paths might get disabled. Indeed, when tested the mainline kernel on msm8939 (with several offline patches for enabling msm8939), I observed that GPU and display drivers are not enabled yet, so some interconnect paths are failed. In this case, the interconnect clock stays on maximum frequency. But I think this doesn't impact this patch; if without this patch, icc_sync_state() will never be called and the global variable 'synced_state' is always false. In other words, based on this patch and after initiailize all client drivers, the clients' bandwdith request will be respected. Thanks, Leo > > Signed-off-by: Leo Yan <leo.yan@xxxxxxxxxx> > > --- > > drivers/interconnect/qcom/msm8939.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/drivers/interconnect/qcom/msm8939.c b/drivers/interconnect/qcom/msm8939.c > > index f9c2d7d3100d..ca5f611d33b0 100644 > > --- a/drivers/interconnect/qcom/msm8939.c > > +++ b/drivers/interconnect/qcom/msm8939.c > > @@ -1423,6 +1423,7 @@ static struct platform_driver msm8939_noc_driver = { > > .driver = { > > .name = "qnoc-msm8939", > > .of_match_table = msm8939_noc_of_match, > > + .sync_state = icc_sync_state, > > }, > > }; > > module_platform_driver(msm8939_noc_driver); >