aboutsummaryrefslogtreecommitdiffstats
path: root/include
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 /include
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 'include')
-rw-r--r--include/drm/drm_connector.h24
-rw-r--r--include/drm/drm_drv.h10
-rw-r--r--include/drm/drm_framebuffer.h24
-rw-r--r--include/drm/drm_gem.h50
-rw-r--r--include/uapi/drm/v3d_drm.h4
-rw-r--r--include/uapi/linux/virtio_gpu.h18
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 */
1220static 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 */
1232static 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
626void drm_dev_get(struct drm_device *dev); 631void drm_dev_get(struct drm_device *dev);
627void drm_dev_put(struct drm_device *dev); 632void drm_dev_put(struct drm_device *dev);
628void drm_dev_unref(struct drm_device *dev);
629void drm_put_dev(struct drm_device *dev); 633void drm_put_dev(struct drm_device *dev);
630bool drm_dev_enter(struct drm_device *dev, int *idx); 634bool drm_dev_enter(struct drm_device *dev, int *idx);
631void drm_dev_exit(int idx); 635void 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 */
250static 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 */
262static 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)
348void drm_gem_object_put_unlocked(struct drm_gem_object *obj); 348void drm_gem_object_put_unlocked(struct drm_gem_object *obj);
349void drm_gem_object_put(struct drm_gem_object *obj); 349void 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 */
358static 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 */
371static 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 */
383static inline void
384drm_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 */
396static inline void drm_gem_object_unreference(struct drm_gem_object *obj)
397{
398 drm_gem_object_put(obj);
399}
400
401int drm_gem_handle_create(struct drm_file *file_priv, 351int 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
45enum virtio_gpu_ctrl_type { 46enum 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 */
298struct 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 */
305struct 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
296struct virtio_gpu_config { 314struct virtio_gpu_config {