drm/virtio: rework resource creation workflow.
This patch moves the virtio_gpu_cmd_create_resource() call (which notifies the host about the new resource created) into the virtio_gpu_object_create() function. That way we can call virtio_gpu_cmd_create_resource() before ttm_bo_init(), so the host already knows about the object when ttm initializes the object and calls our driver callbacks. Specifically the object is already created when the virtio_gpu_ttm_tt_bind() callback invokes virtio_gpu_object_attach(), so the extra virtio_gpu_object_attach() calls done after virtio_gpu_object_create() are not needed any more. The fence support for the create ioctl becomes a bit more tricky though. The code moved into virtio_gpu_object_create() too. We first submit the (fenced) virtio_gpu_cmd_create_resource() command, then initialize the ttm object, and finally attach just created object to the fence for the command in case it didn't finish yet. Signed-off-by:Gerd Hoffmann <kraxel@redhat.com> Acked-by:
Noralf Trønnes <noralf@tronnes.org> Link: http://patchwork.freedesktop.org/patch/msgid/20190318113332.10900-6-kraxel@redhat.com
Showing
- drivers/gpu/drm/virtio/virtgpu_drv.h 14 additions, 4 deletionsdrivers/gpu/drm/virtio/virtgpu_drv.h
- drivers/gpu/drm/virtio/virtgpu_fence.c 2 additions, 2 deletionsdrivers/gpu/drm/virtio/virtgpu_fence.c
- drivers/gpu/drm/virtio/virtgpu_gem.c 5 additions, 14 deletionsdrivers/gpu/drm/virtio/virtgpu_gem.c
- drivers/gpu/drm/virtio/virtgpu_ioctl.c 10 additions, 62 deletionsdrivers/gpu/drm/virtio/virtgpu_ioctl.c
- drivers/gpu/drm/virtio/virtgpu_object.c 44 additions, 3 deletionsdrivers/gpu/drm/virtio/virtgpu_object.c
- drivers/gpu/drm/virtio/virtgpu_vq.c 8 additions, 6 deletionsdrivers/gpu/drm/virtio/virtgpu_vq.c
Loading
Please register or sign in to comment