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