mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-18 11:33:36 -04:00
drm/virtio: implement context init: support init ioctl
This implements the context initialization ioctl. A list of params is passed in by userspace, and kernel driver validates them. The only currently supported param is VIRTGPU_CONTEXT_PARAM_CAPSET_ID. If the context has already been initialized, -EEXIST is returned. This happens after Linux userspace does dumb_create + followed by opening the Mesa virgl driver with the same virtgpu instance. However, for most applications, 3D contexts will be explicitly initialized when the feature is available. Signed-off-by: Anthoine Bourgeois <anthoine.bourgeois@gmail.com> Acked-by: Lingfeng Yang <lfy@google.com> Link: http://patchwork.freedesktop.org/patch/msgid/20210921232024.817-6-gurchetansingh@chromium.org Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
committed by
Gerd Hoffmann
parent
6198770a1f
commit
4fb530e5ca
@@ -259,12 +259,13 @@ struct virtio_gpu_device {
|
||||
|
||||
struct virtio_gpu_fpriv {
|
||||
uint32_t ctx_id;
|
||||
uint32_t context_init;
|
||||
bool context_created;
|
||||
struct mutex context_lock;
|
||||
};
|
||||
|
||||
/* virtgpu_ioctl.c */
|
||||
#define DRM_VIRTIO_NUM_IOCTLS 11
|
||||
#define DRM_VIRTIO_NUM_IOCTLS 12
|
||||
extern struct drm_ioctl_desc virtio_gpu_ioctls[DRM_VIRTIO_NUM_IOCTLS];
|
||||
void virtio_gpu_create_context(struct drm_device *dev, struct drm_file *file);
|
||||
|
||||
@@ -342,7 +343,8 @@ int virtio_gpu_cmd_get_capset(struct virtio_gpu_device *vgdev,
|
||||
struct virtio_gpu_drv_cap_cache **cache_p);
|
||||
int virtio_gpu_cmd_get_edids(struct virtio_gpu_device *vgdev);
|
||||
void virtio_gpu_cmd_context_create(struct virtio_gpu_device *vgdev, uint32_t id,
|
||||
uint32_t nlen, const char *name);
|
||||
uint32_t context_init, uint32_t nlen,
|
||||
const char *name);
|
||||
void virtio_gpu_cmd_context_destroy(struct virtio_gpu_device *vgdev,
|
||||
uint32_t id);
|
||||
void virtio_gpu_cmd_context_attach_resource(struct virtio_gpu_device *vgdev,
|
||||
|
||||
Reference in New Issue
Block a user