blob: 300dc948d7aab98f4f2fcabfc58920bcb9a90e8d [file] [log] [blame]
From 70408f7a678c0cb3396e312e5b3c47c39bff9209 Mon Sep 17 00:00:00 2001
From: JB Tsai <jb.tsai@mediatek.com>
Date: Wed, 25 Mar 2015 09:04:16 +0800
Subject: [PATCH libdrm 4/7] CHROMIUM: libdrm: Add header for Mediatek DRM
userspace interface
Add a header defining the userspace interface exposed by Mediatek DRM
driver.
Old-BUG=chrome-os-partner:38389
Old-BUG=b:26575005
Old-TEST=Use kmstest on oak to verify
Signed-off-by: JB Tsai <jb.tsai@mediatek.com>
(rebased from chromeos-2.4.70)
(stripped down to the header alone)
BUG=b:112720782
Signed-off-by: Kristian H. Kristensen <hoegsberg@chromium.org>
Change-Id: Idcbe76bbc710c4ee5b08af640fd3ccaadf9d33a0
---
Makefile.sources | 1 +
include/drm/mediatek_drm.h | 59 ++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 60 insertions(+)
create mode 100644 include/drm/mediatek_drm.h
diff --git a/Makefile.sources b/Makefile.sources
index fcfa651c..19b62619 100644
--- a/Makefile.sources
+++ b/Makefile.sources
@@ -24,6 +24,7 @@ LIBDRM_INCLUDE_H_FILES := \
include/drm/drm_sarea.h \
include/drm/i915_drm.h \
include/drm/mach64_drm.h \
+ include/drm/mediatek_drm.h \
include/drm/mga_drm.h \
include/drm/msm_drm.h \
include/drm/nouveau_drm.h \
diff --git a/include/drm/mediatek_drm.h b/include/drm/mediatek_drm.h
new file mode 100644
index 00000000..6d87d9c7
--- /dev/null
+++ b/include/drm/mediatek_drm.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2015 MediaTek Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+
+#ifndef _UAPI_MEDIATEK_DRM_H
+#define _UAPI_MEDIATEK_DRM_H
+
+#include "drm.h"
+
+/**
+ * User-desired buffer creation information structure.
+ *
+ * @size: user-desired memory allocation size.
+ * - this size value would be page-aligned internally.
+ * @flags: user request for setting memory type or cache attributes.
+ * @handle: returned a handle to created gem object.
+ * - this handle will be set by gem module of kernel side.
+ */
+struct drm_mtk_gem_create {
+ uint64_t size;
+ uint32_t flags;
+ uint32_t handle;
+};
+
+/**
+ * A structure for getting buffer offset.
+ *
+ * @handle: a pointer to gem object created.
+ * @pad: just padding to be 64-bit aligned.
+ * @offset: relatived offset value of the memory region allocated.
+ * - this value should be set by user.
+ */
+struct drm_mtk_gem_map_off {
+ uint32_t handle;
+ uint32_t pad;
+ uint64_t offset;
+};
+
+#define DRM_MTK_GEM_CREATE 0x00
+#define DRM_MTK_GEM_MAP_OFFSET 0x01
+
+#define DRM_IOCTL_MTK_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + \
+ DRM_MTK_GEM_CREATE, struct drm_mtk_gem_create)
+
+#define DRM_IOCTL_MTK_GEM_MAP_OFFSET DRM_IOWR(DRM_COMMAND_BASE + \
+ DRM_MTK_GEM_MAP_OFFSET, struct drm_mtk_gem_map_off)
+
+
+#endif /* _UAPI_MEDIATEK_DRM_H */
--
2.16.4