As requested in Documentation/gpu/todo.rst, replace driver calls to
drm_modeset_lock_all() with DRM_MODESET_LOCK_ALL_BEGIN() and
DRM_MODESET_LOCK_ALL_END()

Signed-off-by: Fernando Ramos <green...@u92.eu>
---
 drivers/gpu/drm/radeon/radeon_device.c | 21 +++++++++++++++------
 drivers/gpu/drm/radeon/radeon_dp_mst.c | 10 ++++++----
 2 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_device.c 
b/drivers/gpu/drm/radeon/radeon_device.c
index 4f0fbf667431..7e31e5ce7f61 100644
--- a/drivers/gpu/drm/radeon/radeon_device.c
+++ b/drivers/gpu/drm/radeon/radeon_device.c
@@ -37,6 +37,7 @@
 #include <drm/drm_cache.h>
 #include <drm/drm_crtc_helper.h>
 #include <drm/drm_device.h>
+#include <drm/drm_drv.h>
 #include <drm/drm_file.h>
 #include <drm/drm_probe_helper.h>
 #include <drm/radeon_drm.h>
@@ -1559,7 +1560,8 @@ int radeon_suspend_kms(struct drm_device *dev, bool 
suspend,
        struct pci_dev *pdev;
        struct drm_crtc *crtc;
        struct drm_connector *connector;
-       int i, r;
+       struct drm_modeset_acquire_ctx ctx;
+       int i, r, ret;
 
        if (dev == NULL || dev->dev_private == NULL) {
                return -ENODEV;
@@ -1573,12 +1575,15 @@ int radeon_suspend_kms(struct drm_device *dev, bool 
suspend,
 
        drm_kms_helper_poll_disable(dev);
 
-       drm_modeset_lock_all(dev);
+       DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx, 0, ret);
        /* turn off display hw */
        list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
                drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF);
        }
-       drm_modeset_unlock_all(dev);
+       DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);
+
+       if (ret)
+               return ret;
 
        /* unpin the front buffers and cursors */
        list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
@@ -1663,7 +1668,8 @@ int radeon_resume_kms(struct drm_device *dev, bool 
resume, bool fbcon)
        struct radeon_device *rdev = dev->dev_private;
        struct pci_dev *pdev = to_pci_dev(dev->dev);
        struct drm_crtc *crtc;
-       int r;
+       struct drm_modeset_acquire_ctx ctx;
+       int r, ret;
 
        if (dev->switch_power_state == DRM_SWITCH_POWER_OFF)
                return 0;
@@ -1741,11 +1747,14 @@ int radeon_resume_kms(struct drm_device *dev, bool 
resume, bool fbcon)
        if (fbcon) {
                drm_helper_resume_force_mode(dev);
                /* turn on display hw */
-               drm_modeset_lock_all(dev);
+               DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx, 0, ret);
                list_for_each_entry(connector, 
&dev->mode_config.connector_list, head) {
                        drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
                }
-               drm_modeset_unlock_all(dev);
+               DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);
+
+               if (ret)
+                       return ret;
        }
 
        drm_kms_helper_poll_enable(dev);
diff --git a/drivers/gpu/drm/radeon/radeon_dp_mst.c 
b/drivers/gpu/drm/radeon/radeon_dp_mst.c
index ec867fa880a4..3f83ee75b100 100644
--- a/drivers/gpu/drm/radeon/radeon_dp_mst.c
+++ b/drivers/gpu/drm/radeon/radeon_dp_mst.c
@@ -4,6 +4,7 @@
 #include <drm/drm_fb_helper.h>
 #include <drm/drm_file.h>
 #include <drm/drm_probe_helper.h>
+#include <drm/drm_drv.h>
 
 #include "atom.h"
 #include "ni_reg.h"
@@ -737,11 +738,12 @@ static int radeon_debugfs_mst_info_show(struct seq_file 
*m, void *unused)
        struct radeon_device *rdev = (struct radeon_device *)m->private;
        struct drm_device *dev = rdev->ddev;
        struct drm_connector *connector;
+       struct drm_modeset_acquire_ctx ctx;
        struct radeon_connector *radeon_connector;
        struct radeon_connector_atom_dig *dig_connector;
-       int i;
+       int i, ret;
 
-       drm_modeset_lock_all(dev);
+       DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx, 0, ret);
        list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
                if (connector->connector_type != DRM_MODE_CONNECTOR_DisplayPort)
                        continue;
@@ -759,8 +761,8 @@ static int radeon_debugfs_mst_info_show(struct seq_file *m, 
void *unused)
                                   radeon_connector->cur_stream_attribs[i].fe,
                                   
radeon_connector->cur_stream_attribs[i].slots);
        }
-       drm_modeset_unlock_all(dev);
-       return 0;
+       DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);
+       return ret;
 }
 
 DEFINE_SHOW_ATTRIBUTE(radeon_debugfs_mst_info);
-- 
2.33.0

Reply via email to