From cf54ca6ff6d89b6804098219dd9ef65a301b23d3 Mon Sep 17 00:00:00 2001 From: Andy Yan Date: Tue, 18 Jan 2022 15:10:34 +0800 Subject: [PATCH] drm/rockchip: vop2: reverse list the internal pd when power down Cluster0_PD is a parent power domain for Cluster1/2/3_PD, it should be power on first and power down last. use list_for_each_entry_safe_reverse to make sure the right order. Fixes: 8684b9914503("drm/rockchip: vop2: power off all vop pd when enter suspend mode") Signed-off-by: Andy Yan Change-Id: I50a5d53de40131d4878b8e1d4a065ce2b96eb2c8 --- drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c index fd926b28470a..6e7f6e4ad7a6 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -3297,7 +3297,7 @@ static void vop2_power_off_all_pd(struct vop2 *vop2) struct vop2_power_domain *pd, *n; VOP_CTRL_SET(vop2, pd_off_imd, 1); - list_for_each_entry_safe(pd, n, &vop2->pd_list_head, list) { + list_for_each_entry_safe_reverse(pd, n, &vop2->pd_list_head, list) { VOP_MODULE_SET(vop2, pd->data, pd, 1); vop2_wait_power_domain_off(pd); pd->on = false;