Re: [PATCH v2 4/5] media: iris: Fix power-off ordering to disable power domain after clocks
From: Krzysztof Kozlowski
Date: Wed Aug 19 2026 - 03:25:09 EST
On Tue, Aug 18, 2026 at 09:24:17PM +0530, Vishnu Reddy wrote:
> In iris_vpu_power_off_hw(), iris_disable_power_domains() was called
> before the associated clocks (IRIS_BSE_HW_CLK, IRIS_HW_AHB_CLK,
> IRIS_HW_CLK) were disabled and unprepared. This reverses the correct
> power-down sequence: with the power domain already removed, the
> subsequent clk_disable_unprepare() calls end up operating on
> clock-controller hardware that is no longer powered, which can hang
> or behave unpredictably.
>
> Reorder the calls so iris_disable_power_domains() runs after all
> three clocks are disabled, ensuring clocks are always turned off
> while their power domain is still active, and mirroring the reverse
> of the power-on sequence.
>
> Fixes: bb8a95aa038e ("media: iris: implement power management")
> Cc: stable@xxxxxxxxxxxxxxx
> Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx>
> Signed-off-by: Vishnu Reddy <busanna.reddy@xxxxxxxxxxxxxxxx>
> ---
> drivers/media/platform/qcom/iris/iris_vpu_common.c | 2 +-
> 1 file changed, 1 insertion(+), 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 e4847c107709..3cd493b06d84 100644
> --- a/drivers/media/platform/qcom/iris/iris_vpu_common.c
> +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.c
> @@ -223,10 +223,10 @@ int iris_vpu_power_off_controller(struct iris_core *core)
> 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);
> + iris_disable_power_domains(core, core->pmdomain_tbl->pd_devs[IRIS_HW_POWER_DOMAIN]);
Really, how is this depending on dma-coherent DTS patch?
Best regards,
Krzysztof