cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

hfi_msgs.h (5825B)


      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			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/* 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[1];
     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[1];
     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[1];
     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[1];
    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[1];
    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[1];
    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[1];
    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#endif