diff options
Diffstat (limited to 'drivers/gpu/drm/mediatek/mtk_drm_drv.c')
-rw-r--r-- | drivers/gpu/drm/mediatek/mtk_drm_drv.c | 17 |
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 | } |