| From 2850a2ddaa202ffe1fbf421a2f007453773e6e29 Mon Sep 17 00:00:00 2001 |
| From: Mark Yao <mark.yao@rock-chips.com> |
| Date: Wed, 8 Oct 2014 14:38:23 +0800 |
| Subject: [PATCH] CHROMIUM: libdrm: Add header for Rockchip DRM userspace |
| interface |
| |
| Add the header defining the interface exposed by Rockchip DRM. |
| |
| Old-BUG=chrome-os-partner:32762 |
| Old-BUG=b:26575005 |
| Old-TEST=emerge-veyron libdrm; boot and display. |
| |
| Signed-off-by: Mark Yao <mark.yao@rock-chips.com> |
| (rebased from chromeos-2.4.70) |
| (stripped down to header alone) |
| |
| BUG=b:112720782 |
| Signed-off-by: Kristian H. Kristensen <hoegsberg@chromium.org> |
| |
| Change-Id: Ic3b128a2a22833e5af6b6188c20890fdd9cd564a |
| --- |
| Makefile.sources | 1 + |
| include/drm/rockchip_drm.h | 73 ++++++++++++++++++++++++++++++++++++++ |
| meson.build | 2 +- |
| 3 files changed, 75 insertions(+), 1 deletion(-) |
| create mode 100644 include/drm/rockchip_drm.h |
| |
| diff --git a/Makefile.sources b/Makefile.sources |
| index 55290fe9..9fa2e7db 100644 |
| --- a/Makefile.sources |
| +++ b/Makefile.sources |
| @@ -30,6 +30,7 @@ LIBDRM_INCLUDE_H_FILES := \ |
| include/drm/qxl_drm.h \ |
| include/drm/r128_drm.h \ |
| include/drm/radeon_drm.h \ |
| + include/drm/rockchip_drm.h \ |
| include/drm/amdgpu_drm.h \ |
| include/drm/savage_drm.h \ |
| include/drm/sis_drm.h \ |
| diff --git a/include/drm/rockchip_drm.h b/include/drm/rockchip_drm.h |
| new file mode 100644 |
| index 00000000..13977d59 |
| --- /dev/null |
| +++ b/include/drm/rockchip_drm.h |
| @@ -0,0 +1,73 @@ |
| +/* |
| + * Copyright (c) Fuzhou Rockchip Electronics Co.Ltd |
| + * Authors: |
| + * Mark Yao <yzq@rock-chips.com> |
| + * |
| + * based on exynos_drm.h |
| + * |
| + * Permission is hereby granted, free of charge, to any person obtaining a |
| + * copy of this software and associated documentation files (the "Software"), |
| + * to deal in the Software without restriction, including without limitation |
| + * the rights to use, copy, modify, merge, publish, distribute, sublicense, |
| + * and/or sell copies of the Software, and to permit persons to whom the |
| + * Software is furnished to do so, subject to the following conditions: |
| + * |
| + * The above copyright notice and this permission notice (including the next |
| + * paragraph) shall be included in all copies or substantial portions of the |
| + * Software. |
| + * |
| + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
| + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
| + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
| + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
| + * SOFTWARE. |
| + * |
| + */ |
| + |
| +#ifndef _ROCKCHIP_DRM_H_ |
| +#define _ROCKCHIP_DRM_H_ |
| + |
| +#include <stdint.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_rockchip_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_rockchip_gem_map_off { |
| + uint32_t handle; |
| + uint32_t pad; |
| + uint64_t offset; |
| +}; |
| + |
| +#define DRM_ROCKCHIP_GEM_CREATE 0x00 |
| +#define DRM_ROCKCHIP_GEM_MAP_OFFSET 0x01 |
| + |
| +#define DRM_IOCTL_ROCKCHIP_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + \ |
| + DRM_ROCKCHIP_GEM_CREATE, struct drm_rockchip_gem_create) |
| + |
| +#define DRM_IOCTL_ROCKCHIP_GEM_MAP_OFFSET DRM_IOWR(DRM_COMMAND_BASE + \ |
| + DRM_ROCKCHIP_GEM_MAP_OFFSET, struct drm_rockchip_gem_map_off) |
| + |
| +#endif |
| diff --git a/meson.build b/meson.build |
| index fc02f552..e5734b27 100644 |
| --- a/meson.build |
| +++ b/meson.build |
| @@ -313,7 +313,7 @@ install_headers( |
| 'include/drm/mach64_drm.h', 'include/drm/mga_drm.h', |
| 'include/drm/msm_drm.h', 'include/drm/nouveau_drm.h', |
| 'include/drm/qxl_drm.h', 'include/drm/r128_drm.h', |
| - 'include/drm/radeon_drm.h', 'include/drm/amdgpu_drm.h', |
| + 'include/drm/radeon_drm.h', 'include/drm/rockchip_drm.h', 'include/drm/amdgpu_drm.h', |
| 'include/drm/savage_drm.h', 'include/drm/sis_drm.h', |
| 'include/drm/tegra_drm.h', 'include/drm/vc4_drm.h', |
| 'include/drm/via_drm.h', 'include/drm/virtgpu_drm.h', |
| -- |
| 2.30.0.365.g02bc693789-goog |
| |