123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- /* SPDX-License-Identifier: GPL-2.0-only */
- /*
- * Copyright (c) 2012-2021, The Linux Foundation. All rights reserved.
- */
- #ifndef __H_HFI_COMMAND_H__
- #define __H_HFI_COMMAND_H__
- #define HFI_VIDEO_ARCH_OX 0x1
- struct hfi_header {
- u32 size;
- u32 session_id;
- u32 header_id;
- u32 reserved[4];
- u32 num_packets;
- };
- struct hfi_packet {
- u32 size;
- u32 type;
- u32 flags;
- u32 payload_info;
- u32 port;
- u32 packet_id;
- u32 reserved[2];
- };
- struct hfi_buffer {
- u32 type;
- u32 index;
- u64 base_address;
- u32 addr_offset;
- u32 buffer_size;
- u32 data_offset;
- u32 data_size;
- u32 flags;
- u64 timestamp;
- u32 reserved[5];
- };
- enum hfi_packet_host_flags {
- HFI_HOST_FLAGS_NONE = 0,
- HFI_HOST_FLAGS_INTR_REQUIRED = BIT(0),
- HFI_HOST_FLAGS_RESPONSE_REQUIRED = BIT(1),
- HFI_HOST_FLAGS_NON_DISCARDABLE = BIT(2),
- HFI_HOST_FLAGS_GET_PROPERTY = BIT(3),
- };
- enum hfi_packet_firmware_flags {
- HFI_FW_FLAGS_NONE = 0,
- HFI_FW_FLAGS_SUCCESS = BIT(0),
- HFI_FW_FLAGS_INFORMATION = BIT(1),
- HFI_FW_FLAGS_SESSION_ERROR = BIT(2),
- HFI_FW_FLAGS_SYSTEM_ERROR = BIT(3),
- };
- enum hfi_packet_payload_info {
- HFI_PAYLOAD_NONE = 0x00000000,
- HFI_PAYLOAD_U32 = 0x00000001,
- HFI_PAYLOAD_S32 = 0x00000002,
- HFI_PAYLOAD_U64 = 0x00000003,
- HFI_PAYLOAD_S64 = 0x00000004,
- HFI_PAYLOAD_STRUCTURE = 0x00000005,
- HFI_PAYLOAD_BLOB = 0x00000006,
- HFI_PAYLOAD_STRING = 0x00000007,
- HFI_PAYLOAD_Q16 = 0x00000008,
- HFI_PAYLOAD_U32_ENUM = 0x00000009,
- HFI_PAYLOAD_32_PACKED = 0x0000000a,
- HFI_PAYLOAD_U32_ARRAY = 0x0000000b,
- HFI_PAYLOAD_S32_ARRAY = 0x0000000c,
- };
- enum hfi_packet_port_type {
- HFI_PORT_NONE = 0,
- HFI_PORT_BITSTREAM = BIT(0),
- HFI_PORT_RAW = BIT(1),
- };
- enum hfi_buffer_type {
- HFI_BUFFER_BITSTREAM = 0x00000001,
- HFI_BUFFER_RAW = 0x00000002,
- HFI_BUFFER_METADATA = 0x00000003,
- HFI_BUFFER_SCRATCH = 0x00000010,
- HFI_BUFFER_SCRATCH_1 = 0x00000011,
- HFI_BUFFER_SCRATCH_2 = 0x00000012,
- HFI_BUFFER_PERSIST = 0x00000013,
- HFI_BUFFER_PERSIST_1 = 0x00000014,
- HFI_BUFFER_SUBCACHE = 0x00000020,
- HFI_BUFFER_SFR = 0x00000021,
- };
- enum hfi_buffer_host_flags {
- HFI_BUF_HOST_FLAG_NONE = 0,
- HFI_BUF_HOST_FLAG_RELEASE = BIT(0),
- HFI_BUF_HOST_FLAG_READONLY = BIT(1),
- HFI_BUF_HOST_FLAG_CODEC_CONFIG = BIT(2),
- };
- enum hfi_buffer_firmware_flags {
- HFI_BUF_FW_FLAG_NONE = 0,
- HFI_BUF_FW_FLAG_LAST = BIT(0),
- HFI_BUF_FW_FLAG_READONLY = BIT(1),
- HFI_BUF_FW_FLAG_CODEC_CONFIG = BIT(2),
- };
- enum hfi_metapayload_header_flags {
- HFI_METADATA_FLAGS_NONE = 0,
- HFI_METADATA_FLAGS_TOP_FIELD = BIT(0),
- HFI_METADATA_FLAGS_BOTTOM_FIELDS = BIT(1),
- };
- struct metabuf_header {
- u32 count;
- u32 size;
- u32 version;
- u32 reserved[5];
- };
- struct metapayload_header {
- u32 type;
- u32 size;
- u32 version;
- u32 offset;
- u32 flags;
- u32 reserved[3];
- };
- enum hfi_property_mode_type {
- HFI_MODE_NONE = 0,
- HFI_MODE_PORT_SETTINGS_CHANGE = BIT(0),
- HFI_MODE_PROPERTY = BIT(1),
- HFI_MODE_METADATA = BIT(2),
- };
- #define HFI_CMD_INIT 0x1
- #define HFI_CMD_POWER_COLLAPSE 0x2
- #define HFI_CMD_OPEN 0x3
- #define HFI_CMD_CLOSE 0x4
- #define HFI_CMD_START 0x5
- #define HFI_CMD_STOP 0x6
- #define HFI_CMD_DRAIN 0x7
- #define HFI_CMD_RESUME 0x8
- #define HFI_CMD_BUFFER 0x9
- #define HFI_CMD_DELIVERY_MODE 0xA
- #define HFI_CMD_SUBSCRIBE_MODE 0xB
- #define HFI_CMD_SETTINGS_CHANGE 0xC
- #endif //__H_HFI_COMMAND_H__
|