OSDN Git Service

drm/radeon: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN()
authorFernando Ramos <greenfoo@u92.eu>
Fri, 24 Sep 2021 06:43:15 +0000 (08:43 +0200)
committerSean Paul <seanpaul@chromium.org>
Fri, 1 Oct 2021 17:00:10 +0000 (13:00 -0400)
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 <greenfoo@u92.eu>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20210924064324.229457-9-greenfoo@u92.eu
drivers/gpu/drm/radeon/radeon_device.c
drivers/gpu/drm/radeon/radeon_dp_mst.c

index 4f0fbf6..7e31e5c 100644 (file)
@@ -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);
index ec867fa..3f83ee7 100644 (file)
@@ -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);