Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/virtio: blob prep: make CPU responses more generic

RESOURCE_MAP_BLOB / RESOURCE_UNMAP_BLOB can use this.

Signed-off-by: Gurchetan Singh <gurchetansingh@chromium.org>
Acked-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20200924003214.662-2-gurchetansingh@chromium.org
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>

authored by

Gurchetan Singh and committed by
Gerd Hoffmann
0ce07296 30172efb

+11 -11
+3 -3
drivers/gpu/drm/virtio/virtgpu_drv.h
··· 49 49 #define DRIVER_MINOR 1 50 50 #define DRIVER_PATCHLEVEL 0 51 51 52 - #define UUID_INITIALIZING 0 53 - #define UUID_INITIALIZED 1 54 - #define UUID_INITIALIZATION_FAILED 2 52 + #define STATE_INITIALIZING 0 53 + #define STATE_OK 1 54 + #define STATE_ERR 2 55 55 56 56 struct virtio_gpu_object_params { 57 57 uint32_t format;
+3 -3
drivers/gpu/drm/virtio/virtgpu_prime.c
··· 34 34 struct virtio_gpu_object *bo = gem_to_virtio_gpu_obj(obj); 35 35 struct virtio_gpu_device *vgdev = obj->dev->dev_private; 36 36 37 - wait_event(vgdev->resp_wq, bo->uuid_state != UUID_INITIALIZING); 38 - if (bo->uuid_state != UUID_INITIALIZED) 37 + wait_event(vgdev->resp_wq, bo->uuid_state != STATE_INITIALIZING); 38 + if (bo->uuid_state != STATE_OK) 39 39 return -ENODEV; 40 40 41 41 uuid_copy(uuid, &bo->uuid); ··· 81 81 return ERR_PTR(ret); 82 82 virtio_gpu_notify(vgdev); 83 83 } else { 84 - bo->uuid_state = UUID_INITIALIZATION_FAILED; 84 + bo->uuid_state = STATE_ERR; 85 85 } 86 86 87 87 exp_info.ops = &virtgpu_dmabuf_ops.ops;
+5 -5
drivers/gpu/drm/virtio/virtgpu_vq.c
··· 1127 1127 uint32_t resp_type = le32_to_cpu(resp->hdr.type); 1128 1128 1129 1129 spin_lock(&vgdev->resource_export_lock); 1130 - WARN_ON(obj->uuid_state != UUID_INITIALIZING); 1130 + WARN_ON(obj->uuid_state != STATE_INITIALIZING); 1131 1131 1132 1132 if (resp_type == VIRTIO_GPU_RESP_OK_RESOURCE_UUID && 1133 - obj->uuid_state == UUID_INITIALIZING) { 1133 + obj->uuid_state == STATE_INITIALIZING) { 1134 1134 memcpy(&obj->uuid.b, resp->uuid, sizeof(obj->uuid.b)); 1135 - obj->uuid_state = UUID_INITIALIZED; 1135 + obj->uuid_state = STATE_OK; 1136 1136 } else { 1137 - obj->uuid_state = UUID_INITIALIZATION_FAILED; 1137 + obj->uuid_state = STATE_ERR; 1138 1138 } 1139 1139 spin_unlock(&vgdev->resource_export_lock); 1140 1140 ··· 1153 1153 resp_buf = kzalloc(sizeof(*resp_buf), GFP_KERNEL); 1154 1154 if (!resp_buf) { 1155 1155 spin_lock(&vgdev->resource_export_lock); 1156 - bo->uuid_state = UUID_INITIALIZATION_FAILED; 1156 + bo->uuid_state = STATE_ERR; 1157 1157 spin_unlock(&vgdev->resource_export_lock); 1158 1158 virtio_gpu_array_put_free(objs); 1159 1159 return -ENOMEM;