aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/virtio/virtgpu_kms.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2019-01-17 18:20:10 -0500
committerDave Airlie <airlied@redhat.com>2019-01-17 18:31:28 -0500
commitf164a94c2c87752caeb1a3cbe068c440e7f7921f (patch)
treee914296ef0ce1df83e506a12bf4306d5aa468b24 /drivers/gpu/drm/virtio/virtgpu_kms.c
parentb122153c7198e35fcb981ca9efd63b0df8ef3eab (diff)
parent94520db52fc0e931327bb77fe79a952a0e9dd2b0 (diff)
Merge tag 'drm-misc-next-2019-01-16' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
drm-misc-next for 5.1: UAPI Changes: - New fourcc identifier for ARM Framebuffer Compression v1.3 Cross-subsystem Changes: Core Changes: - Reorganisation of drm_device and drm_framebuffer headers - Cleanup of the drmP inclusion - Fix leaks in the fb-helpers - Allow for depth different from bpp in fb-helper fbdev emulation - Remove drm_mode_object from drm_display_mode Driver Changes: - Add reflection properties to rockchip - a bunch of fixes for virtio - a bunch of fixes for dp_mst and drivers using it, and introduction of a new refcounting scheme - Convertion of bochs to atomic and generic fbdev emulation - Allow meson to remove the firmware framebuffers [airlied: patch rcar-du to add drm_modes.h] Signed-off-by: Dave Airlie <airlied@redhat.com> From: Maxime Ripard <maxime.ripard@bootlin.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190116200428.u2n4jbk4mzza7n6e@flea
Diffstat (limited to 'drivers/gpu/drm/virtio/virtgpu_kms.c')
-rw-r--r--drivers/gpu/drm/virtio/virtgpu_kms.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/gpu/drm/virtio/virtgpu_kms.c b/drivers/gpu/drm/virtio/virtgpu_kms.c
index 1072064a0db2..84b6a6bf00c6 100644
--- a/drivers/gpu/drm/virtio/virtgpu_kms.c
+++ b/drivers/gpu/drm/virtio/virtgpu_kms.c
@@ -106,7 +106,7 @@ static void virtio_gpu_get_capsets(struct virtio_gpu_device *vgdev,
106 vgdev->num_capsets = num_capsets; 106 vgdev->num_capsets = num_capsets;
107} 107}
108 108
109int virtio_gpu_driver_load(struct drm_device *dev, unsigned long flags) 109int virtio_gpu_init(struct drm_device *dev)
110{ 110{
111 static vq_callback_t *callbacks[] = { 111 static vq_callback_t *callbacks[] = {
112 virtio_gpu_ctrl_ack, virtio_gpu_cursor_ack 112 virtio_gpu_ctrl_ack, virtio_gpu_cursor_ack
@@ -193,9 +193,7 @@ int virtio_gpu_driver_load(struct drm_device *dev, unsigned long flags)
193 num_capsets, &num_capsets); 193 num_capsets, &num_capsets);
194 DRM_INFO("number of cap sets: %d\n", num_capsets); 194 DRM_INFO("number of cap sets: %d\n", num_capsets);
195 195
196 ret = virtio_gpu_modeset_init(vgdev); 196 virtio_gpu_modeset_init(vgdev);
197 if (ret)
198 goto err_modeset;
199 197
200 virtio_device_ready(vgdev->vdev); 198 virtio_device_ready(vgdev->vdev);
201 vgdev->vqs_ready = true; 199 vgdev->vqs_ready = true;
@@ -209,7 +207,6 @@ int virtio_gpu_driver_load(struct drm_device *dev, unsigned long flags)
209 5 * HZ); 207 5 * HZ);
210 return 0; 208 return 0;
211 209
212err_modeset:
213err_scanouts: 210err_scanouts:
214 virtio_gpu_ttm_fini(vgdev); 211 virtio_gpu_ttm_fini(vgdev);
215err_ttm: 212err_ttm:
@@ -231,7 +228,7 @@ static void virtio_gpu_cleanup_cap_cache(struct virtio_gpu_device *vgdev)
231 } 228 }
232} 229}
233 230
234void virtio_gpu_driver_unload(struct drm_device *dev) 231void virtio_gpu_deinit(struct drm_device *dev)
235{ 232{
236 struct virtio_gpu_device *vgdev = dev->dev_private; 233 struct virtio_gpu_device *vgdev = dev->dev_private;
237 234
@@ -239,6 +236,7 @@ void virtio_gpu_driver_unload(struct drm_device *dev)
239 flush_work(&vgdev->ctrlq.dequeue_work); 236 flush_work(&vgdev->ctrlq.dequeue_work);
240 flush_work(&vgdev->cursorq.dequeue_work); 237 flush_work(&vgdev->cursorq.dequeue_work);
241 flush_work(&vgdev->config_changed_work); 238 flush_work(&vgdev->config_changed_work);
239 vgdev->vdev->config->reset(vgdev->vdev);
242 vgdev->vdev->config->del_vqs(vgdev->vdev); 240 vgdev->vdev->config->del_vqs(vgdev->vdev);
243 241
244 virtio_gpu_modeset_fini(vgdev); 242 virtio_gpu_modeset_fini(vgdev);