drm/virtio: drop resource_id argument.
We pass the obj anyway, so obj->hw_res_handle can be used instead in virtio_gpu_object_attach() and virtio_gpu_cmd_create_resource(). Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Dave Airlie <airlied@redhat.com> Link: http://patchwork.freedesktop.org/patch/msgid/20181019061847.18958-6-kraxel@redhat.com
This commit is contained in:
parent
70a0d6a377
commit
724cfdfd66
@ -265,7 +265,6 @@ void virtio_gpu_resource_id_get(struct virtio_gpu_device *vgdev,
|
|||||||
void virtio_gpu_resource_id_put(struct virtio_gpu_device *vgdev, uint32_t id);
|
void virtio_gpu_resource_id_put(struct virtio_gpu_device *vgdev, uint32_t id);
|
||||||
void virtio_gpu_cmd_create_resource(struct virtio_gpu_device *vgdev,
|
void virtio_gpu_cmd_create_resource(struct virtio_gpu_device *vgdev,
|
||||||
struct virtio_gpu_object *bo,
|
struct virtio_gpu_object *bo,
|
||||||
uint32_t resource_id,
|
|
||||||
uint32_t format,
|
uint32_t format,
|
||||||
uint32_t width,
|
uint32_t width,
|
||||||
uint32_t height);
|
uint32_t height);
|
||||||
@ -287,7 +286,6 @@ void virtio_gpu_cmd_set_scanout(struct virtio_gpu_device *vgdev,
|
|||||||
uint32_t x, uint32_t y);
|
uint32_t x, uint32_t y);
|
||||||
int virtio_gpu_object_attach(struct virtio_gpu_device *vgdev,
|
int virtio_gpu_object_attach(struct virtio_gpu_device *vgdev,
|
||||||
struct virtio_gpu_object *obj,
|
struct virtio_gpu_object *obj,
|
||||||
uint32_t resource_id,
|
|
||||||
struct virtio_gpu_fence **fence);
|
struct virtio_gpu_fence **fence);
|
||||||
void virtio_gpu_object_detach(struct virtio_gpu_device *vgdev,
|
void virtio_gpu_object_detach(struct virtio_gpu_device *vgdev,
|
||||||
struct virtio_gpu_object *obj);
|
struct virtio_gpu_object *obj);
|
||||||
|
@ -232,7 +232,7 @@ static int virtio_gpufb_create(struct drm_fb_helper *helper,
|
|||||||
return PTR_ERR(obj);
|
return PTR_ERR(obj);
|
||||||
|
|
||||||
virtio_gpu_resource_id_get(vgdev, &obj->hw_res_handle);
|
virtio_gpu_resource_id_get(vgdev, &obj->hw_res_handle);
|
||||||
virtio_gpu_cmd_create_resource(vgdev, obj, obj->hw_res_handle, format,
|
virtio_gpu_cmd_create_resource(vgdev, obj, format,
|
||||||
mode_cmd.width, mode_cmd.height);
|
mode_cmd.width, mode_cmd.height);
|
||||||
|
|
||||||
ret = virtio_gpu_object_kmap(obj);
|
ret = virtio_gpu_object_kmap(obj);
|
||||||
@ -242,7 +242,7 @@ static int virtio_gpufb_create(struct drm_fb_helper *helper,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* attach the object to the resource */
|
/* attach the object to the resource */
|
||||||
ret = virtio_gpu_object_attach(vgdev, obj, obj->hw_res_handle, NULL);
|
ret = virtio_gpu_object_attach(vgdev, obj, NULL);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err_obj_attach;
|
goto err_obj_attach;
|
||||||
|
|
||||||
|
@ -104,11 +104,11 @@ int virtio_gpu_mode_dumb_create(struct drm_file *file_priv,
|
|||||||
format = virtio_gpu_translate_format(DRM_FORMAT_HOST_XRGB8888);
|
format = virtio_gpu_translate_format(DRM_FORMAT_HOST_XRGB8888);
|
||||||
obj = gem_to_virtio_gpu_obj(gobj);
|
obj = gem_to_virtio_gpu_obj(gobj);
|
||||||
virtio_gpu_resource_id_get(vgdev, &obj->hw_res_handle);
|
virtio_gpu_resource_id_get(vgdev, &obj->hw_res_handle);
|
||||||
virtio_gpu_cmd_create_resource(vgdev, obj, obj->hw_res_handle, format,
|
virtio_gpu_cmd_create_resource(vgdev, obj, format,
|
||||||
args->width, args->height);
|
args->width, args->height);
|
||||||
|
|
||||||
/* attach the object to the resource */
|
/* attach the object to the resource */
|
||||||
ret = virtio_gpu_object_attach(vgdev, obj, obj->hw_res_handle, NULL);
|
ret = virtio_gpu_object_attach(vgdev, obj, NULL);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
|
@ -256,10 +256,10 @@ static int virtio_gpu_resource_create_ioctl(struct drm_device *dev, void *data,
|
|||||||
virtio_gpu_resource_id_get(vgdev, &qobj->hw_res_handle);
|
virtio_gpu_resource_id_get(vgdev, &qobj->hw_res_handle);
|
||||||
|
|
||||||
if (!vgdev->has_virgl_3d) {
|
if (!vgdev->has_virgl_3d) {
|
||||||
virtio_gpu_cmd_create_resource(vgdev, qobj, qobj->hw_res_handle, rc->format,
|
virtio_gpu_cmd_create_resource(vgdev, qobj, rc->format,
|
||||||
rc->width, rc->height);
|
rc->width, rc->height);
|
||||||
|
|
||||||
ret = virtio_gpu_object_attach(vgdev, qobj, qobj->hw_res_handle, NULL);
|
ret = virtio_gpu_object_attach(vgdev, qobj, NULL);
|
||||||
} else {
|
} else {
|
||||||
/* use a gem reference since unref list undoes them */
|
/* use a gem reference since unref list undoes them */
|
||||||
drm_gem_object_get(&qobj->gem_base);
|
drm_gem_object_get(&qobj->gem_base);
|
||||||
@ -285,7 +285,7 @@ static int virtio_gpu_resource_create_ioctl(struct drm_device *dev, void *data,
|
|||||||
rc_3d.flags = cpu_to_le32(rc->flags);
|
rc_3d.flags = cpu_to_le32(rc->flags);
|
||||||
|
|
||||||
virtio_gpu_cmd_resource_create_3d(vgdev, qobj, &rc_3d, NULL);
|
virtio_gpu_cmd_resource_create_3d(vgdev, qobj, &rc_3d, NULL);
|
||||||
ret = virtio_gpu_object_attach(vgdev, qobj, qobj->hw_res_handle, &fence);
|
ret = virtio_gpu_object_attach(vgdev, qobj, &fence);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
ttm_eu_backoff_reservation(&ticket, &validate_list);
|
ttm_eu_backoff_reservation(&ticket, &validate_list);
|
||||||
goto fail_unref;
|
goto fail_unref;
|
||||||
|
@ -347,8 +347,7 @@ static void virtio_gpu_bo_move_notify(struct ttm_buffer_object *tbo,
|
|||||||
|
|
||||||
} else if (new_mem->placement & TTM_PL_FLAG_TT) {
|
} else if (new_mem->placement & TTM_PL_FLAG_TT) {
|
||||||
if (bo->hw_res_handle) {
|
if (bo->hw_res_handle) {
|
||||||
virtio_gpu_object_attach(vgdev, bo, bo->hw_res_handle,
|
virtio_gpu_object_attach(vgdev, bo, NULL);
|
||||||
NULL);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -389,7 +389,6 @@ retry:
|
|||||||
/* create a basic resource */
|
/* create a basic resource */
|
||||||
void virtio_gpu_cmd_create_resource(struct virtio_gpu_device *vgdev,
|
void virtio_gpu_cmd_create_resource(struct virtio_gpu_device *vgdev,
|
||||||
struct virtio_gpu_object *bo,
|
struct virtio_gpu_object *bo,
|
||||||
uint32_t resource_id,
|
|
||||||
uint32_t format,
|
uint32_t format,
|
||||||
uint32_t width,
|
uint32_t width,
|
||||||
uint32_t height)
|
uint32_t height)
|
||||||
@ -401,7 +400,7 @@ void virtio_gpu_cmd_create_resource(struct virtio_gpu_device *vgdev,
|
|||||||
memset(cmd_p, 0, sizeof(*cmd_p));
|
memset(cmd_p, 0, sizeof(*cmd_p));
|
||||||
|
|
||||||
cmd_p->hdr.type = cpu_to_le32(VIRTIO_GPU_CMD_RESOURCE_CREATE_2D);
|
cmd_p->hdr.type = cpu_to_le32(VIRTIO_GPU_CMD_RESOURCE_CREATE_2D);
|
||||||
cmd_p->resource_id = cpu_to_le32(resource_id);
|
cmd_p->resource_id = cpu_to_le32(bo->hw_res_handle);
|
||||||
cmd_p->format = cpu_to_le32(format);
|
cmd_p->format = cpu_to_le32(format);
|
||||||
cmd_p->width = cpu_to_le32(width);
|
cmd_p->width = cpu_to_le32(width);
|
||||||
cmd_p->height = cpu_to_le32(height);
|
cmd_p->height = cpu_to_le32(height);
|
||||||
@ -865,7 +864,6 @@ void virtio_gpu_cmd_submit(struct virtio_gpu_device *vgdev,
|
|||||||
|
|
||||||
int virtio_gpu_object_attach(struct virtio_gpu_device *vgdev,
|
int virtio_gpu_object_attach(struct virtio_gpu_device *vgdev,
|
||||||
struct virtio_gpu_object *obj,
|
struct virtio_gpu_object *obj,
|
||||||
uint32_t resource_id,
|
|
||||||
struct virtio_gpu_fence **fence)
|
struct virtio_gpu_fence **fence)
|
||||||
{
|
{
|
||||||
bool use_dma_api = !virtio_has_iommu_quirk(vgdev->vdev);
|
bool use_dma_api = !virtio_has_iommu_quirk(vgdev->vdev);
|
||||||
@ -909,10 +907,9 @@ int virtio_gpu_object_attach(struct virtio_gpu_device *vgdev,
|
|||||||
ents[si].padding = 0;
|
ents[si].padding = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtio_gpu_cmd_resource_attach_backing(vgdev, resource_id,
|
virtio_gpu_cmd_resource_attach_backing(vgdev, obj->hw_res_handle,
|
||||||
ents, nents,
|
ents, nents,
|
||||||
fence);
|
fence);
|
||||||
obj->hw_res_handle = resource_id;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user