drm/vc4: Handle drm_atomic_helper_swap_state failure
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Tue, 11 Jul 2017 14:33:12 +0000 (16:33 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 26 Jul 2017 11:22:43 +0000 (13:22 +0200)
drm_atomic_helper_swap_state() will be changed to interruptible waiting
in the next few commits, so all drivers have to be changed to handling
failure.

VC4 has its own nonblocking modeset tracking through the vc4->async_modeset
semaphore, so it doesn't need to stall in swap_state. Pass stall = false
and BUG_ON when it returns an error. This should never happen for !stall.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Eric Anholt <eric@anholt.net>
Link: http://patchwork.freedesktop.org/patch/msgid/20170711143314.2148-11-maarten.lankhorst@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/vc4/vc4_kms.c

index 27edae427025e41df5ef9a95dfb2125edf9af048..aeec6e8703d274729c08d2ac6af26ef238cd0571 100644 (file)
@@ -126,7 +126,7 @@ static int vc4_atomic_commit(struct drm_device *dev,
         * the software side now.
         */
 
-       drm_atomic_helper_swap_state(state, true);
+       BUG_ON(drm_atomic_helper_swap_state(state, false) < 0);
 
        /*
         * Everything below can be run asynchronously without the need to grab