1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/****************************************************************************
2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   This header was automatically generated from a Linux kernel header
5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   of the same name, to make information necessary for userspace to
6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   call into the kernel available to libc.  It contains only constants,
7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   structures, and macros generated from the original header, and thus,
8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   contains no copyrightable information.
9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   To edit the content of this header, modify the corresponding
11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   source file (e.g. under external/kernel-headers/original/) then
12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   run bionic/libc/kernel/tools/update_all.py
13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   Any manual change here will be lost the next time this script will
15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   be run. You've been warned!
16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/
19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef _UAPI_TEGRA_DRM_H_
20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define _UAPI_TEGRA_DRM_H_
21106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#include "drm.h"
22106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#ifdef __cplusplus
23106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#endif
24106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define DRM_TEGRA_GEM_CREATE_TILED (1 << 0)
2538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define DRM_TEGRA_GEM_CREATE_BOTTOM_UP (1 << 1)
26655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_tegra_gem_create {
27d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u64 size;
28d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 flags;
29d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 handle;
30655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
31655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_tegra_gem_mmap {
32d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 handle;
3305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u32 pad;
3405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u64 offset;
35655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_tegra_syncpt_read {
3705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u32 id;
38d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 value;
39655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
40655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_tegra_syncpt_incr {
4105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u32 id;
42d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 pad;
43655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
44655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_tegra_syncpt_wait {
4505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u32 id;
46d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 thresh;
47d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 timeout;
48d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 value;
4905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
50655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_TEGRA_NO_TIMEOUT (0xffffffff)
51655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_tegra_open_channel {
52d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 client;
5305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u32 pad;
54d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u64 context;
55655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
56655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_tegra_close_channel {
5705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u64 context;
58655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
59655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_tegra_get_syncpt {
60d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u64 context;
6105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u32 index;
62d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 id;
6338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
6438062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisstruct drm_tegra_get_syncpt_base {
6505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u64 context;
66d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 syncpt;
67d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 id;
68655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
6905d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct drm_tegra_syncpt {
70d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 id;
71d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 incrs;
72655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
7305d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct drm_tegra_cmdbuf {
74d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 handle;
75d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 offset;
76d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 words;
7705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u32 pad;
78655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
79655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_tegra_reloc {
80d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct {
8105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris    __u32 handle;
82d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    __u32 offset;
83d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  } cmdbuf;
84d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct {
8505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris    __u32 handle;
86d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    __u32 offset;
87d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  } target;
88d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 shift;
8905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u32 pad;
90655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
91655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_tegra_waitchk {
92d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 handle;
9305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u32 offset;
94d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 syncpt;
95d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 thresh;
96655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
9705d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct drm_tegra_submit {
98d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u64 context;
99d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 num_syncpts;
100d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 num_cmdbufs;
10105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u32 num_relocs;
102d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 num_waitchks;
103d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 waitchk_mask;
104d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 timeout;
10505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u64 syncpts;
106d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u64 cmdbufs;
107d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u64 relocs;
108d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u64 waitchks;
10905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u32 fence;
110d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 reserved[5];
111655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
11282d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define DRM_TEGRA_GEM_TILING_MODE_PITCH 0
11305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_TEGRA_GEM_TILING_MODE_TILED 1
11482d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define DRM_TEGRA_GEM_TILING_MODE_BLOCK 2
11582d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferrisstruct drm_tegra_gem_set_tiling {
116d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 handle;
11705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u32 mode;
118d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 value;
119d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 pad;
12082d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris};
12105d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct drm_tegra_gem_get_tiling {
122d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 handle;
123d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 mode;
124d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 value;
12505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u32 pad;
12682d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris};
12782d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define DRM_TEGRA_GEM_BOTTOM_UP (1 << 0)
12882d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define DRM_TEGRA_GEM_FLAGS (DRM_TEGRA_GEM_BOTTOM_UP)
12905d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct drm_tegra_gem_set_flags {
130d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 handle;
131d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 flags;
13282d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris};
13305d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct drm_tegra_gem_get_flags {
134d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 handle;
135d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 flags;
13682d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris};
13705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_TEGRA_GEM_CREATE 0x00
13882d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define DRM_TEGRA_GEM_MMAP 0x01
139655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_TEGRA_SYNCPT_READ 0x02
140655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_TEGRA_SYNCPT_INCR 0x03
14105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_TEGRA_SYNCPT_WAIT 0x04
14282d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define DRM_TEGRA_OPEN_CHANNEL 0x05
143655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_TEGRA_CLOSE_CHANNEL 0x06
144655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_TEGRA_GET_SYNCPT 0x07
14505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_TEGRA_SUBMIT 0x08
14638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define DRM_TEGRA_GET_SYNCPT_BASE 0x09
14782d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define DRM_TEGRA_GEM_SET_TILING 0x0a
14882d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define DRM_TEGRA_GEM_GET_TILING 0x0b
14905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_TEGRA_GEM_SET_FLAGS 0x0c
15082d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define DRM_TEGRA_GEM_GET_FLAGS 0x0d
151655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_IOCTL_TEGRA_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_CREATE, struct drm_tegra_gem_create)
152655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_IOCTL_TEGRA_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_MMAP, struct drm_tegra_gem_mmap)
15305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_IOCTL_TEGRA_SYNCPT_READ DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_SYNCPT_READ, struct drm_tegra_syncpt_read)
15482d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define DRM_IOCTL_TEGRA_SYNCPT_INCR DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_SYNCPT_INCR, struct drm_tegra_syncpt_incr)
155655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_IOCTL_TEGRA_SYNCPT_WAIT DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_SYNCPT_WAIT, struct drm_tegra_syncpt_wait)
156655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_IOCTL_TEGRA_OPEN_CHANNEL DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_OPEN_CHANNEL, struct drm_tegra_open_channel)
15705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_IOCTL_TEGRA_CLOSE_CHANNEL DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_CLOSE_CHANNEL, struct drm_tegra_open_channel)
15882d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define DRM_IOCTL_TEGRA_GET_SYNCPT DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GET_SYNCPT, struct drm_tegra_get_syncpt)
159655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_IOCTL_TEGRA_SUBMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_SUBMIT, struct drm_tegra_submit)
16038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define DRM_IOCTL_TEGRA_GET_SYNCPT_BASE DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GET_SYNCPT_BASE, struct drm_tegra_get_syncpt_base)
16105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_IOCTL_TEGRA_GEM_SET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_SET_TILING, struct drm_tegra_gem_set_tiling)
16282d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define DRM_IOCTL_TEGRA_GEM_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_GET_TILING, struct drm_tegra_gem_get_tiling)
16382d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define DRM_IOCTL_TEGRA_GEM_SET_FLAGS DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_SET_FLAGS, struct drm_tegra_gem_set_flags)
16482d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define DRM_IOCTL_TEGRA_GEM_GET_FLAGS DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_GET_FLAGS, struct drm_tegra_gem_get_flags)
165106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#ifdef __cplusplus
166106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#endif
16705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#endif
168