|
@@ -10040,15 +10040,6 @@ static void i915_disable_vga(struct drm_device *dev)
|
|
|
outb(SR01, VGA_SR_INDEX);
|
|
|
sr1 = inb(VGA_SR_DATA);
|
|
|
outb(sr1 | 1<<5, VGA_SR_DATA);
|
|
|
-
|
|
|
- /* Disable VGA memory on Intel HD */
|
|
|
- if (HAS_PCH_SPLIT(dev)) {
|
|
|
- outb(inb(VGA_MSR_READ) & ~VGA_MSR_MEM_EN, VGA_MSR_WRITE);
|
|
|
- vga_set_legacy_decoding(dev->pdev, VGA_RSRC_LEGACY_IO |
|
|
|
- VGA_RSRC_NORMAL_IO |
|
|
|
- VGA_RSRC_NORMAL_MEM);
|
|
|
- }
|
|
|
-
|
|
|
vga_put(dev->pdev, VGA_RSRC_LEGACY_IO);
|
|
|
udelay(300);
|
|
|
|
|
@@ -10056,7 +10047,7 @@ static void i915_disable_vga(struct drm_device *dev)
|
|
|
POSTING_READ(vga_reg);
|
|
|
}
|
|
|
|
|
|
-static void i915_enable_vga(struct drm_device *dev)
|
|
|
+static void i915_enable_vga_mem(struct drm_device *dev)
|
|
|
{
|
|
|
/* Enable VGA memory on Intel HD */
|
|
|
if (HAS_PCH_SPLIT(dev)) {
|
|
@@ -10070,6 +10061,19 @@ static void i915_enable_vga(struct drm_device *dev)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+void i915_disable_vga_mem(struct drm_device *dev)
|
|
|
+{
|
|
|
+ /* Disable VGA memory on Intel HD */
|
|
|
+ if (HAS_PCH_SPLIT(dev)) {
|
|
|
+ vga_get_uninterruptible(dev->pdev, VGA_RSRC_LEGACY_IO);
|
|
|
+ outb(inb(VGA_MSR_READ) & ~VGA_MSR_MEM_EN, VGA_MSR_WRITE);
|
|
|
+ vga_set_legacy_decoding(dev->pdev, VGA_RSRC_LEGACY_IO |
|
|
|
+ VGA_RSRC_NORMAL_IO |
|
|
|
+ VGA_RSRC_NORMAL_MEM);
|
|
|
+ vga_put(dev->pdev, VGA_RSRC_LEGACY_IO);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
void intel_modeset_init_hw(struct drm_device *dev)
|
|
|
{
|
|
|
intel_init_power_well(dev);
|
|
@@ -10348,6 +10352,7 @@ void i915_redisable_vga(struct drm_device *dev)
|
|
|
if (I915_READ(vga_reg) != VGA_DISP_DISABLE) {
|
|
|
DRM_DEBUG_KMS("Something enabled VGA plane, disabling it\n");
|
|
|
i915_disable_vga(dev);
|
|
|
+ i915_disable_vga_mem(dev);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -10561,7 +10566,7 @@ void intel_modeset_cleanup(struct drm_device *dev)
|
|
|
|
|
|
intel_disable_fbc(dev);
|
|
|
|
|
|
- i915_enable_vga(dev);
|
|
|
+ i915_enable_vga_mem(dev);
|
|
|
|
|
|
intel_disable_gt_powersave(dev);
|
|
|
|