limin.tian | 8c5c1e1 | 2023-02-28 03:27:14 +0000 | [diff] [blame] | 1 | /* SPDX-License-Identifier: MIT */
|
| 2 | /*
|
| 3 | * Copyright © 2019-2022 Amlogic Inc.
|
| 4 | */
|
Yalong Liu | bdcf912 | 2018-01-19 18:35:02 +0800 | [diff] [blame] | 5 | |
Ao Xu | 0733c43 | 2018-11-02 17:35:02 +0800 | [diff] [blame] | 6 | #ifndef _MESON_DRM_H |
| 7 | #define _MESON_DRM_H |
Yalong Liu | bdcf912 | 2018-01-19 18:35:02 +0800 | [diff] [blame] | 8 | |
Ao Xu | 0733c43 | 2018-11-02 17:35:02 +0800 | [diff] [blame] | 9 | #include <drm/drm.h> |
| 10 | |
| 11 | /* Use flags */ |
| 12 | #define MESON_USE_NONE 0 |
| 13 | #define MESON_USE_SCANOUT (1ull << 0) |
| 14 | #define MESON_USE_CURSOR (1ull << 1) |
| 15 | #define MESON_USE_RENDERING (1ull << 2) |
| 16 | #define MESON_USE_LINEAR (1ull << 3) |
| 17 | #define MESON_USE_PROTECTED (1ull << 11) |
| 18 | #define MESON_USE_HW_VIDEO_ENCODER (1ull << 12) |
| 19 | #define MESON_USE_CAMERA_WRITE (1ull << 13) |
| 20 | #define MESON_USE_CAMERA_READ (1ull << 14) |
| 21 | #define MESON_USE_TEXTURE (1ull << 17) |
Ao Xu | 6fbd032 | 2020-04-14 18:08:22 +0800 | [diff] [blame] | 22 | #define MESON_USE_VIDEO_PLANE (1ull << 18) |
| 23 | #define MESON_USE_VIDEO_AFBC (1ull << 19) |
Ao Xu | 6747bbd | 2020-09-28 20:02:09 +0800 | [diff] [blame] | 24 | #define MESON_USE_VD1 (1ull << 20) |
| 25 | #define MESON_USE_VD2 (1ull << 21) |
Yalong Liu | bdcf912 | 2018-01-19 18:35:02 +0800 | [diff] [blame] | 26 | |
| 27 | /** |
| 28 | * User-desired buffer creation information structure. |
| 29 | * |
| 30 | * @size: user-desired memory allocation size. |
Yalong Liu | bdcf912 | 2018-01-19 18:35:02 +0800 | [diff] [blame] | 31 | * @flags: user request for setting memory type or cache attributes. |
| 32 | * @handle: returned a handle to created gem object. |
Ao Xu | 0733c43 | 2018-11-02 17:35:02 +0800 | [diff] [blame] | 33 | * - this handle will be set by gem module of kernel side. |
Yalong Liu | bdcf912 | 2018-01-19 18:35:02 +0800 | [diff] [blame] | 34 | */ |
Yalong Liu | 22dc0a5 | 2018-02-22 10:27:20 +0800 | [diff] [blame] | 35 | struct drm_meson_gem_create { |
Ao Xu | 0733c43 | 2018-11-02 17:35:02 +0800 | [diff] [blame] | 36 | __u64 size; |
| 37 | __u32 flags; |
| 38 | __u32 handle; |
Yalong Liu | bdcf912 | 2018-01-19 18:35:02 +0800 | [diff] [blame] | 39 | }; |
| 40 | |
sky zhou | f05ca46 | 2020-10-29 18:07:40 +0800 | [diff] [blame] | 41 | /*Memory related.*/ |
Ao Xu | 0733c43 | 2018-11-02 17:35:02 +0800 | [diff] [blame] | 42 | #define DRM_IOCTL_MESON_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + \ |
sky zhou | f05ca46 | 2020-10-29 18:07:40 +0800 | [diff] [blame] | 43 | 0x00, struct drm_meson_gem_create) |
| 44 | |
| 45 | /*KMS related.*/ |
| 46 | #define DRM_IOCTL_MESON_ASYNC_ATOMIC DRM_IOWR(DRM_COMMAND_BASE + \ |
| 47 | 0x10, struct drm_mode_atomic) |
Yalong Liu | bdcf912 | 2018-01-19 18:35:02 +0800 | [diff] [blame] | 48 | |
Ao Xu | 0733c43 | 2018-11-02 17:35:02 +0800 | [diff] [blame] | 49 | #endif /* _MESON_DRM_H */ |