diff options
Diffstat (limited to 'drivers/gpu/drm/virtio/virtgpu_vq.c')
| -rw-r--r-- | drivers/gpu/drm/virtio/virtgpu_vq.c | 21 | 
1 files changed, 9 insertions, 12 deletions
diff --git a/drivers/gpu/drm/virtio/virtgpu_vq.c b/drivers/gpu/drm/virtio/virtgpu_vq.c index b7529b2b9883..9ff8660b50ad 100644 --- a/drivers/gpu/drm/virtio/virtgpu_vq.c +++ b/drivers/gpu/drm/virtio/virtgpu_vq.c @@ -322,7 +322,7 @@ static int virtio_gpu_queue_ctrl_sgs(struct virtio_gpu_device *vgdev,  		if (fence && vbuf->objs)  			virtio_gpu_array_unlock_resv(vbuf->objs);  		free_vbuf(vgdev, vbuf); -		return -1; +		return -ENODEV;  	}  	if (vgdev->has_indirect) @@ -386,7 +386,7 @@ static int virtio_gpu_queue_fenced_ctrl_buffer(struct virtio_gpu_device *vgdev,  			if (!sgt) {  				if (fence && vbuf->objs)  					virtio_gpu_array_unlock_resv(vbuf->objs); -				return -1; +				return -ENOMEM;  			}  			elemcnt += sg_ents; @@ -595,11 +595,10 @@ void virtio_gpu_cmd_transfer_to_host_2d(struct virtio_gpu_device *vgdev,  	struct virtio_gpu_transfer_to_host_2d *cmd_p;  	struct virtio_gpu_vbuffer *vbuf;  	bool use_dma_api = !virtio_has_dma_quirk(vgdev->vdev); -	struct virtio_gpu_object_shmem *shmem = to_virtio_gpu_shmem(bo); -	if (use_dma_api) -		dma_sync_sgtable_for_device(vgdev->vdev->dev.parent, -					    shmem->pages, DMA_TO_DEVICE); +	if (virtio_gpu_is_shmem(bo) && use_dma_api) +		dma_sync_sgtable_for_device(&vgdev->vdev->dev, +					    bo->base.sgt, DMA_TO_DEVICE);  	cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p));  	memset(cmd_p, 0, sizeof(*cmd_p)); @@ -721,7 +720,7 @@ static int virtio_get_edid_block(void *data, u8 *buf,  	size_t start = block * EDID_LENGTH;  	if (start + len > le32_to_cpu(resp->size)) -		return -1; +		return -EINVAL;  	memcpy(buf, resp->edid + start, len);  	return 0;  } @@ -1019,11 +1018,9 @@ void virtio_gpu_cmd_transfer_to_host_3d(struct virtio_gpu_device *vgdev,  	struct virtio_gpu_vbuffer *vbuf;  	bool use_dma_api = !virtio_has_dma_quirk(vgdev->vdev); -	if (virtio_gpu_is_shmem(bo) && use_dma_api) { -		struct virtio_gpu_object_shmem *shmem = to_virtio_gpu_shmem(bo); -		dma_sync_sgtable_for_device(vgdev->vdev->dev.parent, -					    shmem->pages, DMA_TO_DEVICE); -	} +	if (virtio_gpu_is_shmem(bo) && use_dma_api) +		dma_sync_sgtable_for_device(&vgdev->vdev->dev, +					    bo->base.sgt, DMA_TO_DEVICE);  	cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p));  	memset(cmd_p, 0, sizeof(*cmd_p));  |