| Message ID | 20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-1-091697dbeb02@oss.qualcomm.com |
|---|---|
| State | New |
| Headers | show |
| Series | soc: qcom: geni: Derive SE clock configuration from OPP table on SA8255P | expand |
On Thu, Aug 27, 2026 at 7:59 PM Praveen Talari <praveen.talari@oss.qualcomm.com> wrote: > > Currently, scmi_pd_set_perf_state() treats a performance state of 0 as > invalid and returns -EINVAL. As a result, devices attached to SCMI > performance domains can report failures when relinquishing their > performance vote. > > The OPP framework use performance state 0 to indicate that no performance > vote is required. For example, dev_pm_opp_set_rate(dev, 0) is commonly > used (by firmware or linux) when a device is runtime suspended. > > A zero performance state does not require any SCMI performance request > to be sent. Treat it as a no-op and return success instead of reporting > an error. > > Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com> > Reviewed-by: Mukesh Savaliya <mukesh.savaliya@oss.qualcomm.com> > Signed-off-by: Praveen Talari <praveen.talari@oss.qualcomm.com> This is already in v7.2. Please rebase your series. Kind regards Uffe > --- > drivers/pmdomain/arm/scmi_perf_domain.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/pmdomain/arm/scmi_perf_domain.c b/drivers/pmdomain/arm/scmi_perf_domain.c > index 3693423459c9..e390f902a444 100644 > --- a/drivers/pmdomain/arm/scmi_perf_domain.c > +++ b/drivers/pmdomain/arm/scmi_perf_domain.c > @@ -33,7 +33,7 @@ scmi_pd_set_perf_state(struct generic_pm_domain *genpd, unsigned int state) > return 0; > > if (!state) > - return -EINVAL; > + return 0; > > ret = pd->perf_ops->level_set(pd->ph, pd->domain_id, state, false); > if (ret) > > -- > 2.34.1 >
diff --git a/drivers/pmdomain/arm/scmi_perf_domain.c b/drivers/pmdomain/arm/scmi_perf_domain.c index 3693423459c9..e390f902a444 100644 --- a/drivers/pmdomain/arm/scmi_perf_domain.c +++ b/drivers/pmdomain/arm/scmi_perf_domain.c @@ -33,7 +33,7 @@ scmi_pd_set_perf_state(struct generic_pm_domain *genpd, unsigned int state) return 0; if (!state) - return -EINVAL; + return 0; ret = pd->perf_ops->level_set(pd->ph, pd->domain_id, state, false); if (ret)