• Gerd Hoffmann's avatar
    drm/virtio: rework resource creation workflow. · 530b2842
    Gerd Hoffmann authored
    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: default avatarGerd Hoffmann <kraxel@redhat.com>
    Acked-by: default avatarNoralf Trønnes <noralf@tronnes.org>
    Link: http://patchwork.freedesktop.org/patch/msgid/20190318113332.10900-6-kraxel@redhat.com
    530b2842
virtgpu_object.c 6.53 KB