aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/mediatek/mtk_drm_drv.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/mediatek/mtk_drm_drv.c')
-rw-r--r--drivers/gpu/drm/mediatek/mtk_drm_drv.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
index eebb7d881c2b..0e769abd0c2c 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
+++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
@@ -61,10 +61,25 @@ static void mtk_atomic_complete(struct mtk_drm_private *private,
61 61
62 mtk_atomic_wait_for_fences(state); 62 mtk_atomic_wait_for_fences(state);
63 63
64 /*
65 * Mediatek drm supports runtime PM, so plane registers cannot be
66 * written when their crtc is disabled.
67 *
68 * The comment for drm_atomic_helper_commit states:
69 * For drivers supporting runtime PM the recommended sequence is
70 *
71 * drm_atomic_helper_commit_modeset_disables(dev, state);
72 * drm_atomic_helper_commit_modeset_enables(dev, state);
73 * drm_atomic_helper_commit_planes(dev, state, true);
74 *
75 * See the kerneldoc entries for these three functions for more details.
76 */
64 drm_atomic_helper_commit_modeset_disables(drm, state); 77 drm_atomic_helper_commit_modeset_disables(drm, state);
65 drm_atomic_helper_commit_planes(drm, state, false);
66 drm_atomic_helper_commit_modeset_enables(drm, state); 78 drm_atomic_helper_commit_modeset_enables(drm, state);
79 drm_atomic_helper_commit_planes(drm, state, true);
80
67 drm_atomic_helper_wait_for_vblanks(drm, state); 81 drm_atomic_helper_wait_for_vblanks(drm, state);
82
68 drm_atomic_helper_cleanup_planes(drm, state); 83 drm_atomic_helper_cleanup_planes(drm, state);
69 drm_atomic_state_free(state); 84 drm_atomic_state_free(state);
70} 85}