On Tue, 5 Jul 2022 at 00:08, Vladimir Zapolskiy <vladimir.zapolskiy@xxxxxxxxxx> wrote: > > The change to dynamically allocated power domains neglected a case of > CAMSS on MSM8916 platform, where a single VFE power domain is neither > attached, linked or managed in runtime in any way explicitly. > > This is a special case and it shall be kept as is, because the power > domain management is done outside of the driver, and it's very different > in comparison to all other platforms supported by CAMSS. > > Fixes: 6b1814e26989 ("media: camss: Allocate power domain resources dynamically") > Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@xxxxxxxxxx> > --- > Changes from v1 to v2: > * corrected the fixed commit id, which is found on media/master > > drivers/media/platform/qcom/camss/camss.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c > index 932968e5f1e5..7a929f19e79b 100644 > --- a/drivers/media/platform/qcom/camss/camss.c > +++ b/drivers/media/platform/qcom/camss/camss.c > @@ -1465,6 +1465,14 @@ static int camss_configure_pd(struct camss *camss) > return camss->genpd_num; > } > > + /* > + * If a platform device has just one power domain, then it is attached > + * at platform_probe() level, thus there shall be no need and even no > + * option to attach it again, this is the case for CAMSS on MSM8916. > + */ > + if (camss->genpd_num == 1) > + return 0; > + > camss->genpd = devm_kmalloc_array(dev, camss->genpd_num, > sizeof(*camss->genpd), GFP_KERNEL); > if (!camss->genpd) > @@ -1698,6 +1706,9 @@ void camss_delete(struct camss *camss) > > pm_runtime_disable(camss->dev); > > + if (camss->genpd_num == 1) > + return; > + > for (i = 0; i < camss->genpd_num; i++) { > device_link_del(camss->genpd_link[i]); > dev_pm_domain_detach(camss->genpd[i], true); > -- > 2.33.0 > Reviewed-by: Robert Foss <robert.foss@xxxxxxxxxx>