aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c9
-rw-r--r--drivers/gpu/drm/i915/intel_display.c25
-rw-r--r--include/linux/vgaarb.h7
3 files changed, 3 insertions, 38 deletions
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 52f5ad8037cc..d5c784d48671 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1290,12 +1290,9 @@ static int i915_load_modeset_init(struct drm_device *dev)
1290 * then we do not take part in VGA arbitration and the 1290 * then we do not take part in VGA arbitration and the
1291 * vga_client_register() fails with -ENODEV. 1291 * vga_client_register() fails with -ENODEV.
1292 */ 1292 */
1293 if (!HAS_PCH_SPLIT(dev)) { 1293 ret = vga_client_register(dev->pdev, dev, NULL, i915_vga_set_decode);
1294 ret = vga_client_register(dev->pdev, dev, NULL, 1294 if (ret && ret != -ENODEV)
1295 i915_vga_set_decode); 1295 goto out;
1296 if (ret && ret != -ENODEV)
1297 goto out;
1298 }
1299 1296
1300 intel_register_dsm_handler(); 1297 intel_register_dsm_handler();
1301 1298
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index aaea3ec811ed..581fb4b2f766 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -10038,15 +10038,6 @@ 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
10050 vga_put(dev->pdev, VGA_RSRC_LEGACY_IO); 10041 vga_put(dev->pdev, VGA_RSRC_LEGACY_IO);
10051 udelay(300); 10042 udelay(300);
10052 10043
@@ -10054,20 +10045,6 @@ static void i915_disable_vga(struct drm_device *dev)
10054 POSTING_READ(vga_reg); 10045 POSTING_READ(vga_reg);
10055} 10046}
10056 10047
10057static void i915_enable_vga(struct drm_device *dev)
10058{
10059 /* Enable VGA memory on Intel HD */
10060 if (HAS_PCH_SPLIT(dev)) {
10061 vga_get_uninterruptible(dev->pdev, VGA_RSRC_LEGACY_IO);
10062 outb(inb(VGA_MSR_READ) | VGA_MSR_MEM_EN, VGA_MSR_WRITE);
10063 vga_set_legacy_decoding(dev->pdev, VGA_RSRC_LEGACY_IO |
10064 VGA_RSRC_LEGACY_MEM |
10065 VGA_RSRC_NORMAL_IO |
10066 VGA_RSRC_NORMAL_MEM);
10067 vga_put(dev->pdev, VGA_RSRC_LEGACY_IO);
10068 }
10069}
10070
10071void intel_modeset_init_hw(struct drm_device *dev) 10048void intel_modeset_init_hw(struct drm_device *dev)
10072{ 10049{
10073 intel_init_power_well(dev); 10050 intel_init_power_well(dev);
@@ -10559,8 +10536,6 @@ void intel_modeset_cleanup(struct drm_device *dev)
10559 10536
10560 intel_disable_fbc(dev); 10537 intel_disable_fbc(dev);
10561 10538
10562 i915_enable_vga(dev);
10563
10564 intel_disable_gt_powersave(dev); 10539 intel_disable_gt_powersave(dev);
10565 10540
10566 ironlake_teardown_rc6(dev); 10541 ironlake_teardown_rc6(dev);
diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h
index 80cf8173a65b..2c02f3a8d2ba 100644
--- a/include/linux/vgaarb.h
+++ b/include/linux/vgaarb.h
@@ -65,15 +65,8 @@ struct pci_dev;
65 * out of the arbitration process (and can be safe to take 65 * out of the arbitration process (and can be safe to take
66 * interrupts at any time. 66 * interrupts at any time.
67 */ 67 */
68#if defined(CONFIG_VGA_ARB)
69extern void vga_set_legacy_decoding(struct pci_dev *pdev, 68extern void vga_set_legacy_decoding(struct pci_dev *pdev,
70 unsigned int decodes); 69 unsigned int decodes);
71#else
72static inline void vga_set_legacy_decoding(struct pci_dev *pdev,
73 unsigned int decodes)
74{
75}
76#endif
77 70
78/** 71/**
79 * vga_get - acquire & locks VGA resources 72 * vga_get - acquire & locks VGA resources