On Mon, 28 Aug 2023 at 21:10, Stephen Boyd <sboyd@xxxxxxxxxx> wrote: > > Quoting Dmitry Baryshkov (2023-08-27 04:50:15) > > diff --git a/drivers/interconnect/icc-clk.c b/drivers/interconnect/icc-clk.c > > index d787f2ea36d9..45ffb068979d 100644 > > --- a/drivers/interconnect/icc-clk.c > > +++ b/drivers/interconnect/icc-clk.c > > @@ -25,12 +28,16 @@ struct icc_clk_provider { > > static int icc_clk_set(struct icc_node *src, struct icc_node *dst) > > { > > struct icc_clk_node *qn = src->data; > > + unsigned long rate = icc_units_to_bps(src->peak_bw); > > int ret; > > > > if (!qn || !qn->clk) > > return 0; > > > > - if (!src->peak_bw) { > > + if (qn->opp) > > + return dev_pm_opp_set_rate(qn->dev, rate); > > Just curious how does lockdep do with this? Doesn't OPP call into > interconnect code, so lockdep will complain about ABBA? Interesting question. I should check it. -- With best wishes Dmitry