Commit 746826bc authored by Fernando Ramos's avatar Fernando Ramos Committed by Sean Paul
Browse files

drm/i915: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN()



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: default avatarFernando Ramos <greenfoo@u92.eu>
Signed-off-by: default avatarSean Paul <seanpaul@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20210924064324.229457-13-greenfoo@u92.eu
parent fd49ef52
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@

#include <drm/drm_edid.h>
#include <drm/i915_component.h>
#include <drm/drm_drv.h>

#include "i915_drv.h"
#include "intel_atomic.h"
@@ -1214,7 +1215,8 @@ static int i915_audio_component_bind(struct device *i915_kdev,
{
	struct i915_audio_component *acomp = data;
	struct drm_i915_private *dev_priv = kdev_to_i915(i915_kdev);
	int i;
	struct drm_modeset_acquire_ctx ctx;
	int i, ret;

	if (drm_WARN_ON(&dev_priv->drm, acomp->base.ops || acomp->base.dev))
		return -EEXIST;
@@ -1224,16 +1226,16 @@ static int i915_audio_component_bind(struct device *i915_kdev,
					 DL_FLAG_STATELESS)))
		return -ENOMEM;

	drm_modeset_lock_all(&dev_priv->drm);
	DRM_MODESET_LOCK_ALL_BEGIN((&dev_priv->drm), ctx, 0, ret);
	acomp->base.ops = &i915_audio_component_ops;
	acomp->base.dev = i915_kdev;
	BUILD_BUG_ON(MAX_PORTS != I915_MAX_PORTS);
	for (i = 0; i < ARRAY_SIZE(acomp->aud_sample_rate); i++)
		acomp->aud_sample_rate[i] = 0;
	dev_priv->audio_component = acomp;
	drm_modeset_unlock_all(&dev_priv->drm);
	DRM_MODESET_LOCK_ALL_END((&dev_priv->drm), ctx, ret);

	return 0;
	return ret;
}

static void i915_audio_component_unbind(struct device *i915_kdev,
@@ -1241,12 +1243,14 @@ static void i915_audio_component_unbind(struct device *i915_kdev,
{
	struct i915_audio_component *acomp = data;
	struct drm_i915_private *dev_priv = kdev_to_i915(i915_kdev);
	struct drm_modeset_acquire_ctx ctx;
	int ret;

	drm_modeset_lock_all(&dev_priv->drm);
	DRM_MODESET_LOCK_ALL_BEGIN((&dev_priv->drm), ctx, 0, ret);
	acomp->base.ops = NULL;
	acomp->base.dev = NULL;
	dev_priv->audio_component = NULL;
	drm_modeset_unlock_all(&dev_priv->drm);
	DRM_MODESET_LOCK_ALL_END((&dev_priv->drm), ctx, ret);

	device_link_remove(hda_kdev, i915_kdev);

+3 −2
Original line number Diff line number Diff line
@@ -12512,6 +12512,7 @@ int intel_modeset_init_noirq(struct drm_i915_private *i915)
int intel_modeset_init_nogem(struct drm_i915_private *i915)
{
	struct drm_device *dev = &i915->drm;
	struct drm_modeset_acquire_ctx ctx;
	enum pipe pipe;
	struct intel_crtc *crtc;
	int ret;
@@ -12563,9 +12564,9 @@ int intel_modeset_init_nogem(struct drm_i915_private *i915)
	intel_vga_disable(i915);
	intel_setup_outputs(i915);

	drm_modeset_lock_all(dev);
	DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx, 0, ret);
	intel_modeset_setup_hw_state(dev, dev->mode_config.acquire_ctx);
	drm_modeset_unlock_all(dev);
	DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);

	for_each_intel_crtc(dev, crtc) {
		struct intel_initial_plane_config plane_config = {};
+30 −16
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@

#include <drm/drm_debugfs.h>
#include <drm/drm_fourcc.h>
#include <drm/drm_drv.h>

#include "i915_debugfs.h"
#include "intel_display_debugfs.h"
@@ -1057,11 +1058,13 @@ static int i915_display_info(struct seq_file *m, void *unused)
	struct intel_crtc *crtc;
	struct drm_connector *connector;
	struct drm_connector_list_iter conn_iter;
	struct drm_modeset_acquire_ctx ctx;
	intel_wakeref_t wakeref;
	int ret;

	wakeref = intel_runtime_pm_get(&dev_priv->runtime_pm);

	drm_modeset_lock_all(dev);
	DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx, 0, ret);

	seq_printf(m, "CRTC info\n");
	seq_printf(m, "---------\n");
@@ -1076,20 +1079,21 @@ static int i915_display_info(struct seq_file *m, void *unused)
		intel_connector_info(m, connector);
	drm_connector_list_iter_end(&conn_iter);

	drm_modeset_unlock_all(dev);
	DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);

	intel_runtime_pm_put(&dev_priv->runtime_pm, wakeref);

	return 0;
	return ret;
}

static int i915_shared_dplls_info(struct seq_file *m, void *unused)
{
	struct drm_i915_private *dev_priv = node_to_i915(m->private);
	struct drm_device *dev = &dev_priv->drm;
	int i;
	struct drm_modeset_acquire_ctx ctx;
	int i, ret;

	drm_modeset_lock_all(dev);
	DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx, 0, ret);

	seq_printf(m, "PLL refclks: non-SSC: %d kHz, SSC: %d kHz\n",
		   dev_priv->dpll.ref_clks.nssc,
@@ -1132,9 +1136,9 @@ static int i915_shared_dplls_info(struct seq_file *m, void *unused)
		seq_printf(m, " mg_pll_tdc_coldst_bias: 0x%08x\n",
			   pll->state.hw_state.mg_pll_tdc_coldst_bias);
	}
	drm_modeset_unlock_all(dev);
	DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);

	return 0;
	return ret;
}

static int i915_ipc_status_show(struct seq_file *m, void *data)
@@ -1193,13 +1197,15 @@ static int i915_ddb_info(struct seq_file *m, void *unused)
{
	struct drm_i915_private *dev_priv = node_to_i915(m->private);
	struct drm_device *dev = &dev_priv->drm;
	struct drm_modeset_acquire_ctx ctx;
	struct skl_ddb_entry *entry;
	struct intel_crtc *crtc;
	int ret;

	if (DISPLAY_VER(dev_priv) < 9)
		return -ENODEV;

	drm_modeset_lock_all(dev);
	DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx, 0, ret);

	seq_printf(m, "%-15s%8s%8s%8s\n", "", "Start", "End", "Size");

@@ -1223,9 +1229,9 @@ static int i915_ddb_info(struct seq_file *m, void *unused)
			   entry->end, skl_ddb_entry_size(entry));
	}

	drm_modeset_unlock_all(dev);
	DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);

	return 0;
	return ret;
}

static void drrs_status_per_crtc(struct seq_file *m,
@@ -1303,10 +1309,12 @@ static int i915_drrs_status(struct seq_file *m, void *unused)
{
	struct drm_i915_private *dev_priv = node_to_i915(m->private);
	struct drm_device *dev = &dev_priv->drm;
	struct drm_modeset_acquire_ctx ctx;
	struct intel_crtc *crtc;
	int active_crtc_cnt = 0;
	int ret;

	drm_modeset_lock_all(dev);
	DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx, 0, ret);
	for_each_intel_crtc(dev, crtc) {
		if (crtc->base.state->active) {
			active_crtc_cnt++;
@@ -1315,7 +1323,7 @@ static int i915_drrs_status(struct seq_file *m, void *unused)
			drrs_status_per_crtc(m, dev, crtc);
		}
	}
	drm_modeset_unlock_all(dev);
	DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);

	if (!active_crtc_cnt)
		seq_puts(m, "No active crtc found\n");
@@ -1607,8 +1615,10 @@ static void wm_latency_show(struct seq_file *m, const u16 wm[8])
{
	struct drm_i915_private *dev_priv = m->private;
	struct drm_device *dev = &dev_priv->drm;
	struct drm_modeset_acquire_ctx ctx;
	int level;
	int num_levels;
	int ret;

	if (IS_CHERRYVIEW(dev_priv))
		num_levels = 3;
@@ -1619,7 +1629,7 @@ static void wm_latency_show(struct seq_file *m, const u16 wm[8])
	else
		num_levels = ilk_wm_max_level(dev_priv) + 1;

	drm_modeset_lock_all(dev);
	DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx, 0, ret);

	for (level = 0; level < num_levels; level++) {
		unsigned int latency = wm[level];
@@ -1640,7 +1650,7 @@ static void wm_latency_show(struct seq_file *m, const u16 wm[8])
			   level, wm[level], latency / 10, latency % 10);
	}

	drm_modeset_unlock_all(dev);
	DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);
}

static int pri_wm_latency_show(struct seq_file *m, void *data)
@@ -1724,6 +1734,7 @@ static ssize_t wm_latency_write(struct file *file, const char __user *ubuf,
	struct seq_file *m = file->private_data;
	struct drm_i915_private *dev_priv = m->private;
	struct drm_device *dev = &dev_priv->drm;
	struct drm_modeset_acquire_ctx ctx;
	u16 new[8] = { 0 };
	int num_levels;
	int level;
@@ -1753,12 +1764,15 @@ static ssize_t wm_latency_write(struct file *file, const char __user *ubuf,
	if (ret != num_levels)
		return -EINVAL;

	drm_modeset_lock_all(dev);
	DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx, 0, ret);

	for (level = 0; level < num_levels; level++)
		wm[level] = new[level];

	drm_modeset_unlock_all(dev);
	DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);

	if (ret)
		return ret;

	return len;
}
+4 −2
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@
 */

#include <drm/drm_fourcc.h>
#include <drm/drm_drv.h>

#include "gem/i915_gem_pm.h"
#include "gt/intel_gpu_commands.h"
@@ -1263,6 +1264,7 @@ int intel_overlay_attrs_ioctl(struct drm_device *dev, void *data,
{
	struct drm_intel_overlay_attrs *attrs = data;
	struct drm_i915_private *dev_priv = to_i915(dev);
	struct drm_modeset_acquire_ctx ctx;
	struct intel_overlay *overlay;
	int ret;

@@ -1272,7 +1274,7 @@ int intel_overlay_attrs_ioctl(struct drm_device *dev, void *data,
		return -ENODEV;
	}

	drm_modeset_lock_all(dev);
	DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx, 0, ret);

	ret = -EINVAL;
	if (!(attrs->flags & I915_OVERLAY_UPDATE_ATTRS)) {
@@ -1329,7 +1331,7 @@ int intel_overlay_attrs_ioctl(struct drm_device *dev, void *data,

	ret = 0;
out_unlock:
	drm_modeset_unlock_all(dev);
	DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);

	return ret;
}
+5 −2
Original line number Diff line number Diff line
@@ -29,6 +29,8 @@
#include <linux/debugfs.h>
#include <linux/seq_file.h>

#include <drm/drm_drv.h>

#include "intel_atomic.h"
#include "intel_de.h"
#include "intel_display_types.h"
@@ -76,6 +78,7 @@ static int i9xx_pipe_crc_auto_source(struct drm_i915_private *dev_priv,
				     enum intel_pipe_crc_source *source)
{
	struct drm_device *dev = &dev_priv->drm;
	struct drm_modeset_acquire_ctx ctx;
	struct intel_encoder *encoder;
	struct intel_crtc *crtc;
	struct intel_digital_port *dig_port;
@@ -83,7 +86,7 @@ static int i9xx_pipe_crc_auto_source(struct drm_i915_private *dev_priv,

	*source = INTEL_PIPE_CRC_SOURCE_PIPE;

	drm_modeset_lock_all(dev);
	DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx, 0, ret);
	for_each_intel_encoder(dev, encoder) {
		if (!encoder->base.crtc)
			continue;
@@ -120,7 +123,7 @@ static int i9xx_pipe_crc_auto_source(struct drm_i915_private *dev_priv,
			break;
		}
	}
	drm_modeset_unlock_all(dev);
	DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);

	return ret;
}
Loading