Advertisement
Guest User

i915-vtd.patch

a guest
Jul 19th, 2014
249
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 3.59 KB | None | 0 0
  1. diff -rupN a/drivers/gpu/drm/i915/i915_dma.c c/drivers/gpu/drm/i915/i915_dma.c
  2. --- a/drivers/gpu/drm/i915/i915_dma.c   2014-06-08 20:19:54.000000000 +0200
  3. +++ c/drivers/gpu/drm/i915/i915_dma.c   2014-07-19 18:16:38.091226909 +0200
  4. @@ -1369,6 +1369,12 @@ static int i915_load_modeset_init(struct
  5.      */
  6.     intel_fbdev_initial_config(dev);
  7.  
  8. +   /*
  9. +    * Must do this after fbcon init so that
  10. +    * vgacon_save_screen() works during the handover.
  11. +    */
  12. +   i915_disable_vga_mem(dev);
  13. +
  14.     /* Only enable hotplug handling once the fbdev is fully set up. */
  15.     dev_priv->enable_hotplug_processing = true;
  16.  
  17. diff -rupN a/drivers/gpu/drm/i915/intel_display.c c/drivers/gpu/drm/i915/intel_display.c
  18. --- a/drivers/gpu/drm/i915/intel_display.c  2014-06-08 20:19:54.000000000 +0200
  19. +++ c/drivers/gpu/drm/i915/intel_display.c  2014-07-19 18:13:17.821240737 +0200
  20. @@ -11279,6 +11279,33 @@ static void i915_disable_vga(struct drm_
  21.     POSTING_READ(vga_reg);
  22.  }
  23.  
  24. +static void i915_enable_vga_mem(struct drm_device *dev)
  25. +{
  26. +   /* Enable VGA memory on Intel HD */
  27. +   if (HAS_PCH_SPLIT(dev)) {
  28. +       vga_get_uninterruptible(dev->pdev, VGA_RSRC_LEGACY_IO);
  29. +       outb(inb(VGA_MSR_READ) | VGA_MSR_MEM_EN, VGA_MSR_WRITE);
  30. +       vga_set_legacy_decoding(dev->pdev, VGA_RSRC_LEGACY_IO |
  31. +                          VGA_RSRC_LEGACY_MEM |
  32. +                          VGA_RSRC_NORMAL_IO |
  33. +                          VGA_RSRC_NORMAL_MEM);
  34. +       vga_put(dev->pdev, VGA_RSRC_LEGACY_IO);
  35. +   }
  36. +}
  37. +
  38. +void i915_disable_vga_mem(struct drm_device *dev)
  39. +{
  40. +   /* Disable VGA memory on Intel HD */
  41. +   if (HAS_PCH_SPLIT(dev)) {
  42. +       vga_get_uninterruptible(dev->pdev, VGA_RSRC_LEGACY_IO);
  43. +       outb(inb(VGA_MSR_READ) & ~VGA_MSR_MEM_EN, VGA_MSR_WRITE);
  44. +       vga_set_legacy_decoding(dev->pdev, VGA_RSRC_LEGACY_IO |
  45. +                          VGA_RSRC_NORMAL_IO |
  46. +                          VGA_RSRC_NORMAL_MEM);
  47. +       vga_put(dev->pdev, VGA_RSRC_LEGACY_IO);
  48. +   }
  49. +}
  50. +
  51.  void intel_modeset_init_hw(struct drm_device *dev)
  52.  {
  53.     intel_prepare_ddi(dev);
  54. @@ -11591,6 +11618,7 @@ void i915_redisable_vga_power_on(struct
  55.     if (!(I915_READ(vga_reg) & VGA_DISP_DISABLE)) {
  56.         DRM_DEBUG_KMS("Something enabled VGA plane, disabling it\n");
  57.         i915_disable_vga(dev);
  58. +       i915_disable_vga_mem(dev);
  59.     }
  60.  }
  61.  
  62. @@ -11845,6 +11873,8 @@ void intel_modeset_cleanup(struct drm_de
  63.  
  64.     intel_disable_fbc(dev);
  65.  
  66. +   i915_enable_vga_mem(dev);
  67. +
  68.     intel_disable_gt_powersave(dev);
  69.  
  70.     ironlake_teardown_rc6(dev);
  71. diff -rupN a/drivers/gpu/drm/i915/intel_drv.h c/drivers/gpu/drm/i915/intel_drv.h
  72. --- a/drivers/gpu/drm/i915/intel_drv.h  2014-06-08 20:19:54.000000000 +0200
  73. +++ c/drivers/gpu/drm/i915/intel_drv.h  2014-07-19 18:13:17.821240737 +0200
  74. @@ -913,7 +913,7 @@ void intel_runtime_pm_put(struct drm_i91
  75.  void intel_init_runtime_pm(struct drm_i915_private *dev_priv);
  76.  void intel_fini_runtime_pm(struct drm_i915_private *dev_priv);
  77.  void ilk_wm_get_hw_state(struct drm_device *dev);
  78. -
  79. +extern void i915_disable_vga_mem(struct drm_device *dev);
  80.  
  81.  /* intel_sdvo.c */
  82.  bool intel_sdvo_init(struct drm_device *dev, uint32_t sdvo_reg, bool is_sdvob);
  83. diff -rupN a/include/linux/vgaarb.h c/include/linux/vgaarb.h
  84. --- a/include/linux/vgaarb.h    2014-06-08 20:19:54.000000000 +0200
  85. +++ c/include/linux/vgaarb.h    2014-07-19 18:13:50.224566563 +0200
  86. @@ -65,8 +65,15 @@ struct pci_dev;
  87.   *     out of the arbitration process (and can be safe to take
  88.   *     interrupts at any time.
  89.   */
  90. +#if defined(CONFIG_VGA_ARB)
  91.  extern void vga_set_legacy_decoding(struct pci_dev *pdev,
  92.                     unsigned int decodes);
  93. +#else
  94. +static inline void vga_set_legacy_decoding(struct pci_dev *pdev,
  95. +                      unsigned int decodes)
  96. +{
  97. +}
  98. +#endif
  99.  
  100.  /**
  101.   *     vga_get         - acquire & locks VGA resources
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement