diff options
Diffstat (limited to 'drivers/gpu/drm/lima/lima_gem.c')
| -rw-r--r-- | drivers/gpu/drm/lima/lima_gem.c | 17 | 
1 files changed, 7 insertions, 10 deletions
diff --git a/drivers/gpu/drm/lima/lima_gem.c b/drivers/gpu/drm/lima/lima_gem.c index 55bb1ec3c4f7..0f1ca0b0db49 100644 --- a/drivers/gpu/drm/lima/lima_gem.c +++ b/drivers/gpu/drm/lima/lima_gem.c @@ -257,13 +257,11 @@ int lima_gem_get_info(struct drm_file *file, u32 handle, u32 *va, u64 *offset)  static int lima_gem_sync_bo(struct lima_sched_task *task, struct lima_bo *bo,  			    bool write, bool explicit)  { -	int err = 0; +	int err; -	if (!write) { -		err = dma_resv_reserve_shared(lima_bo_resv(bo), 1); -		if (err) -			return err; -	} +	err = dma_resv_reserve_fences(lima_bo_resv(bo), 1); +	if (err) +		return err;  	/* explicit sync use user passed dep fence */  	if (explicit) @@ -366,10 +364,9 @@ int lima_gem_submit(struct drm_file *file, struct lima_submit *submit)  	fence = lima_sched_context_queue_task(submit->task);  	for (i = 0; i < submit->nr_bos; i++) { -		if (submit->bos[i].flags & LIMA_SUBMIT_BO_WRITE) -			dma_resv_add_excl_fence(lima_bo_resv(bos[i]), fence); -		else -			dma_resv_add_shared_fence(lima_bo_resv(bos[i]), fence); +		dma_resv_add_fence(lima_bo_resv(bos[i]), fence, +				   submit->bos[i].flags & LIMA_SUBMIT_BO_WRITE ? +				   DMA_RESV_USAGE_WRITE : DMA_RESV_USAGE_READ);  	}  	drm_gem_unlock_reservations((struct drm_gem_object **)bos,  |