diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c index dc307bbff265..a356469f08b6 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -4773,6 +4773,8 @@ static void vop2_power_domain_off_by_disabled_vp(struct vop2_power_domain *pd) } if (vp) { + if (vp->dclk_switch) + clk_prepare_enable(vp->dclk_switch); ret = clk_prepare_enable(vp->dclk); if (ret < 0) DRM_DEV_ERROR(vop2->dev, "failed to enable dclk for video port%d - %d\n", @@ -4791,6 +4793,8 @@ static void vop2_power_domain_off_by_disabled_vp(struct vop2_power_domain *pd) DRM_DEV_INFO(vop2->dev, "wait for vp%d dsp_hold timeout\n", vp->id); vop2_dsp_hold_valid_irq_disable(crtc); + if (vp->dclk_switch) + clk_disable_unprepare(vp->dclk_switch); clk_disable_unprepare(vp->dclk); } }