Re: [PATCH v3 3/7] media: iris: scale MMCX power domain on SM8250
From: Dmitry Baryshkov
Date: Thu Feb 05 2026 - 06:00:07 EST
On Thu, Feb 05, 2026 at 04:09:35PM +0530, Dikshita Agarwal wrote:
>
>
> On 2/4/2026 6:29 AM, Dmitry Baryshkov wrote:
> > On SM8250 most of the video clocks are powered by the MMCX domain, while
> > the PLL is powered on by the MX domain. Extend the driver to support
> > scaling both power domains, while keeping compatibility with the
> > existing DTs, which define only the MX domain.
> >
> > Fixes: 79865252acb6 ("media: iris: enable video driver probe of SM8250 SoC")
> > Reviewed-by: Dikshita Agarwal <dikshita.agarwal@xxxxxxxxxxxxxxxx>
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxxxxxxxx>
> > ---
> > drivers/media/platform/qcom/iris/iris_platform_gen1.c | 2 +-
> > drivers/media/platform/qcom/iris/iris_probe.c | 7 +++++++
> > 2 files changed, 8 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/media/platform/qcom/iris/iris_platform_gen1.c b/drivers/media/platform/qcom/iris/iris_platform_gen1.c
> > index df8e6bf9430e..aa71f7f53ee3 100644
> > --- a/drivers/media/platform/qcom/iris/iris_platform_gen1.c
> > +++ b/drivers/media/platform/qcom/iris/iris_platform_gen1.c
> > @@ -281,7 +281,7 @@ static const struct bw_info sm8250_bw_table_dec[] = {
> >
> > static const char * const sm8250_pmdomain_table[] = { "venus", "vcodec0" };
> >
> > -static const char * const sm8250_opp_pd_table[] = { "mx" };
> > +static const char * const sm8250_opp_pd_table[] = { "mx", "mmcx" };
> >
> > static const struct platform_clk_data sm8250_clk_table[] = {
> > {IRIS_AXI_CLK, "iface" },
> > diff --git a/drivers/media/platform/qcom/iris/iris_probe.c b/drivers/media/platform/qcom/iris/iris_probe.c
> > index 7b612ad37e4f..74ec81e3d622 100644
> > --- a/drivers/media/platform/qcom/iris/iris_probe.c
> > +++ b/drivers/media/platform/qcom/iris/iris_probe.c
> > @@ -64,6 +64,13 @@ static int iris_init_power_domains(struct iris_core *core)
> > return ret;
> >
> > ret = devm_pm_domain_attach_list(core->dev, &iris_opp_pd_data, &core->opp_pmdomain_tbl);
> > + /* backwards compatibility for incomplete ABI SM8250 */
> > + if (ret == -ENODEV &&
> > + of_device_is_compatible(core->dev->of_node, "qcom,sm8250-venus")) {
>
> A query here, is it okay to have compatible based checks in driver?
>
> I don't have the links but I remember receiving negative feedback on having
> such compatible based checks.
In general, it's better to use platform data. In this case we have a
case of keeping comatibility for exacrly one platform. Adding that to
platform data would be meaningless for all other platforms.
>
> Thanks,
> Dikshita
> > + iris_opp_pd_data.num_pd_names--;
> > + ret = devm_pm_domain_attach_list(core->dev, &iris_opp_pd_data,
> > + &core->opp_pmdomain_tbl);
> > + }
> > if (ret < 0)
> > return ret;
> >
> >
--
With best wishes
Dmitry