diff options
Diffstat (limited to 'drivers/gpu/drm/drm_plane_helper.c')
-rw-r--r-- | drivers/gpu/drm/drm_plane_helper.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_plane_helper.c b/drivers/gpu/drm/drm_plane_helper.c index f24c4cfe674b..4dcdcad9f16d 100644 --- a/drivers/gpu/drm/drm_plane_helper.c +++ b/drivers/gpu/drm/drm_plane_helper.c | |||
@@ -449,7 +449,15 @@ int drm_plane_helper_commit(struct drm_plane *plane, | |||
449 | crtc_funcs[i]->atomic_begin(crtc[i]); | 449 | crtc_funcs[i]->atomic_begin(crtc[i]); |
450 | } | 450 | } |
451 | 451 | ||
452 | plane_funcs->atomic_update(plane, plane_state); | 452 | /* |
453 | * Drivers may optionally implement the ->atomic_disable callback, so | ||
454 | * special-case that here. | ||
455 | */ | ||
456 | if (drm_atomic_plane_disabling(plane, plane_state) && | ||
457 | plane_funcs->atomic_disable) | ||
458 | plane_funcs->atomic_disable(plane, plane_state); | ||
459 | else | ||
460 | plane_funcs->atomic_update(plane, plane_state); | ||
453 | 461 | ||
454 | for (i = 0; i < 2; i++) { | 462 | for (i = 0; i < 2; i++) { |
455 | if (crtc_funcs[i] && crtc_funcs[i]->atomic_flush) | 463 | if (crtc_funcs[i] && crtc_funcs[i]->atomic_flush) |