diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_display.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 19 | 
1 files changed, 6 insertions, 13 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c index dc50c05f23fc..82011e75ed85 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c @@ -83,9 +83,6 @@ static void amdgpu_display_flip_work_func(struct work_struct *__work)  	unsigned i;  	int vpos, hpos; -	if (amdgpu_display_flip_handle_fence(work, &work->excl)) -		return; -  	for (i = 0; i < work->shared_count; ++i)  		if (amdgpu_display_flip_handle_fence(work, &work->shared[i]))  			return; @@ -203,7 +200,7 @@ int amdgpu_display_crtc_page_flip_target(struct drm_crtc *crtc,  		goto unpin;  	} -	r = dma_resv_get_fences(new_abo->tbo.base.resv, &work->excl, +	r = dma_resv_get_fences(new_abo->tbo.base.resv, NULL,  				&work->shared_count, &work->shared);  	if (unlikely(r != 0)) {  		DRM_ERROR("failed to get fences for buffer\n"); @@ -253,7 +250,6 @@ unreserve:  cleanup:  	amdgpu_bo_unref(&work->old_abo); -	dma_fence_put(work->excl);  	for (i = 0; i < work->shared_count; ++i)  		dma_fence_put(work->shared[i]);  	kfree(work->shared); @@ -1364,7 +1360,7 @@ bool amdgpu_display_crtc_scaling_mode_fixup(struct drm_crtc *crtc,  		if ((!(mode->flags & DRM_MODE_FLAG_INTERLACE)) &&  		    ((amdgpu_encoder->underscan_type == UNDERSCAN_ON) ||  		     ((amdgpu_encoder->underscan_type == UNDERSCAN_AUTO) && -		      drm_detect_hdmi_monitor(amdgpu_connector_edid(connector)) && +		      connector->display_info.is_hdmi &&  		      amdgpu_display_is_hdtv_mode(mode)))) {  			if (amdgpu_encoder->underscan_hborder != 0)  				amdgpu_crtc->h_border = amdgpu_encoder->underscan_hborder; @@ -1603,13 +1599,10 @@ int amdgpu_display_suspend_helper(struct amdgpu_device *adev)  			continue;  		}  		robj = gem_to_amdgpu_bo(fb->obj[0]); -		/* don't unpin kernel fb objects */ -		if (!amdgpu_fbdev_robj_is_fb(adev, robj)) { -			r = amdgpu_bo_reserve(robj, true); -			if (r == 0) { -				amdgpu_bo_unpin(robj); -				amdgpu_bo_unreserve(robj); -			} +		r = amdgpu_bo_reserve(robj, true); +		if (r == 0) { +			amdgpu_bo_unpin(robj); +			amdgpu_bo_unreserve(robj);  		}  	}  	return 0; |