aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/virtio/virtgpu_kms.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2018-11-28 19:21:23 -0500
committerDave Airlie <airlied@redhat.com>2018-11-28 19:28:49 -0500
commit61647c77cb15354a329cbb36fe7a2253b36b51b1 (patch)
tree59d887f99bc4a2bdddc7cfc1d81794c2a4cdc759 /drivers/gpu/drm/virtio/virtgpu_kms.c
parent1a31c26ed7b495f152e3103dc7c68e3307a39541 (diff)
parent08f73d668048ffa3ba6b1426b6ba0a89b16aefd7 (diff)
Merge tag 'drm-misc-next-2018-11-28' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
drm-misc-next for v4.21: Core Changes: - Merge drm_info.c into drm_debugfs.c - Complete the fake drm_crtc_commit's hw_done/flip_done sooner. - Remove deprecated drm_obj_ref/unref functions. All drivers use get/put now. - Decrease stack use of drm_gem_prime_mmap. - Improve documentation for dumb callbacks. Driver Changes: - Add edid support to virtio. - Wait on implicit fence in meson and sun4i. - Add support for BGRX8888 to sun4i. - Preparation patches for sun4i driver to start supporting linear and tiled YUV formats. - Add support for HDMI 1.4 4k modes to meson, and support for VIC alternate timings. - Drop custom dumb_map in vkms. - Small fixes and cleanups to v3d. Signed-off-by: Dave Airlie <airlied@redhat.com> From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/151a3270-b1be-ed75-bd58-6b29d741f592@linux.intel.com
Diffstat (limited to 'drivers/gpu/drm/virtio/virtgpu_kms.c')
-rw-r--r--drivers/gpu/drm/virtio/virtgpu_kms.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/virtio/virtgpu_kms.c b/drivers/gpu/drm/virtio/virtgpu_kms.c
index 691b842d5f3a..3af6181c05a8 100644
--- a/drivers/gpu/drm/virtio/virtgpu_kms.c
+++ b/drivers/gpu/drm/virtio/virtgpu_kms.c
@@ -44,6 +44,8 @@ static void virtio_gpu_config_changed_work_func(struct work_struct *work)
44 virtio_cread(vgdev->vdev, struct virtio_gpu_config, 44 virtio_cread(vgdev->vdev, struct virtio_gpu_config,
45 events_read, &events_read); 45 events_read, &events_read);
46 if (events_read & VIRTIO_GPU_EVENT_DISPLAY) { 46 if (events_read & VIRTIO_GPU_EVENT_DISPLAY) {
47 if (vgdev->has_edid)
48 virtio_gpu_cmd_get_edids(vgdev);
47 virtio_gpu_cmd_get_display_info(vgdev); 49 virtio_gpu_cmd_get_display_info(vgdev);
48 drm_helper_hpd_irq_event(vgdev->ddev); 50 drm_helper_hpd_irq_event(vgdev->ddev);
49 events_clear |= VIRTIO_GPU_EVENT_DISPLAY; 51 events_clear |= VIRTIO_GPU_EVENT_DISPLAY;
@@ -156,6 +158,10 @@ int virtio_gpu_driver_load(struct drm_device *dev, unsigned long flags)
156#else 158#else
157 DRM_INFO("virgl 3d acceleration not supported by guest\n"); 159 DRM_INFO("virgl 3d acceleration not supported by guest\n");
158#endif 160#endif
161 if (virtio_has_feature(vgdev->vdev, VIRTIO_GPU_F_EDID)) {
162 vgdev->has_edid = true;
163 DRM_INFO("EDID support available.\n");
164 }
159 165
160 ret = virtio_find_vqs(vgdev->vdev, 2, vqs, callbacks, names, NULL); 166 ret = virtio_find_vqs(vgdev->vdev, 2, vqs, callbacks, names, NULL);
161 if (ret) { 167 if (ret) {
@@ -201,6 +207,8 @@ int virtio_gpu_driver_load(struct drm_device *dev, unsigned long flags)
201 207
202 if (num_capsets) 208 if (num_capsets)
203 virtio_gpu_get_capsets(vgdev, num_capsets); 209 virtio_gpu_get_capsets(vgdev, num_capsets);
210 if (vgdev->has_edid)
211 virtio_gpu_cmd_get_edids(vgdev);
204 virtio_gpu_cmd_get_display_info(vgdev); 212 virtio_gpu_cmd_get_display_info(vgdev);
205 wait_event_timeout(vgdev->resp_wq, !vgdev->display_info_pending, 213 wait_event_timeout(vgdev->resp_wq, !vgdev->display_info_pending,
206 5 * HZ); 214 5 * HZ);