Skip to content

Commit

Permalink
Revert "drm/i915: Delay disabling of VGA memory until vgacon->fbcon h…
Browse files Browse the repository at this point in the history
…andoff is done"

This reverts commit 6e1b4fd.

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>
  • Loading branch information
Dave Airlie committed Oct 11, 2013
1 parent 2302628 commit e1264eb
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 23 deletions.
6 changes: 0 additions & 6 deletions drivers/gpu/drm/i915/i915_dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -1351,12 +1351,6 @@ static int i915_load_modeset_init(struct drm_device *dev)
*/
intel_fbdev_initial_config(dev);

/*
* Must do this after fbcon init so that
* vgacon_save_screen() works during the handover.
*/
i915_disable_vga_mem(dev);

/* Only enable hotplug handling once the fbdev is fully set up. */
dev_priv->enable_hotplug_processing = true;

Expand Down
27 changes: 11 additions & 16 deletions drivers/gpu/drm/i915/intel_display.c
Original file line number Diff line number Diff line change
Expand Up @@ -10038,14 +10038,23 @@ 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);

I915_WRITE(vga_reg, VGA_DISP_DISABLE);
POSTING_READ(vga_reg);
}

static void i915_enable_vga_mem(struct drm_device *dev)
static void i915_enable_vga(struct drm_device *dev)
{
/* Enable VGA memory on Intel HD */
if (HAS_PCH_SPLIT(dev)) {
Expand All @@ -10059,19 +10068,6 @@ static void i915_enable_vga_mem(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);
Expand Down Expand Up @@ -10350,7 +10346,6 @@ 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);
}
}

Expand Down Expand Up @@ -10564,7 +10559,7 @@ void intel_modeset_cleanup(struct drm_device *dev)

intel_disable_fbc(dev);

i915_enable_vga_mem(dev);
i915_enable_vga(dev);

intel_disable_gt_powersave(dev);

Expand Down
1 change: 0 additions & 1 deletion drivers/gpu/drm/i915/intel_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -793,6 +793,5 @@ extern void hsw_pc8_disable_interrupts(struct drm_device *dev);
extern void hsw_pc8_restore_interrupts(struct drm_device *dev);
extern void intel_aux_display_runtime_get(struct drm_i915_private *dev_priv);
extern void intel_aux_display_runtime_put(struct drm_i915_private *dev_priv);
extern void i915_disable_vga_mem(struct drm_device *dev);

#endif /* __INTEL_DRV_H__ */

0 comments on commit e1264eb

Please sign in to comment.