drm: arm: hdlcd: Use drm_atomic_helper_shutdown() to disable planes on removal
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Wed, 17 Jan 2018 21:55:28 +0000 (23:55 +0200)
committerLiviu Dudau <Liviu.Dudau@arm.com>
Tue, 31 Jul 2018 15:31:50 +0000 (16:31 +0100)
The plane cleanup handler currently calls drm_plane_helper_disable(),
which is a legacy helper function. Replace it with a call to
drm_atomic_helper_shutdown() at removal time. The plane .destroy()
handler now consisting only of a call to drm_plane_cleanup(), replace it
with direct calls to that function.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
drivers/gpu/drm/arm/hdlcd_crtc.c
drivers/gpu/drm/arm/hdlcd_drv.c

index c36c75bef6d9d890d0cf461cf81f5168c0dafb3d..8978d82159e5ca776db18a9f28edf39a36cb7d39 100644 (file)
@@ -280,16 +280,10 @@ static const struct drm_plane_helper_funcs hdlcd_plane_helper_funcs = {
        .atomic_update = hdlcd_plane_atomic_update,
 };
 
-static void hdlcd_plane_destroy(struct drm_plane *plane)
-{
-       drm_plane_helper_disable(plane, NULL);
-       drm_plane_cleanup(plane);
-}
-
 static const struct drm_plane_funcs hdlcd_plane_funcs = {
        .update_plane           = drm_atomic_helper_update_plane,
        .disable_plane          = drm_atomic_helper_disable_plane,
-       .destroy                = hdlcd_plane_destroy,
+       .destroy                = drm_plane_cleanup,
        .reset                  = drm_atomic_helper_plane_reset,
        .atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
        .atomic_destroy_state   = drm_atomic_helper_plane_destroy_state,
index fd5b8c44af144415206802b5a751050f6058be51..70fca288313a8076b2b57446e33594445abe97e9 100644 (file)
@@ -355,6 +355,7 @@ static void hdlcd_drm_unbind(struct device *dev)
        pm_runtime_put_sync(drm->dev);
        pm_runtime_disable(drm->dev);
        of_reserved_mem_device_release(drm->dev);
+       drm_atomic_helper_shutdown(drm);
        drm_mode_config_cleanup(drm);
        drm_dev_put(drm);
        drm->dev_private = NULL;