Commit 3ea4b1e1 authored by Daniel Vetter's avatar Daniel Vetter

drm/msm: Use drm_atomic_helper_shutdown

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.
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Rajesh Yadav <ryadav@codeaurora.org>
Cc: Chandan Uddaraju <chandanu@codeaurora.org>
Cc: Archit Taneja <architt@codeaurora.org>
Cc: Jeykumar Sankaran <jsanka@codeaurora.org>
Cc: Sean Paul <seanpaul@chromium.org>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Sinclair Yeh <syeh@vmware.com>
Cc: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: Russell King <rmk+kernel@armlinux.org.uk>
Cc: Gustavo Padovan <gustavo.padovan@collabora.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: linux-arm-msm@vger.kernel.org
Cc: freedreno@lists.freedesktop.org
Link: https://patchwork.freedesktop.org/patch/msgid/20181004202446.22905-12-daniel.vetter@ffwll.ch
parent b3e90917
...@@ -1482,8 +1482,6 @@ static void dpu_plane_destroy(struct drm_plane *plane) ...@@ -1482,8 +1482,6 @@ static void dpu_plane_destroy(struct drm_plane *plane)
mutex_destroy(&pdpu->lock); mutex_destroy(&pdpu->lock);
drm_plane_helper_disable(plane, NULL);
/* this will destroy the states as well */ /* this will destroy the states as well */
drm_plane_cleanup(plane); drm_plane_cleanup(plane);
......
...@@ -68,7 +68,6 @@ static void mdp4_plane_destroy(struct drm_plane *plane) ...@@ -68,7 +68,6 @@ static void mdp4_plane_destroy(struct drm_plane *plane)
{ {
struct mdp4_plane *mdp4_plane = to_mdp4_plane(plane); struct mdp4_plane *mdp4_plane = to_mdp4_plane(plane);
drm_plane_helper_disable(plane, NULL);
drm_plane_cleanup(plane); drm_plane_cleanup(plane);
kfree(mdp4_plane); kfree(mdp4_plane);
......
...@@ -46,7 +46,6 @@ static void mdp5_plane_destroy(struct drm_plane *plane) ...@@ -46,7 +46,6 @@ static void mdp5_plane_destroy(struct drm_plane *plane)
{ {
struct mdp5_plane *mdp5_plane = to_mdp5_plane(plane); struct mdp5_plane *mdp5_plane = to_mdp5_plane(plane);
drm_plane_helper_disable(plane, NULL);
drm_plane_cleanup(plane); drm_plane_cleanup(plane);
kfree(mdp5_plane); kfree(mdp5_plane);
......
...@@ -312,6 +312,7 @@ static int msm_drm_uninit(struct device *dev) ...@@ -312,6 +312,7 @@ static int msm_drm_uninit(struct device *dev)
if (fbdev && priv->fbdev) if (fbdev && priv->fbdev)
msm_fbdev_free(ddev); msm_fbdev_free(ddev);
#endif #endif
drm_atomic_helper_shutdown(ddev);
drm_mode_config_cleanup(ddev); drm_mode_config_cleanup(ddev);
pm_runtime_get_sync(dev); pm_runtime_get_sync(dev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment