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

Commit 483f1798 authored by Ben Widawsky's avatar Ben Widawsky Committed by Keith Packard
Browse files

drm/i915: save/resume forcewake lock fixes



The lock must be held for the saving and restoring of VGA state.

Signed-off-by: default avatarBen Widawsky <ben@bwidawsk.net>
CC: Alexander Zhaunerchyk <alex.vizor@gmail.com>
CC: Andrey Rahmatullin <wrar@wrar.name>
Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: default avatarKeith Packard <keithp@keithp.com>
parent e92d03bf
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -678,6 +678,7 @@ void i915_save_display(struct drm_device *dev)
	}

	/* VGA state */
	mutex_lock(&dev->struct_mutex);
	dev_priv->saveVGA0 = I915_READ(VGA0);
	dev_priv->saveVGA1 = I915_READ(VGA1);
	dev_priv->saveVGA_PD = I915_READ(VGA_PD);
@@ -687,6 +688,7 @@ void i915_save_display(struct drm_device *dev)
		dev_priv->saveVGACNTRL = I915_READ(VGACNTRL);

	i915_save_vga(dev);
	mutex_unlock(&dev->struct_mutex);
}

void i915_restore_display(struct drm_device *dev)
@@ -780,6 +782,8 @@ void i915_restore_display(struct drm_device *dev)
		I915_WRITE(CPU_VGACNTRL, dev_priv->saveVGACNTRL);
	else
		I915_WRITE(VGACNTRL, dev_priv->saveVGACNTRL);

	mutex_lock(&dev->struct_mutex);
	I915_WRITE(VGA0, dev_priv->saveVGA0);
	I915_WRITE(VGA1, dev_priv->saveVGA1);
	I915_WRITE(VGA_PD, dev_priv->saveVGA_PD);
@@ -787,6 +791,7 @@ void i915_restore_display(struct drm_device *dev)
	udelay(150);

	i915_restore_vga(dev);
	mutex_unlock(&dev->struct_mutex);
}

int i915_save_state(struct drm_device *dev)