summaryrefslogtreecommitdiff
path: root/drivers/media/platform/qcom/iris/iris_hfi_gen2_defines.h
blob: 806f8bb7f505d25cafcfd5e75a39d0f00eaeac42 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
 */

#ifndef __IRIS_HFI_GEN2_DEFINES_H__
#define __IRIS_HFI_GEN2_DEFINES_H__

#include <linux/types.h>

#define HFI_VIDEO_ARCH_LX			0x1

#define HFI_CMD_BEGIN				0x01000000
#define HFI_CMD_INIT				0x01000001
#define HFI_CMD_POWER_COLLAPSE			0x01000002
#define HFI_CMD_OPEN				0x01000003
#define HFI_CMD_CLOSE				0x01000004
#define HFI_CMD_START				0x01000005
#define HFI_CMD_STOP				0x01000006
#define HFI_CMD_DRAIN				0x01000007
#define HFI_CMD_RESUME				0x01000008
#define HFI_CMD_BUFFER				0x01000009
#define HFI_CMD_SUBSCRIBE_MODE			0x0100000B
#define HFI_CMD_SETTINGS_CHANGE			0x0100000C
#define HFI_CMD_PAUSE				0x01000011
#define HFI_CMD_END				0x01FFFFFF

#define HFI_BITMASK_BITSTREAM_WIDTH		0xffff0000
#define HFI_BITMASK_BITSTREAM_HEIGHT		0x0000ffff
#define HFI_BITMASK_FRAME_MBS_ONLY_FLAG		0x00000001

#define HFI_PROP_BEGIN				0x03000000
#define HFI_PROP_IMAGE_VERSION			0x03000001
#define HFI_PROP_INTRA_FRAME_POWER_COLLAPSE	0x03000002
#define HFI_PROP_UBWC_MAX_CHANNELS		0x03000003
#define HFI_PROP_UBWC_MAL_LENGTH		0x03000004
#define HFI_PROP_UBWC_HBB			0x03000005
#define HFI_PROP_UBWC_BANK_SWZL_LEVEL1		0x03000006
#define HFI_PROP_UBWC_BANK_SWZL_LEVEL2		0x03000007
#define HFI_PROP_UBWC_BANK_SWZL_LEVEL3		0x03000008
#define HFI_PROP_UBWC_BANK_SPREADING		0x03000009
#define HFI_PROP_CODEC				0x03000100
#define HFI_PROP_COLOR_FORMAT			0x03000101
#define HFI_PROP_BITSTREAM_RESOLUTION		0x03000103
#define HFI_PROP_LINEAR_STRIDE_SCANLINE		0x03000104
#define HFI_PROP_CROP_OFFSETS			0x03000105
#define HFI_PROP_PROFILE			0x03000107
#define HFI_PROP_LEVEL				0x03000108
#define HFI_PROP_STAGE				0x0300010a
#define HFI_PROP_PIPE				0x0300010b
#define HFI_PROP_LUMA_CHROMA_BIT_DEPTH		0x0300010f
#define HFI_PROP_CODED_FRAMES			0x03000120
#define HFI_PROP_CABAC_SESSION			0x03000121
#define HFI_PROP_BUFFER_HOST_MAX_COUNT		0x03000123
#define HFI_PROP_BUFFER_FW_MIN_OUTPUT_COUNT	0x03000124
#define HFI_PROP_PIC_ORDER_CNT_TYPE		0x03000128
#define HFI_PROP_QUALITY_MODE			0x03000148
#define HFI_PROP_SIGNAL_COLOR_INFO		0x03000155
#define HFI_PROP_PICTURE_TYPE			0x03000162
#define HFI_PROP_DEC_DEFAULT_HEADER		0x03000168
#define HFI_PROP_DEC_START_FROM_RAP_FRAME	0x03000169
#define HFI_PROP_NO_OUTPUT			0x0300016a
#define HFI_PROP_COMV_BUFFER_COUNT		0x03000193
#define HFI_PROP_END				0x03FFFFFF

#define HFI_SESSION_ERROR_BEGIN			0x04000000
#define HFI_ERROR_UNKNOWN_SESSION		0x04000001
#define HFI_ERROR_MAX_SESSIONS			0x04000002
#define HFI_ERROR_FATAL				0x04000003
#define HFI_ERROR_INVALID_STATE			0x04000004
#define HFI_ERROR_INSUFFICIENT_RESOURCES	0x04000005
#define HFI_ERROR_BUFFER_NOT_SET		0x04000006
#define HFI_ERROR_STREAM_UNSUPPORTED		0x04000008
#define HFI_SESSION_ERROR_END			0x04FFFFFF

#define HFI_SYSTEM_ERROR_BEGIN			0x05000000
#define HFI_SYS_ERROR_WD_TIMEOUT		0x05000001
#define HFI_SYSTEM_ERROR_END			0x05FFFFFF

#define HFI_INFORMATION_BEGIN			0x06000000
#define HFI_INFO_UNSUPPORTED			0x06000001
#define HFI_INFO_DATA_CORRUPT			0x06000002
#define HFI_INFO_BUFFER_OVERFLOW		0x06000004
#define HFI_INFO_HFI_FLAG_DRAIN_LAST		0x06000006
#define HFI_INFO_HFI_FLAG_PSC_LAST		0x06000007
#define HFI_INFORMATION_END			0x06FFFFFF

enum hfi_property_mode_type {
	HFI_MODE_PORT_SETTINGS_CHANGE		= 0x00000001,
	HFI_MODE_PROPERTY			= 0x00000002,
};

enum hfi_color_format {
	HFI_COLOR_FMT_OPAQUE			= 0,
	HFI_COLOR_FMT_NV12			= 1,
	HFI_COLOR_FMT_NV12_UBWC			= 2,
	HFI_COLOR_FMT_P010			= 3,
	HFI_COLOR_FMT_TP10_UBWC			= 4,
	HFI_COLOR_FMT_RGBA8888			= 5,
	HFI_COLOR_FMT_RGBA8888_UBWC		= 6,
	HFI_COLOR_FMT_NV21			= 7,
};

enum hfi_codec_type {
	HFI_CODEC_DECODE_AVC			= 1,
	HFI_CODEC_ENCODE_AVC			= 2,
};

enum hfi_picture_type {
	HFI_PICTURE_IDR				= 0x00000001,
	HFI_PICTURE_P				= 0x00000002,
	HFI_PICTURE_B				= 0x00000004,
	HFI_PICTURE_I				= 0x00000008,
	HFI_PICTURE_CRA				= 0x00000010,
	HFI_PICTURE_BLA				= 0x00000020,
};

enum hfi_buffer_type {
	HFI_BUFFER_BITSTREAM			= 0x00000001,
	HFI_BUFFER_RAW				= 0x00000002,
	HFI_BUFFER_METADATA			= 0x00000003,
	HFI_BUFFER_SUBCACHE			= 0x00000004,
	HFI_BUFFER_PARTIAL_DATA			= 0x00000005,
	HFI_BUFFER_DPB				= 0x00000006,
	HFI_BUFFER_BIN				= 0x00000007,
	HFI_BUFFER_LINE				= 0x00000008,
	HFI_BUFFER_ARP				= 0x00000009,
	HFI_BUFFER_COMV				= 0x0000000A,
	HFI_BUFFER_NON_COMV			= 0x0000000B,
	HFI_BUFFER_PERSIST			= 0x0000000C,
	HFI_BUFFER_VPSS				= 0x0000000D,
};

enum hfi_buffer_host_flags {
	HFI_BUF_HOST_FLAG_RELEASE		= 0x00000001,
	HFI_BUF_HOST_FLAG_READONLY		= 0x00000010,
	HFI_BUF_HOST_FLAG_CODEC_CONFIG		= 0x00000100,
	HFI_BUF_HOST_FLAGS_CB_NON_SECURE	= 0x00000200,
};

enum hfi_buffer_firmware_flags {
	HFI_BUF_FW_FLAG_RELEASE_DONE		= 0x00000001,
	HFI_BUF_FW_FLAG_READONLY		= 0x00000010,
	HFI_BUF_FW_FLAG_LAST			= 0x10000000,
	HFI_BUF_FW_FLAG_PSC_LAST		= 0x20000000,
};

enum hfi_packet_firmware_flags {
	HFI_FW_FLAGS_SUCCESS			= 0x00000001,
	HFI_FW_FLAGS_INFORMATION		= 0x00000002,
	HFI_FW_FLAGS_SESSION_ERROR		= 0x00000004,
	HFI_FW_FLAGS_SYSTEM_ERROR		= 0x00000008,
};

struct hfi_debug_header {
	u32 size;
	u32 debug_level;
	u32 reserved[2];
};

#endif