blob: 2d85a146a1efd0ea111507eb21773cd283246491 [file] [log] [blame]
Ben Cheng655a7c02013-10-16 16:09:24 -07001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 *** To edit the content of this header, modify the corresponding
11 *** source file (e.g. under external/kernel-headers/original/) then
12 *** run bionic/libc/kernel/tools/update_all.py
13 ***
14 *** Any manual change here will be lost the next time this script will
15 *** be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef _UAPI_TEGRA_DRM_H_
20#define _UAPI_TEGRA_DRM_H_
Christopher Ferris106b3a82016-08-24 12:15:38 -070021#include "drm.h"
22#ifdef __cplusplus
Christopher Ferris38062f92014-07-09 15:33:25 -070023/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -070024#endif
25#define DRM_TEGRA_GEM_CREATE_TILED (1 << 0)
Christopher Ferris38062f92014-07-09 15:33:25 -070026#define DRM_TEGRA_GEM_CREATE_BOTTOM_UP (1 << 1)
Ben Cheng655a7c02013-10-16 16:09:24 -070027struct drm_tegra_gem_create {
Christopher Ferris106b3a82016-08-24 12:15:38 -070028/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -080029 __u64 size;
30 __u32 flags;
Tao Baod7db5942015-01-28 10:07:51 -080031 __u32 handle;
Ben Cheng655a7c02013-10-16 16:09:24 -070032};
Christopher Ferris106b3a82016-08-24 12:15:38 -070033/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -070034struct drm_tegra_gem_mmap {
Tao Baod7db5942015-01-28 10:07:51 -080035 __u32 handle;
Christopher Ferris05d08e92016-02-04 13:16:38 -080036 __u32 pad;
37 __u64 offset;
Christopher Ferris106b3a82016-08-24 12:15:38 -070038/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -070039};
Ben Cheng655a7c02013-10-16 16:09:24 -070040struct drm_tegra_syncpt_read {
Christopher Ferris05d08e92016-02-04 13:16:38 -080041 __u32 id;
Tao Baod7db5942015-01-28 10:07:51 -080042 __u32 value;
Christopher Ferris106b3a82016-08-24 12:15:38 -070043/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -070044};
Ben Cheng655a7c02013-10-16 16:09:24 -070045struct drm_tegra_syncpt_incr {
Christopher Ferris05d08e92016-02-04 13:16:38 -080046 __u32 id;
Tao Baod7db5942015-01-28 10:07:51 -080047 __u32 pad;
Christopher Ferris106b3a82016-08-24 12:15:38 -070048/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -070049};
Ben Cheng655a7c02013-10-16 16:09:24 -070050struct drm_tegra_syncpt_wait {
Christopher Ferris05d08e92016-02-04 13:16:38 -080051 __u32 id;
Tao Baod7db5942015-01-28 10:07:51 -080052 __u32 thresh;
Christopher Ferris106b3a82016-08-24 12:15:38 -070053/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -080054 __u32 timeout;
55 __u32 value;
Christopher Ferris05d08e92016-02-04 13:16:38 -080056};
Ben Cheng655a7c02013-10-16 16:09:24 -070057#define DRM_TEGRA_NO_TIMEOUT (0xffffffff)
Christopher Ferris106b3a82016-08-24 12:15:38 -070058/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -070059struct drm_tegra_open_channel {
Tao Baod7db5942015-01-28 10:07:51 -080060 __u32 client;
Christopher Ferris05d08e92016-02-04 13:16:38 -080061 __u32 pad;
Tao Baod7db5942015-01-28 10:07:51 -080062 __u64 context;
Christopher Ferris106b3a82016-08-24 12:15:38 -070063/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -070064};
Ben Cheng655a7c02013-10-16 16:09:24 -070065struct drm_tegra_close_channel {
Christopher Ferris05d08e92016-02-04 13:16:38 -080066 __u64 context;
Ben Cheng655a7c02013-10-16 16:09:24 -070067};
Christopher Ferris106b3a82016-08-24 12:15:38 -070068/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -070069struct drm_tegra_get_syncpt {
Tao Baod7db5942015-01-28 10:07:51 -080070 __u64 context;
Christopher Ferris05d08e92016-02-04 13:16:38 -080071 __u32 index;
Tao Baod7db5942015-01-28 10:07:51 -080072 __u32 id;
Christopher Ferris106b3a82016-08-24 12:15:38 -070073/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris38062f92014-07-09 15:33:25 -070074};
75struct drm_tegra_get_syncpt_base {
Christopher Ferris05d08e92016-02-04 13:16:38 -080076 __u64 context;
Tao Baod7db5942015-01-28 10:07:51 -080077 __u32 syncpt;
Christopher Ferris106b3a82016-08-24 12:15:38 -070078/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -080079 __u32 id;
Ben Cheng655a7c02013-10-16 16:09:24 -070080};
Christopher Ferris05d08e92016-02-04 13:16:38 -080081struct drm_tegra_syncpt {
Tao Baod7db5942015-01-28 10:07:51 -080082 __u32 id;
Christopher Ferris106b3a82016-08-24 12:15:38 -070083/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -080084 __u32 incrs;
Ben Cheng655a7c02013-10-16 16:09:24 -070085};
Christopher Ferris05d08e92016-02-04 13:16:38 -080086struct drm_tegra_cmdbuf {
Tao Baod7db5942015-01-28 10:07:51 -080087 __u32 handle;
Christopher Ferris106b3a82016-08-24 12:15:38 -070088/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -080089 __u32 offset;
90 __u32 words;
Christopher Ferris05d08e92016-02-04 13:16:38 -080091 __u32 pad;
Ben Cheng655a7c02013-10-16 16:09:24 -070092};
Christopher Ferris106b3a82016-08-24 12:15:38 -070093/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -070094struct drm_tegra_reloc {
Tao Baod7db5942015-01-28 10:07:51 -080095 struct {
Christopher Ferris05d08e92016-02-04 13:16:38 -080096 __u32 handle;
Tao Baod7db5942015-01-28 10:07:51 -080097 __u32 offset;
Christopher Ferris106b3a82016-08-24 12:15:38 -070098/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -080099 } cmdbuf;
100 struct {
Christopher Ferris05d08e92016-02-04 13:16:38 -0800101 __u32 handle;
Tao Baod7db5942015-01-28 10:07:51 -0800102 __u32 offset;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800104 } target;
105 __u32 shift;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800106 __u32 pad;
Ben Cheng655a7c02013-10-16 16:09:24 -0700107};
Christopher Ferris106b3a82016-08-24 12:15:38 -0700108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700109struct drm_tegra_waitchk {
Tao Baod7db5942015-01-28 10:07:51 -0800110 __u32 handle;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800111 __u32 offset;
Tao Baod7db5942015-01-28 10:07:51 -0800112 __u32 syncpt;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800114 __u32 thresh;
Ben Cheng655a7c02013-10-16 16:09:24 -0700115};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800116struct drm_tegra_submit {
Tao Baod7db5942015-01-28 10:07:51 -0800117 __u64 context;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800119 __u32 num_syncpts;
120 __u32 num_cmdbufs;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800121 __u32 num_relocs;
Tao Baod7db5942015-01-28 10:07:51 -0800122 __u32 num_waitchks;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800124 __u32 waitchk_mask;
125 __u32 timeout;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800126 __u64 syncpts;
Tao Baod7db5942015-01-28 10:07:51 -0800127 __u64 cmdbufs;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800129 __u64 relocs;
130 __u64 waitchks;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800131 __u32 fence;
Tao Baod7db5942015-01-28 10:07:51 -0800132 __u32 reserved[5];
Christopher Ferris106b3a82016-08-24 12:15:38 -0700133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700134};
Christopher Ferris82d75042015-01-26 10:57:07 -0800135#define DRM_TEGRA_GEM_TILING_MODE_PITCH 0
Christopher Ferris05d08e92016-02-04 13:16:38 -0800136#define DRM_TEGRA_GEM_TILING_MODE_TILED 1
Christopher Ferris82d75042015-01-26 10:57:07 -0800137#define DRM_TEGRA_GEM_TILING_MODE_BLOCK 2
Christopher Ferris106b3a82016-08-24 12:15:38 -0700138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris82d75042015-01-26 10:57:07 -0800139struct drm_tegra_gem_set_tiling {
Tao Baod7db5942015-01-28 10:07:51 -0800140 __u32 handle;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800141 __u32 mode;
Tao Baod7db5942015-01-28 10:07:51 -0800142 __u32 value;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800144 __u32 pad;
Christopher Ferris82d75042015-01-26 10:57:07 -0800145};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800146struct drm_tegra_gem_get_tiling {
Tao Baod7db5942015-01-28 10:07:51 -0800147 __u32 handle;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800149 __u32 mode;
150 __u32 value;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800151 __u32 pad;
Christopher Ferris82d75042015-01-26 10:57:07 -0800152};
Christopher Ferris106b3a82016-08-24 12:15:38 -0700153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris82d75042015-01-26 10:57:07 -0800154#define DRM_TEGRA_GEM_BOTTOM_UP (1 << 0)
155#define DRM_TEGRA_GEM_FLAGS (DRM_TEGRA_GEM_BOTTOM_UP)
156struct drm_tegra_gem_set_flags {
Tao Baod7db5942015-01-28 10:07:51 -0800157 __u32 handle;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800159 __u32 flags;
Christopher Ferris82d75042015-01-26 10:57:07 -0800160};
161struct drm_tegra_gem_get_flags {
Tao Baod7db5942015-01-28 10:07:51 -0800162 __u32 handle;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800164 __u32 flags;
Christopher Ferris82d75042015-01-26 10:57:07 -0800165};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800166#define DRM_TEGRA_GEM_CREATE 0x00
Christopher Ferris82d75042015-01-26 10:57:07 -0800167#define DRM_TEGRA_GEM_MMAP 0x01
Christopher Ferris106b3a82016-08-24 12:15:38 -0700168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700169#define DRM_TEGRA_SYNCPT_READ 0x02
170#define DRM_TEGRA_SYNCPT_INCR 0x03
Christopher Ferris05d08e92016-02-04 13:16:38 -0800171#define DRM_TEGRA_SYNCPT_WAIT 0x04
Christopher Ferris82d75042015-01-26 10:57:07 -0800172#define DRM_TEGRA_OPEN_CHANNEL 0x05
Christopher Ferris106b3a82016-08-24 12:15:38 -0700173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700174#define DRM_TEGRA_CLOSE_CHANNEL 0x06
175#define DRM_TEGRA_GET_SYNCPT 0x07
Christopher Ferris05d08e92016-02-04 13:16:38 -0800176#define DRM_TEGRA_SUBMIT 0x08
Christopher Ferris82d75042015-01-26 10:57:07 -0800177#define DRM_TEGRA_GET_SYNCPT_BASE 0x09
Christopher Ferris106b3a82016-08-24 12:15:38 -0700178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris82d75042015-01-26 10:57:07 -0800179#define DRM_TEGRA_GEM_SET_TILING 0x0a
180#define DRM_TEGRA_GEM_GET_TILING 0x0b
Christopher Ferris05d08e92016-02-04 13:16:38 -0800181#define DRM_TEGRA_GEM_SET_FLAGS 0x0c
Christopher Ferris82d75042015-01-26 10:57:07 -0800182#define DRM_TEGRA_GEM_GET_FLAGS 0x0d
Christopher Ferris106b3a82016-08-24 12:15:38 -0700183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700184#define DRM_IOCTL_TEGRA_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_CREATE, struct drm_tegra_gem_create)
185#define DRM_IOCTL_TEGRA_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_MMAP, struct drm_tegra_gem_mmap)
Christopher Ferris05d08e92016-02-04 13:16:38 -0800186#define DRM_IOCTL_TEGRA_SYNCPT_READ DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_SYNCPT_READ, struct drm_tegra_syncpt_read)
Christopher Ferris82d75042015-01-26 10:57:07 -0800187#define DRM_IOCTL_TEGRA_SYNCPT_INCR DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_SYNCPT_INCR, struct drm_tegra_syncpt_incr)
Christopher Ferris106b3a82016-08-24 12:15:38 -0700188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700189#define DRM_IOCTL_TEGRA_SYNCPT_WAIT DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_SYNCPT_WAIT, struct drm_tegra_syncpt_wait)
190#define DRM_IOCTL_TEGRA_OPEN_CHANNEL DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_OPEN_CHANNEL, struct drm_tegra_open_channel)
Christopher Ferris05d08e92016-02-04 13:16:38 -0800191#define DRM_IOCTL_TEGRA_CLOSE_CHANNEL DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_CLOSE_CHANNEL, struct drm_tegra_open_channel)
Christopher Ferris82d75042015-01-26 10:57:07 -0800192#define DRM_IOCTL_TEGRA_GET_SYNCPT DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GET_SYNCPT, struct drm_tegra_get_syncpt)
Christopher Ferris106b3a82016-08-24 12:15:38 -0700193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700194#define DRM_IOCTL_TEGRA_SUBMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_SUBMIT, struct drm_tegra_submit)
Christopher Ferris38062f92014-07-09 15:33:25 -0700195#define DRM_IOCTL_TEGRA_GET_SYNCPT_BASE DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GET_SYNCPT_BASE, struct drm_tegra_get_syncpt_base)
Christopher Ferris05d08e92016-02-04 13:16:38 -0800196#define DRM_IOCTL_TEGRA_GEM_SET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_SET_TILING, struct drm_tegra_gem_set_tiling)
Christopher Ferris82d75042015-01-26 10:57:07 -0800197#define DRM_IOCTL_TEGRA_GEM_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_GET_TILING, struct drm_tegra_gem_get_tiling)
Christopher Ferris106b3a82016-08-24 12:15:38 -0700198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris82d75042015-01-26 10:57:07 -0800199#define DRM_IOCTL_TEGRA_GEM_SET_FLAGS DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_SET_FLAGS, struct drm_tegra_gem_set_flags)
200#define DRM_IOCTL_TEGRA_GEM_GET_FLAGS DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_GET_FLAGS, struct drm_tegra_gem_get_flags)
Christopher Ferris106b3a82016-08-24 12:15:38 -0700201#ifdef __cplusplus
202#endif
Christopher Ferris82d75042015-01-26 10:57:07 -0800203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800204#endif