OSDN Git Service

drm/vc4: Use drm_atomic_helper_shutdown
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 4 Oct 2018 20:24:38 +0000 (22:24 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 5 Oct 2018 16:04:10 +0000 (18:04 +0200)
drm_plane_helper_disable is a non-atomic drivers only function, and
will blow up (since no one passes the locking context it needs).

Atomic drivers which want to quiescent their hw on unload should
use drm_atomic_helper_shutdown() instead.

v2: Rebase.

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20181004202446.22905-14-daniel.vetter@ffwll.ch
drivers/gpu/drm/vc4/vc4_drv.c
drivers/gpu/drm/vc4/vc4_plane.c

index 1f1780c..f6f5cd8 100644 (file)
@@ -33,6 +33,7 @@
 #include <linux/pm_runtime.h>
 #include <drm/drm_fb_cma_helper.h>
 #include <drm/drm_fb_helper.h>
+#include <drm/drm_atomic_helper.h>
 
 #include "uapi/drm/vc4_drm.h"
 #include "vc4_drv.h"
@@ -308,6 +309,8 @@ static void vc4_drm_unbind(struct device *dev)
 
        drm_dev_unregister(drm);
 
+       drm_atomic_helper_shutdown(drm);
+
        drm_mode_config_cleanup(drm);
 
        drm_atomic_private_obj_fini(&vc4->ctm_manager);
index 9dc3fcb..d04b3c3 100644 (file)
@@ -903,7 +903,6 @@ static const struct drm_plane_helper_funcs vc4_plane_helper_funcs = {
 
 static void vc4_plane_destroy(struct drm_plane *plane)
 {
-       drm_plane_helper_disable(plane, NULL);
        drm_plane_cleanup(plane);
 }