On 31-08-21, 16:54, Dmitry Osipenko wrote: > The opp_table->clk is set to error once clock is released by > dev_pm_opp_put_clkname(). This doesn't allow to set clock again, I am not sure why are you required to set the clk again here ? I mean, users aren't expected to put clkname in the middle of using it. The set-name API also checks that the OPP list should be empty in such a case. > until OPP table is re-created from scratch. Check opp_table->clk > for both NULL and ERR_PTR to allow the clock's replacement. > > Signed-off-by: Dmitry Osipenko <digetx@xxxxxxxxx> > --- > drivers/opp/core.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/opp/core.c b/drivers/opp/core.c > index dde8a5cc948c..602e502d092e 100644 > --- a/drivers/opp/core.c > +++ b/drivers/opp/core.c > @@ -2146,7 +2146,7 @@ struct opp_table *dev_pm_opp_set_clkname(struct device *dev, const char *name) > } > > /* clk shouldn't be initialized at this point */ > - if (WARN_ON(opp_table->clk)) { > + if (WARN_ON(!IS_ERR_OR_NULL(opp_table->clk))) { > ret = -EBUSY; > goto err; > } > -- > 2.32.0 -- viresh