diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_fbdev.c')
| -rw-r--r-- | drivers/gpu/drm/i915/intel_fbdev.c | 13 | 
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_fbdev.c b/drivers/gpu/drm/i915/intel_fbdev.c index da48af11eb6b..6f12adc06365 100644 --- a/drivers/gpu/drm/i915/intel_fbdev.c +++ b/drivers/gpu/drm/i915/intel_fbdev.c @@ -48,7 +48,8 @@  static void intel_fbdev_invalidate(struct intel_fbdev *ifbdev)  {  	struct drm_i915_gem_object *obj = ifbdev->fb->obj; -	unsigned int origin = ifbdev->vma->fence ? ORIGIN_GTT : ORIGIN_CPU; +	unsigned int origin = +		ifbdev->vma_flags & PLANE_HAS_FENCE ? ORIGIN_GTT : ORIGIN_CPU;  	intel_fb_obj_invalidate(obj, origin);  } @@ -177,6 +178,7 @@ static int intelfb_create(struct drm_fb_helper *helper,  	struct fb_info *info;  	struct drm_framebuffer *fb;  	struct i915_vma *vma; +	unsigned long flags = 0;  	bool prealloc = false;  	void __iomem *vaddr;  	int ret; @@ -211,7 +213,9 @@ static int intelfb_create(struct drm_fb_helper *helper,  	 * This also validates that any existing fb inherited from the  	 * BIOS is suitable for own access.  	 */ -	vma = intel_pin_and_fence_fb_obj(&ifbdev->fb->base, DRM_MODE_ROTATE_0); +	vma = intel_pin_and_fence_fb_obj(&ifbdev->fb->base, +					 DRM_MODE_ROTATE_0, +					 false, &flags);  	if (IS_ERR(vma)) {  		ret = PTR_ERR(vma);  		goto out_unlock; @@ -268,6 +272,7 @@ static int intelfb_create(struct drm_fb_helper *helper,  	DRM_DEBUG_KMS("allocated %dx%d fb: 0x%08x\n",  		      fb->width, fb->height, i915_ggtt_offset(vma));  	ifbdev->vma = vma; +	ifbdev->vma_flags = flags;  	intel_runtime_pm_put(dev_priv);  	mutex_unlock(&dev->struct_mutex); @@ -275,7 +280,7 @@ static int intelfb_create(struct drm_fb_helper *helper,  	return 0;  out_unpin: -	intel_unpin_fb_vma(vma); +	intel_unpin_fb_vma(vma, flags);  out_unlock:  	intel_runtime_pm_put(dev_priv);  	mutex_unlock(&dev->struct_mutex); @@ -513,7 +518,7 @@ static void intel_fbdev_destroy(struct intel_fbdev *ifbdev)  	if (ifbdev->vma) {  		mutex_lock(&ifbdev->helper.dev->struct_mutex); -		intel_unpin_fb_vma(ifbdev->vma); +		intel_unpin_fb_vma(ifbdev->vma, ifbdev->vma_flags);  		mutex_unlock(&ifbdev->helper.dev->struct_mutex);  	}  |