Replace the deprecated API with new helpers, according to the TODO list
of the DRM subsystem. The new API has been introduced with commit
b7ea04d299c7: DRM_MODESET_LOCK_ALL_BEGIN() simplifies grabbing all modeset
locks using a local context and has the advantage of reducing boilerplate.

Signed-off-by: Fabio M. De Francesco <fmdefrance...@gmail.com>
---

Changes from v1: Added further information in the commit message.

 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 6447cd6ca5a8..e1a71579f8e6 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -32,6 +32,7 @@
 #include <linux/slab.h>
 
 #include <drm/drm_atomic_helper.h>
+#include <drm/drm_drv.h>
 #include <drm/drm_probe_helper.h>
 #include <drm/amdgpu_drm.h>
 #include <linux/vgaarb.h>
@@ -3694,14 +3695,17 @@ int amdgpu_device_suspend(struct drm_device *dev, bool 
fbcon)
 
        if (!amdgpu_device_has_dc_support(adev)) {
                /* turn off display hw */
-               drm_modeset_lock_all(dev);
+               struct drm_modeset_acquire_ctx ctx;
+               int ret;
+
+               DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx, 0, ret);
                drm_connector_list_iter_begin(dev, &iter);
                drm_for_each_connector_iter(connector, &iter)
                        drm_helper_connector_dpms(connector,
                                                  DRM_MODE_DPMS_OFF);
                drm_connector_list_iter_end(&iter);
-               drm_modeset_unlock_all(dev);
-                       /* unpin the front buffers and cursors */
+               DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);
+               /* unpin the front buffers and cursors */
                list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
                        struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc);
                        struct drm_framebuffer *fb = crtc->primary->fb;
@@ -3830,19 +3834,21 @@ int amdgpu_device_resume(struct drm_device *dev, bool 
fbcon)
        /* blat the mode back in */
        if (fbcon) {
                if (!amdgpu_device_has_dc_support(adev)) {
+                       struct drm_modeset_acquire_ctx ctx;
+                       int ret;
+
                        /* pre DCE11 */
                        drm_helper_resume_force_mode(dev);
 
                        /* turn on display hw */
-                       drm_modeset_lock_all(dev);
+                       DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx, 0, ret);
 
                        drm_connector_list_iter_begin(dev, &iter);
                        drm_for_each_connector_iter(connector, &iter)
                                drm_helper_connector_dpms(connector,
                                                          DRM_MODE_DPMS_ON);
                        drm_connector_list_iter_end(&iter);
-
-                       drm_modeset_unlock_all(dev);
+                       DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);
                }
                amdgpu_fbdev_set_suspend(adev, 0);
        }
-- 
2.31.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to