diff options
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem_gtt.c | 11 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_vgpu.c | 13 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_vgpu.h | 6 |
3 files changed, 16 insertions, 14 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c index 7a139a6d4487..5890017b9832 100644 --- a/drivers/gpu/drm/i915/i915_gem_gtt.c +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c | |||
| @@ -2794,11 +2794,9 @@ static int i915_gem_setup_global_gtt(struct drm_device *dev, | |||
| 2794 | i915_address_space_init(&ggtt->base, dev_priv); | 2794 | i915_address_space_init(&ggtt->base, dev_priv); |
| 2795 | ggtt->base.total += PAGE_SIZE; | 2795 | ggtt->base.total += PAGE_SIZE; |
| 2796 | 2796 | ||
| 2797 | if (intel_vgpu_active(dev_priv)) { | 2797 | ret = intel_vgt_balloon(dev_priv); |
| 2798 | ret = intel_vgt_balloon(dev); | 2798 | if (ret) |
| 2799 | if (ret) | 2799 | return ret; |
| 2800 | return ret; | ||
| 2801 | } | ||
| 2802 | 2800 | ||
| 2803 | if (!HAS_LLC(dev)) | 2801 | if (!HAS_LLC(dev)) |
| 2804 | ggtt->base.mm.color_adjust = i915_gtt_color_adjust; | 2802 | ggtt->base.mm.color_adjust = i915_gtt_color_adjust; |
| @@ -2898,8 +2896,7 @@ void i915_ggtt_cleanup_hw(struct drm_device *dev) | |||
| 2898 | i915_gem_cleanup_stolen(dev); | 2896 | i915_gem_cleanup_stolen(dev); |
| 2899 | 2897 | ||
| 2900 | if (drm_mm_initialized(&ggtt->base.mm)) { | 2898 | if (drm_mm_initialized(&ggtt->base.mm)) { |
| 2901 | if (intel_vgpu_active(dev_priv)) | 2899 | intel_vgt_deballoon(dev_priv); |
| 2902 | intel_vgt_deballoon(); | ||
| 2903 | 2900 | ||
| 2904 | drm_mm_takedown(&ggtt->base.mm); | 2901 | drm_mm_takedown(&ggtt->base.mm); |
| 2905 | list_del(&ggtt->base.global_link); | 2902 | list_del(&ggtt->base.global_link); |
diff --git a/drivers/gpu/drm/i915/i915_vgpu.c b/drivers/gpu/drm/i915/i915_vgpu.c index c3c6c64e5f5e..f6acb5a0e701 100644 --- a/drivers/gpu/drm/i915/i915_vgpu.c +++ b/drivers/gpu/drm/i915/i915_vgpu.c | |||
| @@ -101,10 +101,13 @@ static struct _balloon_info_ bl_info; | |||
| 101 | * This function is called to deallocate the ballooned-out graphic memory, when | 101 | * This function is called to deallocate the ballooned-out graphic memory, when |
| 102 | * driver is unloaded or when ballooning fails. | 102 | * driver is unloaded or when ballooning fails. |
| 103 | */ | 103 | */ |
| 104 | void intel_vgt_deballoon(void) | 104 | void intel_vgt_deballoon(struct drm_i915_private *dev_priv) |
| 105 | { | 105 | { |
| 106 | int i; | 106 | int i; |
| 107 | 107 | ||
| 108 | if (!intel_vgpu_active(dev_priv)) | ||
| 109 | return; | ||
| 110 | |||
| 108 | DRM_DEBUG("VGT deballoon.\n"); | 111 | DRM_DEBUG("VGT deballoon.\n"); |
| 109 | 112 | ||
| 110 | for (i = 0; i < 4; i++) { | 113 | for (i = 0; i < 4; i++) { |
| @@ -177,9 +180,8 @@ static int vgt_balloon_space(struct drm_mm *mm, | |||
| 177 | * Returns: | 180 | * Returns: |
| 178 | * zero on success, non-zero if configuration invalid or ballooning failed | 181 | * zero on success, non-zero if configuration invalid or ballooning failed |
| 179 | */ | 182 | */ |
| 180 | int intel_vgt_balloon(struct drm_device *dev) | 183 | int intel_vgt_balloon(struct drm_i915_private *dev_priv) |
| 181 | { | 184 | { |
| 182 | struct drm_i915_private *dev_priv = to_i915(dev); | ||
| 183 | struct i915_ggtt *ggtt = &dev_priv->ggtt; | 185 | struct i915_ggtt *ggtt = &dev_priv->ggtt; |
| 184 | unsigned long ggtt_end = ggtt->base.start + ggtt->base.total; | 186 | unsigned long ggtt_end = ggtt->base.start + ggtt->base.total; |
| 185 | 187 | ||
| @@ -187,6 +189,9 @@ int intel_vgt_balloon(struct drm_device *dev) | |||
| 187 | unsigned long unmappable_base, unmappable_size, unmappable_end; | 189 | unsigned long unmappable_base, unmappable_size, unmappable_end; |
| 188 | int ret; | 190 | int ret; |
| 189 | 191 | ||
| 192 | if (!intel_vgpu_active(dev_priv)) | ||
| 193 | return 0; | ||
| 194 | |||
| 190 | mappable_base = I915_READ(vgtif_reg(avail_rs.mappable_gmadr.base)); | 195 | mappable_base = I915_READ(vgtif_reg(avail_rs.mappable_gmadr.base)); |
| 191 | mappable_size = I915_READ(vgtif_reg(avail_rs.mappable_gmadr.size)); | 196 | mappable_size = I915_READ(vgtif_reg(avail_rs.mappable_gmadr.size)); |
| 192 | unmappable_base = I915_READ(vgtif_reg(avail_rs.nonmappable_gmadr.base)); | 197 | unmappable_base = I915_READ(vgtif_reg(avail_rs.nonmappable_gmadr.base)); |
| @@ -258,6 +263,6 @@ int intel_vgt_balloon(struct drm_device *dev) | |||
| 258 | 263 | ||
| 259 | err: | 264 | err: |
| 260 | DRM_ERROR("VGT balloon fail\n"); | 265 | DRM_ERROR("VGT balloon fail\n"); |
| 261 | intel_vgt_deballoon(); | 266 | intel_vgt_deballoon(dev_priv); |
| 262 | return ret; | 267 | return ret; |
| 263 | } | 268 | } |
diff --git a/drivers/gpu/drm/i915/i915_vgpu.h b/drivers/gpu/drm/i915/i915_vgpu.h index 07e67d520273..3c3b2d24e830 100644 --- a/drivers/gpu/drm/i915/i915_vgpu.h +++ b/drivers/gpu/drm/i915/i915_vgpu.h | |||
| @@ -26,8 +26,8 @@ | |||
| 26 | 26 | ||
| 27 | #include "i915_pvinfo.h" | 27 | #include "i915_pvinfo.h" |
| 28 | 28 | ||
| 29 | extern void i915_check_vgpu(struct drm_i915_private *dev_priv); | 29 | void i915_check_vgpu(struct drm_i915_private *dev_priv); |
| 30 | extern int intel_vgt_balloon(struct drm_device *dev); | 30 | int intel_vgt_balloon(struct drm_i915_private *dev_priv); |
| 31 | extern void intel_vgt_deballoon(void); | 31 | void intel_vgt_deballoon(struct drm_i915_private *dev_priv); |
| 32 | 32 | ||
| 33 | #endif /* _I915_VGPU_H_ */ | 33 | #endif /* _I915_VGPU_H_ */ |
