1
2
3
4
5
6 #ifndef __VENUS_HFI_MSGS_H__
7 #define __VENUS_HFI_MSGS_H__
8
9
10 #define HFI_MSG_SYS_INIT 0x20001
11 #define HFI_MSG_SYS_PC_PREP 0x20002
12 #define HFI_MSG_SYS_RELEASE_RESOURCE 0x20003
13 #define HFI_MSG_SYS_DEBUG 0x20004
14 #define HFI_MSG_SYS_SESSION_INIT 0x20006
15 #define HFI_MSG_SYS_SESSION_END 0x20007
16 #define HFI_MSG_SYS_IDLE 0x20008
17 #define HFI_MSG_SYS_COV 0x20009
18 #define HFI_MSG_SYS_PROPERTY_INFO 0x2000a
19
20 #define HFI_MSG_EVENT_NOTIFY 0x21001
21 #define HFI_MSG_SESSION_GET_SEQUENCE_HEADER 0x21002
22
23 #define HFI_MSG_SYS_PING_ACK 0x220002
24 #define HFI_MSG_SYS_SESSION_ABORT 0x220004
25
26 #define HFI_MSG_SESSION_LOAD_RESOURCES 0x221001
27 #define HFI_MSG_SESSION_START 0x221002
28 #define HFI_MSG_SESSION_STOP 0x221003
29 #define HFI_MSG_SESSION_SUSPEND 0x221004
30 #define HFI_MSG_SESSION_RESUME 0x221005
31 #define HFI_MSG_SESSION_FLUSH 0x221006
32 #define HFI_MSG_SESSION_EMPTY_BUFFER 0x221007
33 #define HFI_MSG_SESSION_FILL_BUFFER 0x221008
34 #define HFI_MSG_SESSION_PROPERTY_INFO 0x221009
35 #define HFI_MSG_SESSION_RELEASE_RESOURCES 0x22100a
36 #define HFI_MSG_SESSION_PARSE_SEQUENCE_HEADER 0x22100b
37 #define HFI_MSG_SESSION_RELEASE_BUFFERS 0x22100c
38
39 #define HFI_PICTURE_I 0x00000001
40 #define HFI_PICTURE_P 0x00000002
41 #define HFI_PICTURE_B 0x00000004
42 #define HFI_PICTURE_IDR 0x00000008
43 #define HFI_FRAME_NOTCODED 0x7f002000
44 #define HFI_FRAME_YUV 0x7f004000
45 #define HFI_UNUSED_PICT 0x10000000
46
47
48 struct hfi_msg_event_notify_pkt {
49 struct hfi_session_hdr_pkt shdr;
50 u32 event_id;
51 u32 event_data1;
52 u32 event_data2;
53 u32 ext_event_data[1];
54 };
55
56 struct hfi_msg_event_release_buffer_ref_pkt {
57 u32 packet_buffer;
58 u32 extradata_buffer;
59 u32 output_tag;
60 };
61
62 struct hfi_msg_sys_init_done_pkt {
63 struct hfi_pkt_hdr hdr;
64 u32 error_type;
65 u32 num_properties;
66 u32 data[1];
67 };
68
69 struct hfi_msg_sys_pc_prep_done_pkt {
70 struct hfi_pkt_hdr hdr;
71 u32 error_type;
72 };
73
74 struct hfi_msg_sys_release_resource_done_pkt {
75 struct hfi_pkt_hdr hdr;
76 u32 resource_handle;
77 u32 error_type;
78 };
79
80 struct hfi_msg_session_init_done_pkt {
81 struct hfi_session_hdr_pkt shdr;
82 u32 error_type;
83 u32 num_properties;
84 u32 data[1];
85 };
86
87 struct hfi_msg_session_end_done_pkt {
88 struct hfi_session_hdr_pkt shdr;
89 u32 error_type;
90 };
91
92 struct hfi_msg_session_get_sequence_hdr_done_pkt {
93 struct hfi_session_hdr_pkt shdr;
94 u32 error_type;
95 u32 header_len;
96 u32 sequence_header;
97 };
98
99 struct hfi_msg_sys_session_abort_done_pkt {
100 struct hfi_session_hdr_pkt shdr;
101 u32 error_type;
102 };
103
104 struct hfi_msg_sys_idle_pkt {
105 struct hfi_pkt_hdr hdr;
106 };
107
108 struct hfi_msg_sys_ping_ack_pkt {
109 struct hfi_pkt_hdr hdr;
110 u32 client_data;
111 };
112
113 struct hfi_msg_sys_property_info_pkt {
114 struct hfi_pkt_hdr hdr;
115 u32 num_properties;
116 u32 data[1];
117 };
118
119 struct hfi_msg_session_load_resources_done_pkt {
120 struct hfi_session_hdr_pkt shdr;
121 u32 error_type;
122 };
123
124 struct hfi_msg_session_start_done_pkt {
125 struct hfi_session_hdr_pkt shdr;
126 u32 error_type;
127 };
128
129 struct hfi_msg_session_stop_done_pkt {
130 struct hfi_session_hdr_pkt shdr;
131 u32 error_type;
132 };
133
134 struct hfi_msg_session_suspend_done_pkt {
135 struct hfi_session_hdr_pkt shdr;
136 u32 error_type;
137 };
138
139 struct hfi_msg_session_resume_done_pkt {
140 struct hfi_session_hdr_pkt shdr;
141 u32 error_type;
142 };
143
144 struct hfi_msg_session_flush_done_pkt {
145 struct hfi_session_hdr_pkt shdr;
146 u32 error_type;
147 u32 flush_type;
148 };
149
150 struct hfi_msg_session_empty_buffer_done_pkt {
151 struct hfi_session_hdr_pkt shdr;
152 u32 error_type;
153 u32 offset;
154 u32 filled_len;
155 u32 input_tag;
156 u32 packet_buffer;
157 u32 extradata_buffer;
158 u32 data[0];
159 };
160
161 struct hfi_msg_session_fbd_compressed_pkt {
162 struct hfi_session_hdr_pkt shdr;
163 u32 time_stamp_hi;
164 u32 time_stamp_lo;
165 u32 error_type;
166 u32 flags;
167 u32 mark_target;
168 u32 mark_data;
169 u32 stats;
170 u32 offset;
171 u32 alloc_len;
172 u32 filled_len;
173 u32 input_tag;
174 u32 output_tag;
175 u32 picture_type;
176 u32 packet_buffer;
177 u32 extradata_buffer;
178 u32 data[0];
179 };
180
181 struct hfi_msg_session_fbd_uncompressed_plane0_pkt {
182 struct hfi_session_hdr_pkt shdr;
183 u32 stream_id;
184 u32 view_id;
185 u32 error_type;
186 u32 time_stamp_hi;
187 u32 time_stamp_lo;
188 u32 flags;
189 u32 mark_target;
190 u32 mark_data;
191 u32 stats;
192 u32 alloc_len;
193 u32 filled_len;
194 u32 offset;
195 u32 frame_width;
196 u32 frame_height;
197 u32 start_x_coord;
198 u32 start_y_coord;
199 u32 input_tag;
200 u32 input_tag2;
201 u32 output_tag;
202 u32 picture_type;
203 u32 packet_buffer;
204 u32 extradata_buffer;
205 u32 data[0];
206 };
207
208 struct hfi_msg_session_fbd_uncompressed_plane1_pkt {
209 u32 flags;
210 u32 alloc_len;
211 u32 filled_len;
212 u32 offset;
213 u32 packet_buffer2;
214 u32 data[0];
215 };
216
217 struct hfi_msg_session_fbd_uncompressed_plane2_pkt {
218 u32 flags;
219 u32 alloc_len;
220 u32 filled_len;
221 u32 offset;
222 u32 packet_buffer3;
223 u32 data[0];
224 };
225
226 struct hfi_msg_session_parse_sequence_header_done_pkt {
227 struct hfi_session_hdr_pkt shdr;
228 u32 error_type;
229 u32 num_properties;
230 u32 data[1];
231 };
232
233 struct hfi_msg_session_property_info_pkt {
234 struct hfi_session_hdr_pkt shdr;
235 u32 num_properties;
236 u32 data[1];
237 };
238
239 struct hfi_msg_session_release_resources_done_pkt {
240 struct hfi_session_hdr_pkt shdr;
241 u32 error_type;
242 };
243
244 struct hfi_msg_session_release_buffers_done_pkt {
245 struct hfi_session_hdr_pkt shdr;
246 u32 error_type;
247 u32 num_buffers;
248 u32 buffer_info[1];
249 };
250
251 struct hfi_msg_sys_debug_pkt {
252 struct hfi_pkt_hdr hdr;
253 u32 msg_type;
254 u32 msg_size;
255 u32 time_stamp_hi;
256 u32 time_stamp_lo;
257 u8 msg_data[1];
258 };
259
260 struct hfi_msg_sys_coverage_pkt {
261 struct hfi_pkt_hdr hdr;
262 u32 msg_size;
263 u32 time_stamp_hi;
264 u32 time_stamp_lo;
265 u8 msg_data[1];
266 };
267
268 struct venus_core;
269 struct hfi_pkt_hdr;
270
271 void hfi_process_watchdog_timeout(struct venus_core *core);
272 u32 hfi_process_msg_packet(struct venus_core *core, struct hfi_pkt_hdr *hdr);
273
274 #endif