OSDN Git Service

Use drm gem acess userdata IOCTL for set/get interlace
[android-x86/external-minigbm.git] / cros_gralloc / i915_private_android_types.h
1 /*
2  * Copyright 2017 The Chromium OS Authors. All rights reserved.
3  * Use of this source code is governed by a BSD-style license that can be
4  * found in the LICENSE file.
5  */
6
7 /*
8  * Android graphics.h defines the formats and leaves 0x100 - 0x1FF
9  * range available for HAL implementation specific formats.
10  */
11
12 #ifndef i915_PRIVATE_ANDROID_TYPES_H_
13 #define i915_PRIVATE_ANDROID_TYPES_H_
14
15 #ifdef USE_GRALLOC1
16 #include <hardware/gralloc1.h>
17 #endif
18
19 enum { HAL_PIXEL_FORMAT_NV12_Y_TILED_INTEL = 0x100,
20        HAL_PIXEL_FORMAT_NV12_LINEAR_INTEL = 0x101,
21        HAL_PIXEL_FORMAT_YCrCb_422_H_INTEL = 0x102,
22        HAL_PIXEL_FORMAT_NV12_LINEAR_PACKED_INTEL = 0x103,
23        HAL_PIXEL_FORMAT_YCbCr_422_H_INTEL = 0x104,
24        HAL_PIXEL_FORMAT_NV12_X_TILED_INTEL = 0x105,
25        HAL_PIXEL_FORMAT_RGBA_5551_INTEL = 0x106,
26        HAL_PIXEL_FORMAT_RGBA_4444_INTEL = 0x107,
27        HAL_PIXEL_FORMAT_GENERIC_8BIT_INTEL = 0x108,
28        HAL_PIXEL_FORMAT_YCbCr_411_INTEL = 0x109,
29        HAL_PIXEL_FORMAT_YCbCr_420_H_INTEL = 0x10A,
30        HAL_PIXEL_FORMAT_YCbCr_422_V_INTEL = 0x10B,
31        HAL_PIXEL_FORMAT_YCbCr_444_INTEL = 0x10C,
32        HAL_PIXEL_FORMAT_RGBP_INTEL = 0x10D,
33        HAL_PIXEL_FORMAT_BGRP_INTEL = 0x10E,
34        HAL_PIXEL_FORMAT_NV12_LINEAR_CAMERA_INTEL = 0x10F,
35        HAL_PIXEL_FORMAT_P010_INTEL = 0x110,
36        HAL_PIXEL_FORMAT_Z16_INTEL = 0x111,
37        HAL_PIXEL_FORMAT_UVMAP64_INTEL = 0x112,
38        HAL_PIXEL_FORMAT_A2R10G10B10_INTEL = 0x113,
39        HAL_PIXEL_FORMAT_A2B10G10R10_INTEL = 0x114,
40        HAL_PIXEL_FORMAT_YCrCb_NORMAL_INTEL = 0x115,
41        HAL_PIXEL_FORMAT_YCrCb_SWAPUVY_INTEL = 0x116,
42        HAL_PIXEL_FORMAT_YCrCb_SWAPUV_INTEL = 0x117,
43        HAL_PIXEL_FORMAT_YCrCb_SWAPY_INTEL = 0x118,
44        HAL_PIXEL_FORMAT_X2R10G10B10_INTEL = 0x119,
45        HAL_PIXEL_FORMAT_X2B10G10R10_INTEL = 0x11A,
46        HAL_PIXEL_FORMAT_P016_INTEL = 0x11C,
47        HAL_PIXEL_FORMAT_Y210_INTEL = 0x11D,
48        HAL_PIXEL_FORMAT_Y216_INTEL = 0x11E,
49        HAL_PIXEL_FORMAT_Y410_INTEL = 0x11F,
50        HAL_PIXEL_FORMAT_Y416_INTEL = 0x120,
51        HAL_PIXEL_FORMAT_Y8I_INTEL = 0x121,
52        HAL_PIXEL_FORMAT_Y12I_INTEL = 0x122,
53        HAL_PIXEL_FORMAT_YUYV_INTEL = HAL_PIXEL_FORMAT_YCrCb_NORMAL_INTEL,
54        HAL_PIXEL_FORMAT_YUY2_INTEL = HAL_PIXEL_FORMAT_YCrCb_NORMAL_INTEL,
55        HAL_PIXEL_FORMAT_VYUY_INTEL = HAL_PIXEL_FORMAT_YCrCb_SWAPUVY_INTEL,
56        HAL_PIXEL_FORMAT_YVYU_INTEL = HAL_PIXEL_FORMAT_YCrCb_SWAPUV_INTEL,
57        HAL_PIXEL_FORMAT_UYVY_INTEL = HAL_PIXEL_FORMAT_YCrCb_SWAPY_INTEL,
58        HAL_PIXEL_FORMAT_NV12_TILED_INTEL = HAL_PIXEL_FORMAT_NV12_Y_TILED_INTEL,
59        HAL_PIXEL_FORMAT_NV12_INTEL = HAL_PIXEL_FORMAT_NV12_Y_TILED_INTEL,
60        HAL_PIXEL_FORMAT_INTEL_NV12 = HAL_PIXEL_FORMAT_NV12_Y_TILED_INTEL,
61        HAL_PIXEL_FORMAT_NV12 = 0x10F,
62        HAL_PIXEL_FORMAT_YUV420PackedSemiPlanar_INTEL = 0x7FA00E00,
63        HAL_PIXEL_FORMAT_YUV420PackedSemiPlanar_Tiled_INTEL = 0x7FA00F00,
64 };
65
66 #ifdef USE_GRALLOC1
67 enum { GRALLOC1_FUNCTION_SET_MODIFIER = 101,
68        GRALLOC1_FUNCTION_GET_BYTE_STRIDE = 102,
69        GRALLOC1_FUNCTION_GET_PRIME = 103,
70        GRALLOC1_FUNCTION_SET_INTERLACE = 104,
71        GRALLOC1_FUNCTION_SET_PROTECTIONINFO = 105,
72        GRALLOC1_FUNCTION_GET_INTERLACE = 106,
73        GRALLOC1_LAST_CUSTOM = 500 };
74
75 typedef int32_t /*gralloc1_error_t*/ (*GRALLOC1_PFN_SET_MODIFIER)(
76     gralloc1_device_t *device, gralloc1_buffer_descriptor_t descriptor, uint64_t modifier);
77
78 typedef int32_t /*gralloc1_error_t*/ (*GRALLOC1_PFN_GET_BYTE_STRIDE)(
79         gralloc1_device_t *device, buffer_handle_t buffer, uint32_t *outStride, uint32_t size);
80
81 typedef int32_t /*gralloc1_error_t*/ (*GRALLOC1_PFN_GET_PRIME)(
82         gralloc1_device_t *device, buffer_handle_t buffer, uint32_t *prime);
83
84 typedef int32_t /*gralloc1_error_t*/ (*GRALLOC1_PFN_SET_INTERLACE)(gralloc1_device_t *device,
85                                                                    buffer_handle_t buffer,
86                                                                    uint32_t interlace);
87
88 typedef int32_t /*gralloc1_error_t*/ (*GRALLOC1_PFN_GET_INTERLACE)(gralloc1_device_t *device,
89                                                                    buffer_handle_t buffer,
90                                                                    uint32_t *interlace);
91
92 typedef int32_t /*gralloc1_error_t*/ (*GRALLOC1_PFN_SET_PROTECTIONINFO)(gralloc1_device_t *device,
93                                                                         buffer_handle_t buffer,
94                                                                         uint32_t protection_info);
95
96 typedef union intel_protection_info_type_t {
97        uint32_t value;
98        struct {
99            uint32_t is_encrypted  : 8;
100            uint32_t pavp_sesion_id : 8;
101            uint32_t pavp_instance_id: 16;
102        };
103 }intel_protection_info_type_t;
104
105 #endif
106
107 #endif