Explorar o código

Merge branch 'drm-intel-fixes' into drm-intel-next

Keith Packard %!s(int64=14) %!d(string=hai) anos
pai
achega
93dbb29b47
Modificáronse 1 ficheiros con 5 adicións e 0 borrados
  1. 5 0
      drivers/gpu/drm/i915/i915_suspend.c

+ 5 - 0
drivers/gpu/drm/i915/i915_suspend.c

@@ -678,6 +678,7 @@ void i915_save_display(struct drm_device *dev)
 	}
 	}
 
 
 	/* VGA state */
 	/* VGA state */
+	mutex_lock(&dev->struct_mutex);
 	dev_priv->saveVGA0 = I915_READ(VGA0);
 	dev_priv->saveVGA0 = I915_READ(VGA0);
 	dev_priv->saveVGA1 = I915_READ(VGA1);
 	dev_priv->saveVGA1 = I915_READ(VGA1);
 	dev_priv->saveVGA_PD = I915_READ(VGA_PD);
 	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);
 		dev_priv->saveVGACNTRL = I915_READ(VGACNTRL);
 
 
 	i915_save_vga(dev);
 	i915_save_vga(dev);
+	mutex_unlock(&dev->struct_mutex);
 }
 }
 
 
 void i915_restore_display(struct drm_device *dev)
 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);
 		I915_WRITE(CPU_VGACNTRL, dev_priv->saveVGACNTRL);
 	else
 	else
 		I915_WRITE(VGACNTRL, dev_priv->saveVGACNTRL);
 		I915_WRITE(VGACNTRL, dev_priv->saveVGACNTRL);
+
+	mutex_lock(&dev->struct_mutex);
 	I915_WRITE(VGA0, dev_priv->saveVGA0);
 	I915_WRITE(VGA0, dev_priv->saveVGA0);
 	I915_WRITE(VGA1, dev_priv->saveVGA1);
 	I915_WRITE(VGA1, dev_priv->saveVGA1);
 	I915_WRITE(VGA_PD, dev_priv->saveVGA_PD);
 	I915_WRITE(VGA_PD, dev_priv->saveVGA_PD);
@@ -787,6 +791,7 @@ void i915_restore_display(struct drm_device *dev)
 	udelay(150);
 	udelay(150);
 
 
 	i915_restore_vga(dev);
 	i915_restore_vga(dev);
+	mutex_unlock(&dev->struct_mutex);
 }
 }
 
 
 int i915_save_state(struct drm_device *dev)
 int i915_save_state(struct drm_device *dev)