diff options
author | Dave Airlie <airlied@redhat.com> | 2018-09-27 19:31:03 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2018-09-27 19:36:48 -0400 |
commit | 156e60bc71aa31a3b42b1d66a822c2999bd0994c (patch) | |
tree | dbc2fa3c30c78b1465aa29ca37fefbb8a16bde8e /drivers/gpu/drm/virtio/virtgpu_object.c | |
parent | bf78296ab1cb215d0609ac6cff4e43e941e51265 (diff) | |
parent | c2b70ffcd34eca60013d90bd6cd56e60b07adef8 (diff) |
Merge tag 'drm-misc-next-2018-09-27' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
drm-misc-next for 4.20:
UAPI Changes:
- None
Cross-subsystem Changes:
- MAINTAINERS: Move udl, mxsfb, and fsl-dcu into drm-misc (Stefan, Sean)
Core Changes:
- syncobj: Check condition before returning timeout in schedule() (Chris)
Driver Changes:
- various: First wave of drm_fbdev_generic_setup() conversions (Noralf)
- bochs/virtio: More format byte-order improvements (Gerd)
- mxsfb: A couple fixes + add runtime pm support (Leonard)
- virtio: Add vmap support for prime objects (Ezequiel)
Cc: Stefan Agner <stefan@agner.ch>
Cc: Sean Paul <sean@poorly.run>
Cc: Noralf Trønnes <noralf@tronnes.org>
Cc: Gerd Hoffman <kraxel@redhat.com>
Cc: Leonard Crestez <leonard.crestez@nxp.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ezequiel Garcia <ezequiel@collabora.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Sean Paul <sean@poorly.run>
Link: https://patchwork.freedesktop.org/patch/msgid/20180927093950.GA180365@art_vandelay
Diffstat (limited to 'drivers/gpu/drm/virtio/virtgpu_object.c')
-rw-r--r-- | drivers/gpu/drm/virtio/virtgpu_object.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/drivers/gpu/drm/virtio/virtgpu_object.c b/drivers/gpu/drm/virtio/virtgpu_object.c index 9f2f470efd9b..eca765537470 100644 --- a/drivers/gpu/drm/virtio/virtgpu_object.c +++ b/drivers/gpu/drm/virtio/virtgpu_object.c | |||
@@ -37,6 +37,8 @@ static void virtio_gpu_ttm_bo_destroy(struct ttm_buffer_object *tbo) | |||
37 | virtio_gpu_cmd_unref_resource(vgdev, bo->hw_res_handle); | 37 | virtio_gpu_cmd_unref_resource(vgdev, bo->hw_res_handle); |
38 | if (bo->pages) | 38 | if (bo->pages) |
39 | virtio_gpu_object_free_sg_table(bo); | 39 | virtio_gpu_object_free_sg_table(bo); |
40 | if (bo->vmap) | ||
41 | virtio_gpu_object_kunmap(bo); | ||
40 | drm_gem_object_release(&bo->gem_base); | 42 | drm_gem_object_release(&bo->gem_base); |
41 | kfree(bo); | 43 | kfree(bo); |
42 | } | 44 | } |
@@ -99,22 +101,23 @@ int virtio_gpu_object_create(struct virtio_gpu_device *vgdev, | |||
99 | return 0; | 101 | return 0; |
100 | } | 102 | } |
101 | 103 | ||
102 | int virtio_gpu_object_kmap(struct virtio_gpu_object *bo, void **ptr) | 104 | void virtio_gpu_object_kunmap(struct virtio_gpu_object *bo) |
105 | { | ||
106 | bo->vmap = NULL; | ||
107 | ttm_bo_kunmap(&bo->kmap); | ||
108 | } | ||
109 | |||
110 | int virtio_gpu_object_kmap(struct virtio_gpu_object *bo) | ||
103 | { | 111 | { |
104 | bool is_iomem; | 112 | bool is_iomem; |
105 | int r; | 113 | int r; |
106 | 114 | ||
107 | if (bo->vmap) { | 115 | WARN_ON(bo->vmap); |
108 | if (ptr) | 116 | |
109 | *ptr = bo->vmap; | ||
110 | return 0; | ||
111 | } | ||
112 | r = ttm_bo_kmap(&bo->tbo, 0, bo->tbo.num_pages, &bo->kmap); | 117 | r = ttm_bo_kmap(&bo->tbo, 0, bo->tbo.num_pages, &bo->kmap); |
113 | if (r) | 118 | if (r) |
114 | return r; | 119 | return r; |
115 | bo->vmap = ttm_kmap_obj_virtual(&bo->kmap, &is_iomem); | 120 | bo->vmap = ttm_kmap_obj_virtual(&bo->kmap, &is_iomem); |
116 | if (ptr) | ||
117 | *ptr = bo->vmap; | ||
118 | return 0; | 121 | return 0; |
119 | } | 122 | } |
120 | 123 | ||