diff --git a/drivers/video/rockchip/mpp/mpp_rkvdec.c b/drivers/video/rockchip/mpp/mpp_rkvdec.c index 302dd355e508..cad51ddc562b 100644 --- a/drivers/video/rockchip/mpp/mpp_rkvdec.c +++ b/drivers/video/rockchip/mpp/mpp_rkvdec.c @@ -1562,9 +1562,14 @@ static int rkvdec_3036_set_grf(struct mpp_dev *mpp) list_for_each_entry_safe(loop, n, &queue->dev_list, queue_link) { if (test_bit(loop->var->device_type, &queue->dev_active_flags)) { + mpp_set_grf(loop->grf_info); + if (loop->hw_ops->clk_on) + loop->hw_ops->clk_on(loop); if (loop->hw_ops->reset) loop->hw_ops->reset(loop); rockchip_iommu_disable(loop->dev); + if (loop->hw_ops->clk_off) + loop->hw_ops->clk_off(loop); clear_bit(loop->var->device_type, &queue->dev_active_flags); } } diff --git a/drivers/video/rockchip/mpp/mpp_vdpu1.c b/drivers/video/rockchip/mpp/mpp_vdpu1.c index a4d82ac1b990..e969b203eaed 100644 --- a/drivers/video/rockchip/mpp/mpp_vdpu1.c +++ b/drivers/video/rockchip/mpp/mpp_vdpu1.c @@ -751,9 +751,14 @@ static int vdpu_3036_set_grf(struct mpp_dev *mpp) list_for_each_entry_safe(loop, n, &queue->dev_list, queue_link) { if (test_bit(loop->var->device_type, &queue->dev_active_flags)) { + mpp_set_grf(loop->grf_info); + if (loop->hw_ops->clk_on) + loop->hw_ops->clk_on(loop); if (loop->hw_ops->reset) loop->hw_ops->reset(loop); rockchip_iommu_disable(loop->dev); + if (loop->hw_ops->clk_off) + loop->hw_ops->clk_off(loop); clear_bit(loop->var->device_type, &queue->dev_active_flags); } }