History

Merge tag 'drm-misc-next-2021-01-06' of git://anongit.freedesktop.org/drm/drm-misc into drm-next

drm-misc-next for v5.12: Core Changes: - Lots of drm documentation updates by Simor Ser. - Require that each crtc has a unique primary plane. - Add fixme that fbdev_generic_setup is confusing. Driver Changes: - Update addresses for TI display drivers maintainers. - Make DRM_VIRTIO_GPU select VIRTIO. - Small fixes to qxl, virtio, hisilicon, tve200, panel/s6e63m0.

Daniel Vetter committed 5 years ago

Commit cb3cfbf2 parents 73dc923 cf9a4be15 files · +174 −99Browse files

Showing the changes to include/uapi (1 of 15 files). Show all

Unified · Split

include/uapi/drm/drm.h+49−48
@@ -1,11 +1,10 @@
1/**1/*
2 * \file drm.h
3 * Header for the Direct Rendering Manager2 * Header for the Direct Rendering Manager
4 *3 *
5 * \author Rickard E. (Rik) Faith <faith@valinux.com>4 * Author: Rickard E. (Rik) Faith <faith@valinux.com>
6 *5 *
7 * \par Acknowledgments:6 * Acknowledgments:
8 * Dec 1999, Richard Henderson <rth@twiddle.net>, move to generic \c cmpxchg.7 * Dec 1999, Richard Henderson <rth@twiddle.net>, move to generic cmpxchg.
9 */8 */
10 9
11/*10/*
@@ -85,7 +84,7 @@ typedef unsigned int drm_context_t; · 73 unmodified lines
85typedef unsigned int drm_drawable_t;84typedef unsigned int drm_drawable_t;
86typedef unsigned int drm_magic_t;85typedef unsigned int drm_magic_t;
87 86
88/**87/*
89 * Cliprect.88 * Cliprect.
90 *89 *
91 * \warning: If you change this structure, make sure you change90 * \warning: If you change this structure, make sure you change
@@ -101,7 +100,7 @@ struct drm_clip_rect { · 9 unmodified lines
101 unsigned short y2;100 unsigned short y2;
102};101};
103 102
104/**103/*
105 * Drawable information.104 * Drawable information.
106 */105 */
107struct drm_drawable_info {106struct drm_drawable_info {
@@ -109,7 +108,7 @@ struct drm_drawable_info { · 1 unmodified line
109 struct drm_clip_rect *rects;108 struct drm_clip_rect *rects;
110};109};
111 110
112/**111/*
113 * Texture region,112 * Texture region,
114 */113 */
115struct drm_tex_region {114struct drm_tex_region {
@@ -120,7 +119,7 @@ struct drm_tex_region { · 4 unmodified lines
120 unsigned int age;119 unsigned int age;
121};120};
122 121
123/**122/*
124 * Hardware lock.123 * Hardware lock.
125 *124 *
126 * The lock structure is a simple cache-line aligned integer. To avoid125 * The lock structure is a simple cache-line aligned integer. To avoid
@@ -132,7 +131,7 @@ struct drm_hw_lock { · 5 unmodified lines
132 char padding[60]; /**< Pad to cache line */131 char padding[60]; /**< Pad to cache line */
133};132};
134 133
135/**134/*
136 * DRM_IOCTL_VERSION ioctl argument type.135 * DRM_IOCTL_VERSION ioctl argument type.
137 *136 *
138 * \sa drmGetVersion().137 * \sa drmGetVersion().
@@ -149,7 +148,7 @@ struct drm_version { · 10 unmodified lines
149 char __user *desc; /**< User-space buffer to hold desc */148 char __user *desc; /**< User-space buffer to hold desc */
150};149};
151 150
152/**151/*
153 * DRM_IOCTL_GET_UNIQUE ioctl argument type.152 * DRM_IOCTL_GET_UNIQUE ioctl argument type.
154 *153 *
155 * \sa drmGetBusid() and drmSetBusId().154 * \sa drmGetBusid() and drmSetBusId().
@@ -168,7 +167,7 @@ struct drm_block { · 12 unmodified lines
168 int unused;167 int unused;
169};168};
170 169
171/**170/*
172 * DRM_IOCTL_CONTROL ioctl argument type.171 * DRM_IOCTL_CONTROL ioctl argument type.
173 *172 *
174 * \sa drmCtlInstHandler() and drmCtlUninstHandler().173 * \sa drmCtlInstHandler() and drmCtlUninstHandler().
@@ -183,7 +182,7 @@ struct drm_control { · 8 unmodified lines
183 int irq;182 int irq;
184};183};
185 184
186/**185/*
187 * Type of memory to map.186 * Type of memory to map.
188 */187 */
189enum drm_map_type {188enum drm_map_type {
@@ -195,7 +194,7 @@ enum drm_map_type { · 5 unmodified lines
195 _DRM_CONSISTENT = 5 /**< Consistent memory for PCI DMA */194 _DRM_CONSISTENT = 5 /**< Consistent memory for PCI DMA */
196};195};
197 196
198/**197/*
199 * Memory mapping flags.198 * Memory mapping flags.
200 */199 */
201enum drm_map_flags {200enum drm_map_flags {
@@ -214,7 +213,7 @@ struct drm_ctx_priv_map { · 12 unmodified lines
214 void *handle; /**< Handle of map */213 void *handle; /**< Handle of map */
215};214};
216 215
217/**216/*
218 * DRM_IOCTL_GET_MAP, DRM_IOCTL_ADD_MAP and DRM_IOCTL_RM_MAP ioctls217 * DRM_IOCTL_GET_MAP, DRM_IOCTL_ADD_MAP and DRM_IOCTL_RM_MAP ioctls
219 * argument type.218 * argument type.
220 *219 *
@@ -231,7 +230,7 @@ struct drm_map { · 10 unmodified lines
231 /* Private data */230 /* Private data */
232};231};
233 232
234/**233/*
235 * DRM_IOCTL_GET_CLIENT ioctl argument type.234 * DRM_IOCTL_GET_CLIENT ioctl argument type.
236 */235 */
237struct drm_client {236struct drm_client {
@@ -263,7 +262,7 @@ enum drm_stat_type { · 25 unmodified lines
263 /* Add to the *END* of the list */262 /* Add to the *END* of the list */
264};263};
265 264
266/**265/*
267 * DRM_IOCTL_GET_STATS ioctl argument type.266 * DRM_IOCTL_GET_STATS ioctl argument type.
268 */267 */
269struct drm_stats {268struct drm_stats {
@@ -274,7 +273,7 @@ struct drm_stats { · 4 unmodified lines
274 } data[15];273 } data[15];
275};274};
276 275
277/**276/*
278 * Hardware locking flags.277 * Hardware locking flags.
279 */278 */
280enum drm_lock_flags {279enum drm_lock_flags {
@@ -289,7 +288,7 @@ enum drm_lock_flags { · 8 unmodified lines
289 _DRM_HALT_CUR_QUEUES = 0x20 /**< Halt all current queues */288 _DRM_HALT_CUR_QUEUES = 0x20 /**< Halt all current queues */
290};289};
291 290
292/**291/*
293 * DRM_IOCTL_LOCK, DRM_IOCTL_UNLOCK and DRM_IOCTL_FINISH ioctl argument type.292 * DRM_IOCTL_LOCK, DRM_IOCTL_UNLOCK and DRM_IOCTL_FINISH ioctl argument type.
294 *293 *
295 * \sa drmGetLock() and drmUnlock().294 * \sa drmGetLock() and drmUnlock().
@@ -299,7 +298,7 @@ struct drm_lock { · 3 unmodified lines
299 enum drm_lock_flags flags;298 enum drm_lock_flags flags;
300};299};
301 300
302/**301/*
303 * DMA flags302 * DMA flags
304 *303 *
305 * \warning304 * \warning
@@ -328,7 +327,7 @@ enum drm_dma_flags { · 22 unmodified lines
328 _DRM_DMA_LARGER_OK = 0x40 /**< Larger-than-requested buffers OK */327 _DRM_DMA_LARGER_OK = 0x40 /**< Larger-than-requested buffers OK */
329};328};
330 329
331/**330/*
332 * DRM_IOCTL_ADD_BUFS and DRM_IOCTL_MARK_BUFS ioctl argument type.331 * DRM_IOCTL_ADD_BUFS and DRM_IOCTL_MARK_BUFS ioctl argument type.
333 *332 *
334 * \sa drmAddBufs().333 * \sa drmAddBufs().
@@ -351,7 +350,7 @@ struct drm_buf_desc { · 16 unmodified lines
351 */350 */
352};351};
353 352
354/**353/*
355 * DRM_IOCTL_INFO_BUFS ioctl argument type.354 * DRM_IOCTL_INFO_BUFS ioctl argument type.
356 */355 */
357struct drm_buf_info {356struct drm_buf_info {
@@ -359,7 +358,7 @@ struct drm_buf_info { · 1 unmodified line
359 struct drm_buf_desc __user *list;358 struct drm_buf_desc __user *list;
360};359};
361 360
362/**361/*
363 * DRM_IOCTL_FREE_BUFS ioctl argument type.362 * DRM_IOCTL_FREE_BUFS ioctl argument type.
364 */363 */
365struct drm_buf_free {364struct drm_buf_free {
@@ -367,7 +366,7 @@ struct drm_buf_free { · 1 unmodified line
367 int __user *list;366 int __user *list;
368};367};
369 368
370/**369/*
371 * Buffer information370 * Buffer information
372 *371 *
373 * \sa drm_buf_map.372 * \sa drm_buf_map.
@@ -379,7 +378,7 @@ struct drm_buf_pub { · 5 unmodified lines
379 void __user *address; /**< Address of buffer */378 void __user *address; /**< Address of buffer */
380};379};
381 380
382/**381/*
383 * DRM_IOCTL_MAP_BUFS ioctl argument type.382 * DRM_IOCTL_MAP_BUFS ioctl argument type.
384 */383 */
385struct drm_buf_map {384struct drm_buf_map {
@@ -392,7 +391,7 @@ struct drm_buf_map { · 6 unmodified lines
392 struct drm_buf_pub __user *list; /**< Buffer information */391 struct drm_buf_pub __user *list; /**< Buffer information */
393};392};
394 393
395/**394/*
396 * DRM_IOCTL_DMA ioctl argument type.395 * DRM_IOCTL_DMA ioctl argument type.
397 *396 *
398 * Indices here refer to the offset into the buffer list in drm_buf_get.397 * Indices here refer to the offset into the buffer list in drm_buf_get.
@@ -417,7 +416,7 @@ enum drm_ctx_flags { · 18 unmodified lines
417 _DRM_CONTEXT_2DONLY = 0x02416 _DRM_CONTEXT_2DONLY = 0x02
418};417};
419 418
420/**419/*
421 * DRM_IOCTL_ADD_CTX ioctl argument type.420 * DRM_IOCTL_ADD_CTX ioctl argument type.
422 *421 *
423 * \sa drmCreateContext() and drmDestroyContext().422 * \sa drmCreateContext() and drmDestroyContext().
@@ -427,7 +426,7 @@ struct drm_ctx { · 3 unmodified lines
427 enum drm_ctx_flags flags;426 enum drm_ctx_flags flags;
428};427};
429 428
430/**429/*
431 * DRM_IOCTL_RES_CTX ioctl argument type.430 * DRM_IOCTL_RES_CTX ioctl argument type.
432 */431 */
433struct drm_ctx_res {432struct drm_ctx_res {
@@ -435,14 +434,14 @@ struct drm_ctx_res { · 1 unmodified line
435 struct drm_ctx __user *contexts;434 struct drm_ctx __user *contexts;
436};435};
437 436
438/**437/*
439 * DRM_IOCTL_ADD_DRAW and DRM_IOCTL_RM_DRAW ioctl argument type.438 * DRM_IOCTL_ADD_DRAW and DRM_IOCTL_RM_DRAW ioctl argument type.
440 */439 */
441struct drm_draw {440struct drm_draw {
442 drm_drawable_t handle;441 drm_drawable_t handle;
443};442};
444 443
445/**444/*
446 * DRM_IOCTL_UPDATE_DRAW ioctl argument type.445 * DRM_IOCTL_UPDATE_DRAW ioctl argument type.
447 */446 */
448typedef enum {447typedef enum {
@@ -456,14 +455,14 @@ struct drm_update_draw { · 7 unmodified lines
456 unsigned long long data;455 unsigned long long data;
457};456};
458 457
459/**458/*
460 * DRM_IOCTL_GET_MAGIC and DRM_IOCTL_AUTH_MAGIC ioctl argument type.459 * DRM_IOCTL_GET_MAGIC and DRM_IOCTL_AUTH_MAGIC ioctl argument type.
461 */460 */
462struct drm_auth {461struct drm_auth {
463 drm_magic_t magic;462 drm_magic_t magic;
464};463};
465 464
466/**465/*
467 * DRM_IOCTL_IRQ_BUSID ioctl argument type.466 * DRM_IOCTL_IRQ_BUSID ioctl argument type.
468 *467 *
469 * \sa drmGetInterruptFromBusID().468 * \sa drmGetInterruptFromBusID().
@@ -505,7 +504,7 @@ struct drm_wait_vblank_reply { · 35 unmodified lines
505 long tval_usec;504 long tval_usec;
506};505};
507 506
508/**507/*
509 * DRM_IOCTL_WAIT_VBLANK ioctl argument type.508 * DRM_IOCTL_WAIT_VBLANK ioctl argument type.
510 *509 *
511 * \sa drmWaitVBlank().510 * \sa drmWaitVBlank().
@@ -518,7 +517,7 @@ union drm_wait_vblank { · 6 unmodified lines
518#define _DRM_PRE_MODESET 1517#define _DRM_PRE_MODESET 1
519#define _DRM_POST_MODESET 2518#define _DRM_POST_MODESET 2
520 519
521/**520/*
522 * DRM_IOCTL_MODESET_CTL ioctl argument type521 * DRM_IOCTL_MODESET_CTL ioctl argument type
523 *522 *
524 * \sa drmModesetCtl().523 * \sa drmModesetCtl().
@@ -528,7 +527,7 @@ struct drm_modeset_ctl { · 3 unmodified lines
528 __u32 cmd;527 __u32 cmd;
529};528};
530 529
531/**530/*
532 * DRM_IOCTL_AGP_ENABLE ioctl argument type.531 * DRM_IOCTL_AGP_ENABLE ioctl argument type.
533 *532 *
534 * \sa drmAgpEnable().533 * \sa drmAgpEnable().
@@ -537,7 +536,7 @@ struct drm_agp_mode { · 2 unmodified lines
537 unsigned long mode; /**< AGP mode */536 unsigned long mode; /**< AGP mode */
538};537};
539 538
540/**539/*
541 * DRM_IOCTL_AGP_ALLOC and DRM_IOCTL_AGP_FREE ioctls argument type.540 * DRM_IOCTL_AGP_ALLOC and DRM_IOCTL_AGP_FREE ioctls argument type.
542 *541 *
543 * \sa drmAgpAlloc() and drmAgpFree().542 * \sa drmAgpAlloc() and drmAgpFree().
@@ -549,7 +548,7 @@ struct drm_agp_buffer { · 5 unmodified lines
549 unsigned long physical; /**< Physical used by i810 */548 unsigned long physical; /**< Physical used by i810 */
550};549};
551 550
552/**551/*
553 * DRM_IOCTL_AGP_BIND and DRM_IOCTL_AGP_UNBIND ioctls argument type.552 * DRM_IOCTL_AGP_BIND and DRM_IOCTL_AGP_UNBIND ioctls argument type.
554 *553 *
555 * \sa drmAgpBind() and drmAgpUnbind().554 * \sa drmAgpBind() and drmAgpUnbind().
@@ -559,7 +558,7 @@ struct drm_agp_binding { · 3 unmodified lines
559 unsigned long offset; /**< In bytes -- will round to page boundary */558 unsigned long offset; /**< In bytes -- will round to page boundary */
560};559};
561 560
562/**561/*
563 * DRM_IOCTL_AGP_INFO ioctl argument type.562 * DRM_IOCTL_AGP_INFO ioctl argument type.
564 *563 *
565 * \sa drmAgpVersionMajor(), drmAgpVersionMinor(), drmAgpGetMode(),564 * \sa drmAgpVersionMajor(), drmAgpVersionMinor(), drmAgpGetMode(),
@@ -580,7 +579,7 @@ struct drm_agp_info { · 14 unmodified lines
580 unsigned short id_device;579 unsigned short id_device;
581};580};
582 581
583/**582/*
584 * DRM_IOCTL_SG_ALLOC ioctl argument type.583 * DRM_IOCTL_SG_ALLOC ioctl argument type.
585 */584 */
586struct drm_scatter_gather {585struct drm_scatter_gather {
@@ -588,7 +587,7 @@ struct drm_scatter_gather { · 1 unmodified line
588 unsigned long handle; /**< Used for mapping / unmapping */587 unsigned long handle; /**< Used for mapping / unmapping */
589};588};
590 589
591/**590/*
592 * DRM_IOCTL_SET_VERSION ioctl argument type.591 * DRM_IOCTL_SET_VERSION ioctl argument type.
593 */592 */
594struct drm_set_version {593struct drm_set_version {
@@ -598,14 +597,14 @@ struct drm_set_version { · 3 unmodified lines
598 int drm_dd_minor;597 int drm_dd_minor;
599};598};
600 599
601/** DRM_IOCTL_GEM_CLOSE ioctl argument type */600/* DRM_IOCTL_GEM_CLOSE ioctl argument type */
602struct drm_gem_close {601struct drm_gem_close {
603 /** Handle of the object to be closed. */602 /** Handle of the object to be closed. */
604 __u32 handle;603 __u32 handle;
605 __u32 pad;604 __u32 pad;
606};605};
607 606
608/** DRM_IOCTL_GEM_FLINK ioctl argument type */607/* DRM_IOCTL_GEM_FLINK ioctl argument type */
609struct drm_gem_flink {608struct drm_gem_flink {
610 /** Handle for the object being named */609 /** Handle for the object being named */
611 __u32 handle;610 __u32 handle;
@@ -614,7 +613,7 @@ struct drm_gem_flink { · 2 unmodified lines
614 __u32 name;613 __u32 name;
615};614};
616 615
617/** DRM_IOCTL_GEM_OPEN ioctl argument type */616/* DRM_IOCTL_GEM_OPEN ioctl argument type */
618struct drm_gem_open {617struct drm_gem_open {
619 /** Name of object being opened */618 /** Name of object being opened */
620 __u32 name;619 __u32 name;
@@ -652,7 +651,7 @@ struct drm_gem_open { · 31 unmodified lines
652#define DRM_CAP_SYNCOBJ 0x13651#define DRM_CAP_SYNCOBJ 0x13
653#define DRM_CAP_SYNCOBJ_TIMELINE 0x14652#define DRM_CAP_SYNCOBJ_TIMELINE 0x14
654 653
655/** DRM_IOCTL_GET_CAP ioctl argument type */654/* DRM_IOCTL_GET_CAP ioctl argument type */
656struct drm_get_cap {655struct drm_get_cap {
657 __u64 capability;656 __u64 capability;
658 __u64 value;657 __u64 value;
@@ -678,7 +677,9 @@ struct drm_get_cap { · 19 unmodified lines
678/**677/**
679 * DRM_CLIENT_CAP_ATOMIC678 * DRM_CLIENT_CAP_ATOMIC
680 *679 *
681 * If set to 1, the DRM core will expose atomic properties to userspace680 * If set to 1, the DRM core will expose atomic properties to userspace. This
681 * implicitly enables &DRM_CLIENT_CAP_UNIVERSAL_PLANES and
682 * &DRM_CLIENT_CAP_ASPECT_RATIO.
682 */683 */
683#define DRM_CLIENT_CAP_ATOMIC 3684#define DRM_CLIENT_CAP_ATOMIC 3
684 685
@@ -698,7 +699,7 @@ struct drm_get_cap { · 13 unmodified lines
698 */699 */
699#define DRM_CLIENT_CAP_WRITEBACK_CONNECTORS 5700#define DRM_CLIENT_CAP_WRITEBACK_CONNECTORS 5
700 701
701/** DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */702/* DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */
702struct drm_set_client_cap {703struct drm_set_client_cap {
703 __u64 capability;704 __u64 capability;
704 __u64 value;705 __u64 value;
@@ -950,7 +951,7 @@ extern "C" { · 245 unmodified lines
950 951
951#define DRM_IOCTL_MODE_GETFB2 DRM_IOWR(0xCE, struct drm_mode_fb_cmd2)952#define DRM_IOCTL_MODE_GETFB2 DRM_IOWR(0xCE, struct drm_mode_fb_cmd2)
952 953
953/**954/*
954 * Device specific ioctls should only be in their respective headers955 * Device specific ioctls should only be in their respective headers
955 * The device specific ioctl range is from 0x40 to 0x9f.956 * The device specific ioctl range is from 0x40 to 0x9f.
956 * Generic IOCTLS restart at 0xA0.957 * Generic IOCTLS restart at 0xA0.
@@ -961,7 +962,7 @@ extern "C" { · 4 unmodified lines
961#define DRM_COMMAND_BASE 0x40962#define DRM_COMMAND_BASE 0x40
962#define DRM_COMMAND_END 0xA0963#define DRM_COMMAND_END 0xA0
963 964
964/**965/*
965 * Header for events written back to userspace on the drm fd. The966 * Header for events written back to userspace on the drm fd. The
966 * type defines the type of event, the length specifies the total967 * type defines the type of event, the length specifies the total
967 * length of the event (including the header), and user_data is968 * length of the event (including the header), and user_data is