diff options
author | Dave Airlie <airlied@redhat.com> | 2018-11-28 19:21:23 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2018-11-28 19:28:49 -0500 |
commit | 61647c77cb15354a329cbb36fe7a2253b36b51b1 (patch) | |
tree | 59d887f99bc4a2bdddc7cfc1d81794c2a4cdc759 /drivers/gpu/drm/virtio/virtgpu_kms.c | |
parent | 1a31c26ed7b495f152e3103dc7c68e3307a39541 (diff) | |
parent | 08f73d668048ffa3ba6b1426b6ba0a89b16aefd7 (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.c | 8 |
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); |