aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2013-10-11 01:11:52 -0400
committerDave Airlie <airlied@redhat.com>2013-10-11 01:19:10 -0400
commite1264ebe9ff48e1b3e1dd11805eec9f5b143ab7c (patch)
tree1bc0ecad91913306a35009434509d749c5d826ff /drivers/gpu
parent2302628550ad97ce3281124343816b141da22887 (diff)
Revert "drm/i915: Delay disabling of VGA memory until vgacon->fbcon handoff is done"
This reverts commit 6e1b4fdad5157bb9e88777d525704aba24389bee. This is part of a revert due to a userspace breakage, better explained in the revert of 1a1a4cbf4906a13c0c377f708df5d94168e7b582. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c6
-rw-r--r--drivers/gpu/drm/i915/intel_display.c27
-rw-r--r--drivers/gpu/drm/i915/intel_drv.h1
3 files changed, 11 insertions, 23 deletions
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index c27a21034a5e..52f5ad8037cc 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1351,12 +1351,6 @@ static int i915_load_modeset_init(struct drm_device *dev)
1351 */ 1351 */
1352 intel_fbdev_initial_config(dev); 1352 intel_fbdev_initial_config(dev);
1353 1353
1354 /*
1355 * Must do this after fbcon init so that
1356 * vgacon_save_screen() works during the handover.
1357 */
1358 i915_disable_vga_mem(dev);
1359
1360 /* Only enable hotplug handling once the fbdev is fully set up. */ 1354 /* Only enable hotplug handling once the fbdev is fully set up. */
1361 dev_priv->enable_hotplug_processing = true; 1355 dev_priv->enable_hotplug_processing = true;
1362 1356
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index c89abd33124f..aaea3ec811ed 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -10038,6 +10038,15 @@ static void i915_disable_vga(struct drm_device *dev)
10038 outb(SR01, VGA_SR_INDEX); 10038 outb(SR01, VGA_SR_INDEX);
10039 sr1 = inb(VGA_SR_DATA); 10039 sr1 = inb(VGA_SR_DATA);
10040 outb(sr1 | 1<<5, VGA_SR_DATA); 10040 outb(sr1 | 1<<5, VGA_SR_DATA);
10041
10042 /* Disable VGA memory on Intel HD */
10043 if (HAS_PCH_SPLIT(dev)) {
10044 outb(inb(VGA_MSR_READ) & ~VGA_MSR_MEM_EN, VGA_MSR_WRITE);
10045 vga_set_legacy_decoding(dev->pdev, VGA_RSRC_LEGACY_IO |
10046 VGA_RSRC_NORMAL_IO |
10047 VGA_RSRC_NORMAL_MEM);
10048 }
10049
10041 vga_put(dev->pdev, VGA_RSRC_LEGACY_IO); 10050 vga_put(dev->pdev, VGA_RSRC_LEGACY_IO);
10042 udelay(300); 10051 udelay(300);
10043 10052
@@ -10045,7 +10054,7 @@ static void i915_disable_vga(struct drm_device *dev)
10045 POSTING_READ(vga_reg); 10054 POSTING_READ(vga_reg);
10046} 10055}
10047 10056
10048static void i915_enable_vga_mem(struct drm_device *dev) 10057static void i915_enable_vga(struct drm_device *dev)
10049{ 10058{
10050 /* Enable VGA memory on Intel HD */ 10059 /* Enable VGA memory on Intel HD */
10051 if (HAS_PCH_SPLIT(dev)) { 10060 if (HAS_PCH_SPLIT(dev)) {
@@ -10059,19 +10068,6 @@ static void i915_enable_vga_mem(struct drm_device *dev)
10059 } 10068 }
10060} 10069}
10061 10070
10062void i915_disable_vga_mem(struct drm_device *dev)
10063{
10064 /* Disable VGA memory on Intel HD */
10065 if (HAS_PCH_SPLIT(dev)) {
10066 vga_get_uninterruptible(dev->pdev, VGA_RSRC_LEGACY_IO);
10067 outb(inb(VGA_MSR_READ) & ~VGA_MSR_MEM_EN, VGA_MSR_WRITE);
10068 vga_set_legacy_decoding(dev->pdev, VGA_RSRC_LEGACY_IO |
10069 VGA_RSRC_NORMAL_IO |
10070 VGA_RSRC_NORMAL_MEM);
10071 vga_put(dev->pdev, VGA_RSRC_LEGACY_IO);
10072 }
10073}
10074
10075void intel_modeset_init_hw(struct drm_device *dev) 10071void intel_modeset_init_hw(struct drm_device *dev)
10076{ 10072{
10077 intel_init_power_well(dev); 10073 intel_init_power_well(dev);
@@ -10350,7 +10346,6 @@ void i915_redisable_vga(struct drm_device *dev)
10350 if (I915_READ(vga_reg) != VGA_DISP_DISABLE) { 10346 if (I915_READ(vga_reg) != VGA_DISP_DISABLE) {
10351 DRM_DEBUG_KMS("Something enabled VGA plane, disabling it\n"); 10347 DRM_DEBUG_KMS("Something enabled VGA plane, disabling it\n");
10352 i915_disable_vga(dev); 10348 i915_disable_vga(dev);
10353 i915_disable_vga_mem(dev);
10354 } 10349 }
10355} 10350}
10356 10351
@@ -10564,7 +10559,7 @@ void intel_modeset_cleanup(struct drm_device *dev)
10564 10559
10565 intel_disable_fbc(dev); 10560 intel_disable_fbc(dev);
10566 10561
10567 i915_enable_vga_mem(dev); 10562 i915_enable_vga(dev);
10568 10563
10569 intel_disable_gt_powersave(dev); 10564 intel_disable_gt_powersave(dev);
10570 10565
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 28cae80495e2..9b7b68fd5d47 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -793,6 +793,5 @@ extern void hsw_pc8_disable_interrupts(struct drm_device *dev);
793extern void hsw_pc8_restore_interrupts(struct drm_device *dev); 793extern void hsw_pc8_restore_interrupts(struct drm_device *dev);
794extern void intel_aux_display_runtime_get(struct drm_i915_private *dev_priv); 794extern void intel_aux_display_runtime_get(struct drm_i915_private *dev_priv);
795extern void intel_aux_display_runtime_put(struct drm_i915_private *dev_priv); 795extern void intel_aux_display_runtime_put(struct drm_i915_private *dev_priv);
796extern void i915_disable_vga_mem(struct drm_device *dev);
797 796
798#endif /* __INTEL_DRV_H__ */ 797#endif /* __INTEL_DRV_H__ */