brintos

brintos / linux-shallow public Read only

0
0
Text · 5.7 KiB · 8c2e17b Raw
277 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.4 * Copyright (C) 2017 Linaro Ltd.5 */6#ifndef __VENUS_HFI_MSGS_H__7#define __VENUS_HFI_MSGS_H__8 9/* message calls */10#define HFI_MSG_SYS_INIT			0x2000111#define HFI_MSG_SYS_PC_PREP			0x2000212#define HFI_MSG_SYS_RELEASE_RESOURCE		0x2000313#define HFI_MSG_SYS_DEBUG			0x2000414#define HFI_MSG_SYS_SESSION_INIT		0x2000615#define HFI_MSG_SYS_SESSION_END			0x2000716#define HFI_MSG_SYS_IDLE			0x2000817#define HFI_MSG_SYS_COV				0x2000918#define HFI_MSG_SYS_PROPERTY_INFO		0x2000a19 20#define HFI_MSG_EVENT_NOTIFY			0x2100121#define HFI_MSG_SESSION_GET_SEQUENCE_HEADER	0x2100222 23#define HFI_MSG_SYS_PING_ACK			0x22000224#define HFI_MSG_SYS_SESSION_ABORT		0x22000425 26#define HFI_MSG_SESSION_LOAD_RESOURCES		0x22100127#define HFI_MSG_SESSION_START			0x22100228#define HFI_MSG_SESSION_STOP			0x22100329#define HFI_MSG_SESSION_SUSPEND			0x22100430#define HFI_MSG_SESSION_RESUME			0x22100531#define HFI_MSG_SESSION_FLUSH			0x22100632#define HFI_MSG_SESSION_EMPTY_BUFFER		0x22100733#define HFI_MSG_SESSION_FILL_BUFFER		0x22100834#define HFI_MSG_SESSION_PROPERTY_INFO		0x22100935#define HFI_MSG_SESSION_RELEASE_RESOURCES	0x22100a36#define HFI_MSG_SESSION_PARSE_SEQUENCE_HEADER	0x22100b37#define HFI_MSG_SESSION_RELEASE_BUFFERS		0x22100c38 39#define HFI_PICTURE_I				0x0000000140#define HFI_PICTURE_P				0x0000000241#define HFI_PICTURE_B				0x0000000442#define HFI_PICTURE_IDR				0x0000000843#define HFI_FRAME_NOTCODED			0x7f00200044#define HFI_FRAME_YUV				0x7f00400045#define HFI_UNUSED_PICT				0x1000000046 47/* message packets */48struct 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[];54};55 56struct hfi_msg_event_release_buffer_ref_pkt {57	u32 packet_buffer;58	u32 extradata_buffer;59	u32 output_tag;60};61 62struct hfi_msg_sys_init_done_pkt {63	struct hfi_pkt_hdr hdr;64	u32 error_type;65	u32 num_properties;66	u32 data[];67};68 69struct hfi_msg_sys_pc_prep_done_pkt {70	struct hfi_pkt_hdr hdr;71	u32 error_type;72};73 74struct hfi_msg_sys_release_resource_done_pkt {75	struct hfi_pkt_hdr hdr;76	u32 resource_handle;77	u32 error_type;78};79 80struct hfi_msg_session_init_done_pkt {81	struct hfi_session_hdr_pkt shdr;82	u32 error_type;83	u32 num_properties;84	u32 data[];85};86 87struct hfi_msg_session_end_done_pkt {88	struct hfi_session_hdr_pkt shdr;89	u32 error_type;90};91 92struct 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 99struct hfi_msg_sys_session_abort_done_pkt {100	struct hfi_session_hdr_pkt shdr;101	u32 error_type;102};103 104struct hfi_msg_sys_idle_pkt {105	struct hfi_pkt_hdr hdr;106};107 108struct hfi_msg_sys_ping_ack_pkt {109	struct hfi_pkt_hdr hdr;110	u32 client_data;111};112 113struct hfi_msg_sys_property_info_pkt {114	struct hfi_pkt_hdr hdr;115	u32 num_properties;116	u32 property;117	u8 data[];118};119 120struct hfi_msg_session_load_resources_done_pkt {121	struct hfi_session_hdr_pkt shdr;122	u32 error_type;123};124 125struct hfi_msg_session_start_done_pkt {126	struct hfi_session_hdr_pkt shdr;127	u32 error_type;128};129 130struct hfi_msg_session_stop_done_pkt {131	struct hfi_session_hdr_pkt shdr;132	u32 error_type;133};134 135struct hfi_msg_session_suspend_done_pkt {136	struct hfi_session_hdr_pkt shdr;137	u32 error_type;138};139 140struct hfi_msg_session_resume_done_pkt {141	struct hfi_session_hdr_pkt shdr;142	u32 error_type;143};144 145struct hfi_msg_session_flush_done_pkt {146	struct hfi_session_hdr_pkt shdr;147	u32 error_type;148	u32 flush_type;149};150 151struct hfi_msg_session_empty_buffer_done_pkt {152	struct hfi_session_hdr_pkt shdr;153	u32 error_type;154	u32 offset;155	u32 filled_len;156	u32 input_tag;157	u32 packet_buffer;158	u32 extradata_buffer;159	u32 data[];160};161 162struct hfi_msg_session_fbd_compressed_pkt {163	struct hfi_session_hdr_pkt shdr;164	u32 time_stamp_hi;165	u32 time_stamp_lo;166	u32 error_type;167	u32 flags;168	u32 mark_target;169	u32 mark_data;170	u32 stats;171	u32 offset;172	u32 alloc_len;173	u32 filled_len;174	u32 input_tag;175	u32 output_tag;176	u32 picture_type;177	u32 packet_buffer;178	u32 extradata_buffer;179	u32 data[];180};181 182struct hfi_msg_session_fbd_uncompressed_plane0_pkt {183	struct hfi_session_hdr_pkt shdr;184	u32 stream_id;185	u32 view_id;186	u32 error_type;187	u32 time_stamp_hi;188	u32 time_stamp_lo;189	u32 flags;190	u32 mark_target;191	u32 mark_data;192	u32 stats;193	u32 alloc_len;194	u32 filled_len;195	u32 offset;196	u32 frame_width;197	u32 frame_height;198	u32 start_x_coord;199	u32 start_y_coord;200	u32 input_tag;201	u32 input_tag2;202	u32 output_tag;203	u32 picture_type;204	u32 packet_buffer;205	u32 extradata_buffer;206	u32 data[];207};208 209struct hfi_msg_session_fbd_uncompressed_plane1_pkt {210	u32 flags;211	u32 alloc_len;212	u32 filled_len;213	u32 offset;214	u32 packet_buffer2;215	u32 data[];216};217 218struct hfi_msg_session_fbd_uncompressed_plane2_pkt {219	u32 flags;220	u32 alloc_len;221	u32 filled_len;222	u32 offset;223	u32 packet_buffer3;224	u32 data[];225};226 227struct hfi_msg_session_parse_sequence_header_done_pkt {228	struct hfi_session_hdr_pkt shdr;229	u32 error_type;230	u32 num_properties;231	u32 data[];232};233 234struct hfi_msg_session_property_info_pkt {235	struct hfi_session_hdr_pkt shdr;236	u32 num_properties;237	u32 property;238	u8 data[];239};240 241struct hfi_msg_session_release_resources_done_pkt {242	struct hfi_session_hdr_pkt shdr;243	u32 error_type;244};245 246struct hfi_msg_session_release_buffers_done_pkt {247	struct hfi_session_hdr_pkt shdr;248	u32 error_type;249	u32 num_buffers;250	u32 buffer_info[];251};252 253struct hfi_msg_sys_debug_pkt {254	struct hfi_pkt_hdr hdr;255	u32 msg_type;256	u32 msg_size;257	u32 time_stamp_hi;258	u32 time_stamp_lo;259	u8 msg_data[];260};261 262struct hfi_msg_sys_coverage_pkt {263	struct hfi_pkt_hdr hdr;264	u32 msg_size;265	u32 time_stamp_hi;266	u32 time_stamp_lo;267	u8 msg_data[];268};269 270struct venus_core;271struct hfi_pkt_hdr;272 273void hfi_process_watchdog_timeout(struct venus_core *core);274u32 hfi_process_msg_packet(struct venus_core *core, struct hfi_pkt_hdr *hdr);275 276#endif277