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 /include | |
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 'include')
-rw-r--r-- | include/drm/drm_connector.h | 24 | ||||
-rw-r--r-- | include/drm/drm_drv.h | 10 | ||||
-rw-r--r-- | include/drm/drm_framebuffer.h | 24 | ||||
-rw-r--r-- | include/drm/drm_gem.h | 50 | ||||
-rw-r--r-- | include/uapi/drm/v3d_drm.h | 4 | ||||
-rw-r--r-- | include/uapi/linux/virtio_gpu.h | 18 |
6 files changed, 27 insertions, 103 deletions
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h index af0a761f52f0..665b9cae7f43 100644 --- a/include/drm/drm_connector.h +++ b/include/drm/drm_connector.h | |||
@@ -1211,30 +1211,6 @@ static inline void drm_connector_put(struct drm_connector *connector) | |||
1211 | } | 1211 | } |
1212 | 1212 | ||
1213 | /** | 1213 | /** |
1214 | * drm_connector_reference - acquire a connector reference | ||
1215 | * @connector: DRM connector | ||
1216 | * | ||
1217 | * This is a compatibility alias for drm_connector_get() and should not be | ||
1218 | * used by new code. | ||
1219 | */ | ||
1220 | static inline void drm_connector_reference(struct drm_connector *connector) | ||
1221 | { | ||
1222 | drm_connector_get(connector); | ||
1223 | } | ||
1224 | |||
1225 | /** | ||
1226 | * drm_connector_unreference - release a connector reference | ||
1227 | * @connector: DRM connector | ||
1228 | * | ||
1229 | * This is a compatibility alias for drm_connector_put() and should not be | ||
1230 | * used by new code. | ||
1231 | */ | ||
1232 | static inline void drm_connector_unreference(struct drm_connector *connector) | ||
1233 | { | ||
1234 | drm_connector_put(connector); | ||
1235 | } | ||
1236 | |||
1237 | /** | ||
1238 | * drm_connector_is_unregistered - has the connector been unregistered from | 1214 | * drm_connector_is_unregistered - has the connector been unregistered from |
1239 | * userspace? | 1215 | * userspace? |
1240 | * @connector: DRM connector | 1216 | * @connector: DRM connector |
diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h index dbb2f6ad184a..35af23f5fa0d 100644 --- a/include/drm/drm_drv.h +++ b/include/drm/drm_drv.h | |||
@@ -527,8 +527,10 @@ struct drm_driver { | |||
527 | * @dumb_map_offset: | 527 | * @dumb_map_offset: |
528 | * | 528 | * |
529 | * Allocate an offset in the drm device node's address space to be able to | 529 | * Allocate an offset in the drm device node's address space to be able to |
530 | * memory map a dumb buffer. GEM-based drivers must use | 530 | * memory map a dumb buffer. |
531 | * drm_gem_create_mmap_offset() to implement this. | 531 | * |
532 | * The default implementation is drm_gem_create_mmap_offset(). GEM based | ||
533 | * drivers must not overwrite this. | ||
532 | * | 534 | * |
533 | * Called by the user via ioctl. | 535 | * Called by the user via ioctl. |
534 | * | 536 | * |
@@ -548,6 +550,9 @@ struct drm_driver { | |||
548 | * | 550 | * |
549 | * Called by the user via ioctl. | 551 | * Called by the user via ioctl. |
550 | * | 552 | * |
553 | * The default implementation is drm_gem_dumb_destroy(). GEM based drivers | ||
554 | * must not overwrite this. | ||
555 | * | ||
551 | * Returns: | 556 | * Returns: |
552 | * | 557 | * |
553 | * Zero on success, negative errno on failure. | 558 | * Zero on success, negative errno on failure. |
@@ -625,7 +630,6 @@ void drm_dev_unregister(struct drm_device *dev); | |||
625 | 630 | ||
626 | void drm_dev_get(struct drm_device *dev); | 631 | void drm_dev_get(struct drm_device *dev); |
627 | void drm_dev_put(struct drm_device *dev); | 632 | void drm_dev_put(struct drm_device *dev); |
628 | void drm_dev_unref(struct drm_device *dev); | ||
629 | void drm_put_dev(struct drm_device *dev); | 633 | void drm_put_dev(struct drm_device *dev); |
630 | bool drm_dev_enter(struct drm_device *dev, int *idx); | 634 | bool drm_dev_enter(struct drm_device *dev, int *idx); |
631 | void drm_dev_exit(int idx); | 635 | void drm_dev_exit(int idx); |
diff --git a/include/drm/drm_framebuffer.h b/include/drm/drm_framebuffer.h index c50502c656e5..c94acedfb08e 100644 --- a/include/drm/drm_framebuffer.h +++ b/include/drm/drm_framebuffer.h | |||
@@ -241,30 +241,6 @@ static inline void drm_framebuffer_put(struct drm_framebuffer *fb) | |||
241 | } | 241 | } |
242 | 242 | ||
243 | /** | 243 | /** |
244 | * drm_framebuffer_reference - acquire a framebuffer reference | ||
245 | * @fb: DRM framebuffer | ||
246 | * | ||
247 | * This is a compatibility alias for drm_framebuffer_get() and should not be | ||
248 | * used by new code. | ||
249 | */ | ||
250 | static inline void drm_framebuffer_reference(struct drm_framebuffer *fb) | ||
251 | { | ||
252 | drm_framebuffer_get(fb); | ||
253 | } | ||
254 | |||
255 | /** | ||
256 | * drm_framebuffer_unreference - release a framebuffer reference | ||
257 | * @fb: DRM framebuffer | ||
258 | * | ||
259 | * This is a compatibility alias for drm_framebuffer_put() and should not be | ||
260 | * used by new code. | ||
261 | */ | ||
262 | static inline void drm_framebuffer_unreference(struct drm_framebuffer *fb) | ||
263 | { | ||
264 | drm_framebuffer_put(fb); | ||
265 | } | ||
266 | |||
267 | /** | ||
268 | * drm_framebuffer_read_refcount - read the framebuffer reference count. | 244 | * drm_framebuffer_read_refcount - read the framebuffer reference count. |
269 | * @fb: framebuffer | 245 | * @fb: framebuffer |
270 | * | 246 | * |
diff --git a/include/drm/drm_gem.h b/include/drm/drm_gem.h index f466ce5bde0e..c95727425284 100644 --- a/include/drm/drm_gem.h +++ b/include/drm/drm_gem.h | |||
@@ -348,56 +348,6 @@ __drm_gem_object_put(struct drm_gem_object *obj) | |||
348 | void drm_gem_object_put_unlocked(struct drm_gem_object *obj); | 348 | void drm_gem_object_put_unlocked(struct drm_gem_object *obj); |
349 | void drm_gem_object_put(struct drm_gem_object *obj); | 349 | void drm_gem_object_put(struct drm_gem_object *obj); |
350 | 350 | ||
351 | /** | ||
352 | * drm_gem_object_reference - acquire a GEM buffer object reference | ||
353 | * @obj: GEM buffer object | ||
354 | * | ||
355 | * This is a compatibility alias for drm_gem_object_get() and should not be | ||
356 | * used by new code. | ||
357 | */ | ||
358 | static inline void drm_gem_object_reference(struct drm_gem_object *obj) | ||
359 | { | ||
360 | drm_gem_object_get(obj); | ||
361 | } | ||
362 | |||
363 | /** | ||
364 | * __drm_gem_object_unreference - raw function to release a GEM buffer object | ||
365 | * reference | ||
366 | * @obj: GEM buffer object | ||
367 | * | ||
368 | * This is a compatibility alias for __drm_gem_object_put() and should not be | ||
369 | * used by new code. | ||
370 | */ | ||
371 | static inline void __drm_gem_object_unreference(struct drm_gem_object *obj) | ||
372 | { | ||
373 | __drm_gem_object_put(obj); | ||
374 | } | ||
375 | |||
376 | /** | ||
377 | * drm_gem_object_unreference_unlocked - release a GEM buffer object reference | ||
378 | * @obj: GEM buffer object | ||
379 | * | ||
380 | * This is a compatibility alias for drm_gem_object_put_unlocked() and should | ||
381 | * not be used by new code. | ||
382 | */ | ||
383 | static inline void | ||
384 | drm_gem_object_unreference_unlocked(struct drm_gem_object *obj) | ||
385 | { | ||
386 | drm_gem_object_put_unlocked(obj); | ||
387 | } | ||
388 | |||
389 | /** | ||
390 | * drm_gem_object_unreference - release a GEM buffer object reference | ||
391 | * @obj: GEM buffer object | ||
392 | * | ||
393 | * This is a compatibility alias for drm_gem_object_put() and should not be | ||
394 | * used by new code. | ||
395 | */ | ||
396 | static inline void drm_gem_object_unreference(struct drm_gem_object *obj) | ||
397 | { | ||
398 | drm_gem_object_put(obj); | ||
399 | } | ||
400 | |||
401 | int drm_gem_handle_create(struct drm_file *file_priv, | 351 | int drm_gem_handle_create(struct drm_file *file_priv, |
402 | struct drm_gem_object *obj, | 352 | struct drm_gem_object *obj, |
403 | u32 *handlep); | 353 | u32 *handlep); |
diff --git a/include/uapi/drm/v3d_drm.h b/include/uapi/drm/v3d_drm.h index f446656d00b1..b1e5de076b0f 100644 --- a/include/uapi/drm/v3d_drm.h +++ b/include/uapi/drm/v3d_drm.h | |||
@@ -66,7 +66,7 @@ struct drm_v3d_submit_cl { | |||
66 | */ | 66 | */ |
67 | __u32 bcl_start; | 67 | __u32 bcl_start; |
68 | 68 | ||
69 | /** End address of the BCL (first byte after the BCL) */ | 69 | /** End address of the BCL (first byte after the BCL) */ |
70 | __u32 bcl_end; | 70 | __u32 bcl_end; |
71 | 71 | ||
72 | /* Offset of the render command list. | 72 | /* Offset of the render command list. |
@@ -82,7 +82,7 @@ struct drm_v3d_submit_cl { | |||
82 | */ | 82 | */ |
83 | __u32 rcl_start; | 83 | __u32 rcl_start; |
84 | 84 | ||
85 | /** End address of the RCL (first byte after the RCL) */ | 85 | /** End address of the RCL (first byte after the RCL) */ |
86 | __u32 rcl_end; | 86 | __u32 rcl_end; |
87 | 87 | ||
88 | /** An optional sync object to wait on before starting the BCL. */ | 88 | /** An optional sync object to wait on before starting the BCL. */ |
diff --git a/include/uapi/linux/virtio_gpu.h b/include/uapi/linux/virtio_gpu.h index f43c3c6171ff..8e88eba1fa7a 100644 --- a/include/uapi/linux/virtio_gpu.h +++ b/include/uapi/linux/virtio_gpu.h | |||
@@ -41,6 +41,7 @@ | |||
41 | #include <linux/types.h> | 41 | #include <linux/types.h> |
42 | 42 | ||
43 | #define VIRTIO_GPU_F_VIRGL 0 | 43 | #define VIRTIO_GPU_F_VIRGL 0 |
44 | #define VIRTIO_GPU_F_EDID 1 | ||
44 | 45 | ||
45 | enum virtio_gpu_ctrl_type { | 46 | enum virtio_gpu_ctrl_type { |
46 | VIRTIO_GPU_UNDEFINED = 0, | 47 | VIRTIO_GPU_UNDEFINED = 0, |
@@ -56,6 +57,7 @@ enum virtio_gpu_ctrl_type { | |||
56 | VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING, | 57 | VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING, |
57 | VIRTIO_GPU_CMD_GET_CAPSET_INFO, | 58 | VIRTIO_GPU_CMD_GET_CAPSET_INFO, |
58 | VIRTIO_GPU_CMD_GET_CAPSET, | 59 | VIRTIO_GPU_CMD_GET_CAPSET, |
60 | VIRTIO_GPU_CMD_GET_EDID, | ||
59 | 61 | ||
60 | /* 3d commands */ | 62 | /* 3d commands */ |
61 | VIRTIO_GPU_CMD_CTX_CREATE = 0x0200, | 63 | VIRTIO_GPU_CMD_CTX_CREATE = 0x0200, |
@@ -76,6 +78,7 @@ enum virtio_gpu_ctrl_type { | |||
76 | VIRTIO_GPU_RESP_OK_DISPLAY_INFO, | 78 | VIRTIO_GPU_RESP_OK_DISPLAY_INFO, |
77 | VIRTIO_GPU_RESP_OK_CAPSET_INFO, | 79 | VIRTIO_GPU_RESP_OK_CAPSET_INFO, |
78 | VIRTIO_GPU_RESP_OK_CAPSET, | 80 | VIRTIO_GPU_RESP_OK_CAPSET, |
81 | VIRTIO_GPU_RESP_OK_EDID, | ||
79 | 82 | ||
80 | /* error responses */ | 83 | /* error responses */ |
81 | VIRTIO_GPU_RESP_ERR_UNSPEC = 0x1200, | 84 | VIRTIO_GPU_RESP_ERR_UNSPEC = 0x1200, |
@@ -291,6 +294,21 @@ struct virtio_gpu_resp_capset { | |||
291 | __u8 capset_data[]; | 294 | __u8 capset_data[]; |
292 | }; | 295 | }; |
293 | 296 | ||
297 | /* VIRTIO_GPU_CMD_GET_EDID */ | ||
298 | struct virtio_gpu_cmd_get_edid { | ||
299 | struct virtio_gpu_ctrl_hdr hdr; | ||
300 | __le32 scanout; | ||
301 | __le32 padding; | ||
302 | }; | ||
303 | |||
304 | /* VIRTIO_GPU_RESP_OK_EDID */ | ||
305 | struct virtio_gpu_resp_edid { | ||
306 | struct virtio_gpu_ctrl_hdr hdr; | ||
307 | __le32 size; | ||
308 | __le32 padding; | ||
309 | __u8 edid[1024]; | ||
310 | }; | ||
311 | |||
294 | #define VIRTIO_GPU_EVENT_DISPLAY (1 << 0) | 312 | #define VIRTIO_GPU_EVENT_DISPLAY (1 << 0) |
295 | 313 | ||
296 | struct virtio_gpu_config { | 314 | struct virtio_gpu_config { |