Re: [PATCH v5 2/5] media: iris: Add hardware power on/off ops for X1P42100
From: Dikshita Agarwal
Date: Thu Apr 30 2026 - 04:09:54 EST
On 4/29/2026 1:13 PM, Wangao Wang wrote:
> On X1P42100 the Iris block has an extra BSE clock. Wire this clock into
> the power on/off sequence.
>
> The BSE clock is used to drive the Bin Stream Engine, which is a sub-block
> of the video codec hardware responsible for bitstream-level processing. It
> is required to be enabled separately from the core clock to ensure proper
> codec operation.
>
> Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx>
> Signed-off-by: Wangao Wang <wangao.wang@xxxxxxxxxxxxxxxx>
> ---
> drivers/media/platform/qcom/iris/iris_vpu_common.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.c b/drivers/media/platform/qcom/iris/iris_vpu_common.c
> index 548e5f1727fdb7543f76a1871f17257fa2360733..281b1f54cb962dedbfb0ec96ed3a5aab99b50eb8 100644
> --- a/drivers/media/platform/qcom/iris/iris_vpu_common.c
> +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.c
> @@ -224,6 +224,7 @@ void iris_vpu_power_off_hw(struct iris_core *core)
> {
> dev_pm_genpd_set_hwmode(core->pmdomain_tbl->pd_devs[IRIS_HW_POWER_DOMAIN], false);
> iris_disable_power_domains(core, core->pmdomain_tbl->pd_devs[IRIS_HW_POWER_DOMAIN]);
> + iris_disable_unprepare_clock(core, IRIS_BSE_HW_CLK);
> iris_disable_unprepare_clock(core, IRIS_HW_AHB_CLK);
> iris_disable_unprepare_clock(core, IRIS_HW_CLK);
> }
> @@ -292,12 +293,18 @@ int iris_vpu_power_on_hw(struct iris_core *core)
> if (ret && ret != -ENOENT)
> goto err_disable_hw_clock;
>
> + ret = iris_prepare_enable_clock(core, IRIS_BSE_HW_CLK);
> + if (ret && ret != -ENOENT)
> + goto err_disable_hw_ahb_clock;
> +
> ret = dev_pm_genpd_set_hwmode(core->pmdomain_tbl->pd_devs[IRIS_HW_POWER_DOMAIN], true);
> if (ret)
> - goto err_disable_hw_ahb_clock;
> + goto err_disable_bse_hw_clock;
>
> return 0;
>
> +err_disable_bse_hw_clock:
> + iris_disable_unprepare_clock(core, IRIS_BSE_HW_CLK);
> err_disable_hw_ahb_clock:
> iris_disable_unprepare_clock(core, IRIS_HW_AHB_CLK);
> err_disable_hw_clock:
>
Reviewed-by: Dikshita Agarwal <dikshita.agarwal@xxxxxxxxxxxxxxxx>
Thanks,
Dikshita