On 21-07-23, 17:24, Manivannan Sadhasivam wrote: > On Fri, Jul 21, 2023 at 03:12:06PM +0530, Viresh Kumar wrote: > > On 20-07-23, 11:10, Manivannan Sadhasivam wrote: > > > Hi, > > > > > > This series adds OPP (Operating Points) support to UFSHCD driver and > > > interconnect support to Qcom UFS driver. > > > > > > Motivation behind adding OPP support is to scale both clocks as well as > > > regulators/performance state dynamically. Currently, UFSHCD just scales > > > clock frequency during runtime with the help of "freq-table-hz" property > > > defined in devicetree. With the addition of OPP tables in devicetree (as > > > done for Qcom SDM845 and SM8250 SoCs in this series) UFSHCD can now scale > > > both clocks and performance state of power domain which helps in power > > > saving. > > > > > > For the addition of OPP support to UFSHCD, there are changes required to > > > the OPP framework and devfreq drivers which are also added in this series. > > > > > > Finally, interconnect support is added to Qcom UFS driver for scaling the > > > interconnect path dynamically. This is required to avoid boot crash in > > > recent SoCs and also to save power during runtime. More information is > > > available in patch 13/13. > > > > Hi Mani, > > > > I have picked the OPP related patches from here (apart from DT one) > > and sent them separately in a series, along with few changes from me. > > Also pushed them in my linux-next branch. > > > > Thanks Viresh! For patch 8/15, Kbuild bot has identified one potential null ptr > dereference issue. Could you please fix that in your branch? > > You just need to remove the opp dereference in dev_pm_opp_get_freq_indexed() > before the IS_ERR_OR_NULL() check as below: > > ``` > diff --git a/drivers/opp/core.c b/drivers/opp/core.c > index 66dc0d0cfaed..683e6e61f80b 100644 > --- a/drivers/opp/core.c > +++ b/drivers/opp/core.c > @@ -208,9 +208,7 @@ EXPORT_SYMBOL_GPL(dev_pm_opp_get_freq); > */ > unsigned long dev_pm_opp_get_freq_indexed(struct dev_pm_opp *opp, u32 index) > { > - struct opp_table *opp_table = opp->opp_table; > - > - if (IS_ERR_OR_NULL(opp) || index >= opp_table->clk_count) { > + if (IS_ERR_OR_NULL(opp) || index >= opp->opp_table->clk_count) { > pr_err("%s: Invalid parameters\n", __func__); > return 0; > } Fixed. -- viresh