Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff -rupN a/drivers/gpu/drm/i915/i915_dma.c c/drivers/gpu/drm/i915/i915_dma.c
- --- a/drivers/gpu/drm/i915/i915_dma.c 2014-06-08 20:19:54.000000000 +0200
- +++ c/drivers/gpu/drm/i915/i915_dma.c 2014-07-19 18:16:38.091226909 +0200
- @@ -1369,6 +1369,12 @@ static int i915_load_modeset_init(struct
- */
- 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;
- diff -rupN a/drivers/gpu/drm/i915/intel_display.c c/drivers/gpu/drm/i915/intel_display.c
- --- a/drivers/gpu/drm/i915/intel_display.c 2014-06-08 20:19:54.000000000 +0200
- +++ c/drivers/gpu/drm/i915/intel_display.c 2014-07-19 18:13:17.821240737 +0200
- @@ -11279,6 +11279,33 @@ static void i915_disable_vga(struct drm_
- POSTING_READ(vga_reg);
- }
- +static void i915_enable_vga_mem(struct drm_device *dev)
- +{
- + /* Enable 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_LEGACY_MEM |
- + VGA_RSRC_NORMAL_IO |
- + VGA_RSRC_NORMAL_MEM);
- + vga_put(dev->pdev, VGA_RSRC_LEGACY_IO);
- + }
- +}
- +
- +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_prepare_ddi(dev);
- @@ -11591,6 +11618,7 @@ void i915_redisable_vga_power_on(struct
- 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);
- }
- }
- @@ -11845,6 +11873,8 @@ void intel_modeset_cleanup(struct drm_de
- intel_disable_fbc(dev);
- + i915_enable_vga_mem(dev);
- +
- intel_disable_gt_powersave(dev);
- ironlake_teardown_rc6(dev);
- diff -rupN a/drivers/gpu/drm/i915/intel_drv.h c/drivers/gpu/drm/i915/intel_drv.h
- --- a/drivers/gpu/drm/i915/intel_drv.h 2014-06-08 20:19:54.000000000 +0200
- +++ c/drivers/gpu/drm/i915/intel_drv.h 2014-07-19 18:13:17.821240737 +0200
- @@ -913,7 +913,7 @@ void intel_runtime_pm_put(struct drm_i91
- void intel_init_runtime_pm(struct drm_i915_private *dev_priv);
- void intel_fini_runtime_pm(struct drm_i915_private *dev_priv);
- void ilk_wm_get_hw_state(struct drm_device *dev);
- -
- +extern void i915_disable_vga_mem(struct drm_device *dev);
- /* intel_sdvo.c */
- bool intel_sdvo_init(struct drm_device *dev, uint32_t sdvo_reg, bool is_sdvob);
- diff -rupN a/include/linux/vgaarb.h c/include/linux/vgaarb.h
- --- a/include/linux/vgaarb.h 2014-06-08 20:19:54.000000000 +0200
- +++ c/include/linux/vgaarb.h 2014-07-19 18:13:50.224566563 +0200
- @@ -65,8 +65,15 @@ struct pci_dev;
- * out of the arbitration process (and can be safe to take
- * interrupts at any time.
- */
- +#if defined(CONFIG_VGA_ARB)
- extern void vga_set_legacy_decoding(struct pci_dev *pdev,
- unsigned int decodes);
- +#else
- +static inline void vga_set_legacy_decoding(struct pci_dev *pdev,
- + unsigned int decodes)
- +{
- +}
- +#endif
- /**
- * vga_get - acquire & locks VGA resources
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement