Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 91c8a326 authored by Chris Wilson's avatar Chris Wilson
Browse files

drm/i915: Convert dev_priv->dev backpointers to dev_priv->drm



Since drm_i915_private is now a subclass of drm_device we do not need to
chase the drm_i915_private->dev backpointer and can instead simply
access drm_i915_private->drm directly.

   text	   data	    bss	    dec	    hex	filename
1068757	   4565	    416	1073738	 10624a	drivers/gpu/drm/i915/i915.ko
1066949	   4565	    416	1071930	 105b3a	drivers/gpu/drm/i915/i915.ko

Created by the coccinelle script:
@@
struct drm_i915_private *d;
identifier i;
@@
(
- d->dev->i
+ d->drm.i
|
- d->dev
+ &d->drm
)

and for good measure the dev_priv->dev backpointer was removed entirely.

Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1467711623-2905-4-git-send-email-chris@chris-wilson.co.uk
parent ded8b07d
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -440,15 +440,15 @@ static void print_context_stats(struct seq_file *m,

	memset(&stats, 0, sizeof(stats));

	mutex_lock(&dev_priv->dev->struct_mutex);
	mutex_lock(&dev_priv->drm.struct_mutex);
	if (dev_priv->kernel_context)
		per_file_ctx_stats(0, dev_priv->kernel_context, &stats);

	list_for_each_entry(file, &dev_priv->dev->filelist, lhead) {
	list_for_each_entry(file, &dev_priv->drm.filelist, lhead) {
		struct drm_i915_file_private *fpriv = file->driver_priv;
		idr_for_each(&fpriv->context_idr, per_file_ctx_stats, &stats);
	}
	mutex_unlock(&dev_priv->dev->struct_mutex);
	mutex_unlock(&dev_priv->drm.struct_mutex);

	print_file_stats(m, "[k]contexts", stats);
}
@@ -2797,8 +2797,8 @@ static int i915_runtime_pm_status(struct seq_file *m, void *unused)
	seq_printf(m, "Device Power Management (CONFIG_PM) disabled\n");
#endif
	seq_printf(m, "PCI device power state: %s [%d]\n",
		   pci_power_name(dev_priv->dev->pdev->current_state),
		   dev_priv->dev->pdev->current_state);
		   pci_power_name(dev_priv->drm.pdev->current_state),
		   dev_priv->drm.pdev->current_state);

	return 0;
}
@@ -5098,7 +5098,7 @@ i915_cache_sharing_get(void *data, u64 *val)
	snpcr = I915_READ(GEN6_MBCUNIT_SNPCR);

	intel_runtime_pm_put(dev_priv);
	mutex_unlock(&dev_priv->dev->struct_mutex);
	mutex_unlock(&dev_priv->drm.struct_mutex);

	*val = (snpcr & GEN6_MBC_SNPCR_MASK) >> GEN6_MBC_SNPCR_SHIFT;

@@ -5483,7 +5483,7 @@ void intel_display_crc_init(struct drm_device *dev)

int i915_debugfs_register(struct drm_i915_private *dev_priv)
{
	struct drm_minor *minor = dev_priv->dev->primary;
	struct drm_minor *minor = dev_priv->drm.primary;
	int ret, i;

	ret = i915_forcewake_create(minor->debugfs_root, minor);
@@ -5511,7 +5511,7 @@ int i915_debugfs_register(struct drm_i915_private *dev_priv)

void i915_debugfs_unregister(struct drm_i915_private *dev_priv)
{
	struct drm_minor *minor = dev_priv->dev->primary;
	struct drm_minor *minor = dev_priv->drm.primary;
	int i;

	drm_debugfs_remove_files(i915_debugfs_list,
+19 −20
Original line number Diff line number Diff line
@@ -687,7 +687,7 @@ static int i915_load_modeset_init(struct drm_device *dev)
static int i915_kick_out_firmware_fb(struct drm_i915_private *dev_priv)
{
	struct apertures_struct *ap;
	struct pci_dev *pdev = dev_priv->dev->pdev;
	struct pci_dev *pdev = dev_priv->drm.pdev;
	struct i915_ggtt *ggtt = &dev_priv->ggtt;
	bool primary;
	int ret;
@@ -889,7 +889,7 @@ static int i915_driver_init_early(struct drm_i915_private *dev_priv,
 */
static void i915_driver_cleanup_early(struct drm_i915_private *dev_priv)
{
	i915_gem_load_cleanup(dev_priv->dev);
	i915_gem_load_cleanup(&dev_priv->drm);
	i915_workqueues_cleanup(dev_priv);
}

@@ -944,7 +944,7 @@ static void i915_mmio_cleanup(struct drm_device *dev)
 */
static int i915_driver_init_mmio(struct drm_i915_private *dev_priv)
{
	struct drm_device *dev = dev_priv->dev;
	struct drm_device *dev = &dev_priv->drm;
	int ret;

	if (i915_inject_load_failure())
@@ -973,7 +973,7 @@ static int i915_driver_init_mmio(struct drm_i915_private *dev_priv)
 */
static void i915_driver_cleanup_mmio(struct drm_i915_private *dev_priv)
{
	struct drm_device *dev = dev_priv->dev;
	struct drm_device *dev = &dev_priv->drm;

	intel_uncore_fini(dev_priv);
	i915_mmio_cleanup(dev);
@@ -1006,7 +1006,7 @@ static void intel_sanitize_options(struct drm_i915_private *dev_priv)
 */
static int i915_driver_init_hw(struct drm_i915_private *dev_priv)
{
	struct drm_device *dev = dev_priv->dev;
	struct drm_device *dev = &dev_priv->drm;
	struct i915_ggtt *ggtt = &dev_priv->ggtt;
	uint32_t aperture_size;
	int ret;
@@ -1125,7 +1125,7 @@ static int i915_driver_init_hw(struct drm_i915_private *dev_priv)
 */
static void i915_driver_cleanup_hw(struct drm_i915_private *dev_priv)
{
	struct drm_device *dev = dev_priv->dev;
	struct drm_device *dev = &dev_priv->drm;
	struct i915_ggtt *ggtt = &dev_priv->ggtt;

	if (dev->pdev->msi_enabled)
@@ -1146,7 +1146,7 @@ static void i915_driver_cleanup_hw(struct drm_i915_private *dev_priv)
 */
static void i915_driver_register(struct drm_i915_private *dev_priv)
{
	struct drm_device *dev = dev_priv->dev;
	struct drm_device *dev = &dev_priv->drm;

	i915_gem_shrinker_init(dev_priv);

@@ -1197,9 +1197,9 @@ static void i915_driver_unregister(struct drm_i915_private *dev_priv)
	acpi_video_unregister();
	intel_opregion_unregister(dev_priv);

	i915_teardown_sysfs(dev_priv->dev);
	i915_teardown_sysfs(&dev_priv->drm);
	i915_debugfs_unregister(dev_priv);
	drm_dev_unregister(dev_priv->dev);
	drm_dev_unregister(&dev_priv->drm);

	i915_gem_shrinker_cleanup(dev_priv);
}
@@ -1236,7 +1236,6 @@ int i915_driver_load(struct pci_dev *pdev, const struct pci_device_id *ent)

	dev_priv->drm.pdev = pdev;
	dev_priv->drm.dev_private = dev_priv;
	dev_priv->dev = &dev_priv->drm;

	ret = pci_enable_device(pdev);
	if (ret)
@@ -1264,13 +1263,13 @@ int i915_driver_load(struct pci_dev *pdev, const struct pci_device_id *ent)
	 * to the role/effect of the given init step.
	 */
	if (INTEL_INFO(dev_priv)->num_pipes) {
		ret = drm_vblank_init(dev_priv->dev,
		ret = drm_vblank_init(&dev_priv->drm,
				      INTEL_INFO(dev_priv)->num_pipes);
		if (ret)
			goto out_cleanup_hw;
	}

	ret = i915_load_modeset_init(dev_priv->dev);
	ret = i915_load_modeset_init(&dev_priv->drm);
	if (ret < 0)
		goto out_cleanup_vblank;

@@ -1283,7 +1282,7 @@ int i915_driver_load(struct pci_dev *pdev, const struct pci_device_id *ent)
	return 0;

out_cleanup_vblank:
	drm_vblank_cleanup(dev_priv->dev);
	drm_vblank_cleanup(&dev_priv->drm);
out_cleanup_hw:
	i915_driver_cleanup_hw(dev_priv);
out_cleanup_mmio:
@@ -1402,7 +1401,7 @@ static void i915_driver_postclose(struct drm_device *dev, struct drm_file *file)

static void intel_suspend_encoders(struct drm_i915_private *dev_priv)
{
	struct drm_device *dev = dev_priv->dev;
	struct drm_device *dev = &dev_priv->drm;
	struct intel_encoder *encoder;

	drm_modeset_lock_all(dev);
@@ -1770,7 +1769,7 @@ int i915_resume_switcheroo(struct drm_device *dev)
 */
int i915_reset(struct drm_i915_private *dev_priv)
{
	struct drm_device *dev = dev_priv->dev;
	struct drm_device *dev = &dev_priv->drm;
	struct i915_gpu_error *error = &dev_priv->gpu_error;
	unsigned reset_counter;
	int ret;
@@ -1861,7 +1860,7 @@ static int i915_pm_suspend(struct device *dev)

static int i915_pm_suspend_late(struct device *dev)
{
	struct drm_device *drm_dev = dev_to_i915(dev)->dev;
	struct drm_device *drm_dev = &dev_to_i915(dev)->drm;

	/*
	 * We have a suspend ordering issue with the snd-hda driver also
@@ -1880,7 +1879,7 @@ static int i915_pm_suspend_late(struct device *dev)

static int i915_pm_poweroff_late(struct device *dev)
{
	struct drm_device *drm_dev = dev_to_i915(dev)->dev;
	struct drm_device *drm_dev = &dev_to_i915(dev)->drm;

	if (drm_dev->switch_power_state == DRM_SWITCH_POWER_OFF)
		return 0;
@@ -1890,7 +1889,7 @@ static int i915_pm_poweroff_late(struct device *dev)

static int i915_pm_resume_early(struct device *dev)
{
	struct drm_device *drm_dev = dev_to_i915(dev)->dev;
	struct drm_device *drm_dev = &dev_to_i915(dev)->drm;

	if (drm_dev->switch_power_state == DRM_SWITCH_POWER_OFF)
		return 0;
@@ -1900,7 +1899,7 @@ static int i915_pm_resume_early(struct device *dev)

static int i915_pm_resume(struct device *dev)
{
	struct drm_device *drm_dev = dev_to_i915(dev)->dev;
	struct drm_device *drm_dev = &dev_to_i915(dev)->drm;

	if (drm_dev->switch_power_state == DRM_SWITCH_POWER_OFF)
		return 0;
@@ -2278,7 +2277,7 @@ static int vlv_suspend_complete(struct drm_i915_private *dev_priv)
static int vlv_resume_prepare(struct drm_i915_private *dev_priv,
				bool rpm_resume)
{
	struct drm_device *dev = dev_priv->dev;
	struct drm_device *dev = &dev_priv->drm;
	int err;
	int ret;

+13 −9
Original line number Diff line number Diff line
@@ -320,15 +320,16 @@ struct i915_hotplug {
		for_each_if ((__ports_mask) & (1 << (__port)))

#define for_each_crtc(dev, crtc) \
	list_for_each_entry(crtc, &dev->mode_config.crtc_list, head)
	list_for_each_entry(crtc, &(dev)->mode_config.crtc_list, head)

#define for_each_intel_plane(dev, intel_plane) \
	list_for_each_entry(intel_plane,			\
			    &dev->mode_config.plane_list,	\
			    &(dev)->mode_config.plane_list,	\
			    base.head)

#define for_each_intel_plane_mask(dev, intel_plane, plane_mask)		\
	list_for_each_entry(intel_plane, &dev->mode_config.plane_list,	\
	list_for_each_entry(intel_plane,				\
			    &(dev)->mode_config.plane_list,		\
			    base.head)					\
		for_each_if ((plane_mask) &				\
			     (1 << drm_plane_index(&intel_plane->base)))
@@ -340,10 +341,14 @@ struct i915_hotplug {
		for_each_if ((intel_plane)->pipe == (intel_crtc)->pipe)

#define for_each_intel_crtc(dev, intel_crtc)				\
	list_for_each_entry(intel_crtc, &dev->mode_config.crtc_list, base.head)
	list_for_each_entry(intel_crtc,					\
			    &(dev)->mode_config.crtc_list,		\
			    base.head)

#define for_each_intel_crtc_mask(dev, intel_crtc, crtc_mask)		\
	list_for_each_entry(intel_crtc, &dev->mode_config.crtc_list, base.head) \
	list_for_each_entry(intel_crtc,					\
			    &(dev)->mode_config.crtc_list,		\
			    base.head)					\
		for_each_if ((crtc_mask) & (1 << drm_crtc_index(&intel_crtc->base)))

#define for_each_intel_encoder(dev, intel_encoder)		\
@@ -353,7 +358,7 @@ struct i915_hotplug {

#define for_each_intel_connector(dev, intel_connector)		\
	list_for_each_entry(intel_connector,			\
			    &dev->mode_config.connector_list,	\
			    &(dev)->mode_config.connector_list,	\
			    base.head)

#define for_each_encoder_on_crtc(dev, __crtc, intel_encoder) \
@@ -1718,7 +1723,6 @@ struct intel_wm_config {
struct drm_i915_private {
	struct drm_device drm;

	struct drm_device *dev;
	struct kmem_cache *objects;
	struct kmem_cache *vmas;
	struct kmem_cache *requests;
+7 −7
Original line number Diff line number Diff line
@@ -1651,7 +1651,7 @@ __i915_gem_request_retire__upto(struct drm_i915_gem_request *req)
	struct intel_engine_cs *engine = req->engine;
	struct drm_i915_gem_request *tmp;

	lockdep_assert_held(&engine->i915->dev->struct_mutex);
	lockdep_assert_held(&engine->i915->drm.struct_mutex);

	if (list_empty(&req->list))
		return;
@@ -1680,7 +1680,7 @@ i915_wait_request(struct drm_i915_gem_request *req)

	interruptible = dev_priv->mm.interruptible;

	BUG_ON(!mutex_is_locked(&dev_priv->dev->struct_mutex));
	BUG_ON(!mutex_is_locked(&dev_priv->drm.struct_mutex));

	ret = __i915_wait_request(req, interruptible, NULL, NULL);
	if (ret)
@@ -3254,7 +3254,7 @@ void i915_gem_retire_requests(struct drm_i915_private *dev_priv)
{
	struct intel_engine_cs *engine;

	lockdep_assert_held(&dev_priv->dev->struct_mutex);
	lockdep_assert_held(&dev_priv->drm.struct_mutex);

	if (dev_priv->gt.active_engines == 0)
		return;
@@ -3278,7 +3278,7 @@ i915_gem_retire_work_handler(struct work_struct *work)
{
	struct drm_i915_private *dev_priv =
		container_of(work, typeof(*dev_priv), gt.retire_work.work);
	struct drm_device *dev = dev_priv->dev;
	struct drm_device *dev = &dev_priv->drm;

	/* Come back later if the device is busy... */
	if (mutex_trylock(&dev->struct_mutex)) {
@@ -3301,7 +3301,7 @@ i915_gem_idle_work_handler(struct work_struct *work)
{
	struct drm_i915_private *dev_priv =
		container_of(work, typeof(*dev_priv), gt.idle_work.work);
	struct drm_device *dev = dev_priv->dev;
	struct drm_device *dev = &dev_priv->drm;
	struct intel_engine_cs *engine;
	unsigned int stuck_engines;
	bool rearm_hangcheck;
@@ -3713,7 +3713,7 @@ int i915_gem_wait_for_idle(struct drm_i915_private *dev_priv)
	struct intel_engine_cs *engine;
	int ret;

	lockdep_assert_held(&dev_priv->dev->struct_mutex);
	lockdep_assert_held(&dev_priv->drm.struct_mutex);

	for_each_engine(engine, dev_priv) {
		if (engine->last_context == NULL)
@@ -5252,7 +5252,7 @@ init_engine_lists(struct intel_engine_cs *engine)
void
i915_gem_load_init_fences(struct drm_i915_private *dev_priv)
{
	struct drm_device *dev = dev_priv->dev;
	struct drm_device *dev = &dev_priv->drm;

	if (INTEL_INFO(dev_priv)->gen >= 7 && !IS_VALLEYVIEW(dev_priv) &&
	    !IS_CHERRYVIEW(dev_priv))
+3 −3
Original line number Diff line number Diff line
@@ -154,7 +154,7 @@ void i915_gem_context_free(struct kref *ctx_ref)
	struct i915_gem_context *ctx = container_of(ctx_ref, typeof(*ctx), ref);
	int i;

	lockdep_assert_held(&ctx->i915->dev->struct_mutex);
	lockdep_assert_held(&ctx->i915->drm.struct_mutex);
	trace_i915_context_free(ctx);

	/*
@@ -465,7 +465,7 @@ void i915_gem_context_lost(struct drm_i915_private *dev_priv)
{
	struct intel_engine_cs *engine;

	lockdep_assert_held(&dev_priv->dev->struct_mutex);
	lockdep_assert_held(&dev_priv->drm.struct_mutex);

	for_each_engine(engine, dev_priv) {
		if (engine->last_context) {
@@ -895,7 +895,7 @@ int i915_switch_context(struct drm_i915_gem_request *req)
	struct intel_engine_cs *engine = req->engine;

	WARN_ON(i915.enable_execlists);
	lockdep_assert_held(&req->i915->dev->struct_mutex);
	lockdep_assert_held(&req->i915->drm.struct_mutex);

	if (!req->ctx->engine[engine->id].state) {
		struct i915_gem_context *to = req->ctx;
Loading