1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved. 4 */ 5 6 #ifndef __IRIS_HFI_GEN2_DEFINES_H__ 7 #define __IRIS_HFI_GEN2_DEFINES_H__ 8 9 #include <linux/types.h> 10 11 #define HFI_VIDEO_ARCH_LX 0x1 12 13 #define HFI_CMD_BEGIN 0x01000000 14 #define HFI_CMD_INIT 0x01000001 15 #define HFI_CMD_POWER_COLLAPSE 0x01000002 16 #define HFI_CMD_OPEN 0x01000003 17 #define HFI_CMD_CLOSE 0x01000004 18 #define HFI_CMD_START 0x01000005 19 #define HFI_CMD_STOP 0x01000006 20 #define HFI_CMD_DRAIN 0x01000007 21 #define HFI_CMD_RESUME 0x01000008 22 #define HFI_CMD_BUFFER 0x01000009 23 #define HFI_CMD_SUBSCRIBE_MODE 0x0100000B 24 #define HFI_CMD_SETTINGS_CHANGE 0x0100000C 25 #define HFI_CMD_PAUSE 0x01000011 26 #define HFI_CMD_END 0x01FFFFFF 27 28 #define HFI_BITMASK_BITSTREAM_WIDTH 0xffff0000 29 #define HFI_BITMASK_BITSTREAM_HEIGHT 0x0000ffff 30 #define HFI_BITMASK_FRAME_MBS_ONLY_FLAG 0x00000001 31 32 #define HFI_PROP_BEGIN 0x03000000 33 #define HFI_PROP_IMAGE_VERSION 0x03000001 34 #define HFI_PROP_INTRA_FRAME_POWER_COLLAPSE 0x03000002 35 #define HFI_PROP_UBWC_MAX_CHANNELS 0x03000003 36 #define HFI_PROP_UBWC_MAL_LENGTH 0x03000004 37 #define HFI_PROP_UBWC_HBB 0x03000005 38 #define HFI_PROP_UBWC_BANK_SWZL_LEVEL1 0x03000006 39 #define HFI_PROP_UBWC_BANK_SWZL_LEVEL2 0x03000007 40 #define HFI_PROP_UBWC_BANK_SWZL_LEVEL3 0x03000008 41 #define HFI_PROP_UBWC_BANK_SPREADING 0x03000009 42 #define HFI_PROP_CODEC 0x03000100 43 #define HFI_PROP_COLOR_FORMAT 0x03000101 44 #define HFI_PROP_BITSTREAM_RESOLUTION 0x03000103 45 #define HFI_PROP_LINEAR_STRIDE_SCANLINE 0x03000104 46 #define HFI_PROP_CROP_OFFSETS 0x03000105 47 #define HFI_PROP_PROFILE 0x03000107 48 #define HFI_PROP_LEVEL 0x03000108 49 #define HFI_PROP_STAGE 0x0300010a 50 #define HFI_PROP_PIPE 0x0300010b 51 #define HFI_PROP_LUMA_CHROMA_BIT_DEPTH 0x0300010f 52 #define HFI_PROP_CODED_FRAMES 0x03000120 53 #define HFI_PROP_CABAC_SESSION 0x03000121 54 #define HFI_PROP_BUFFER_HOST_MAX_COUNT 0x03000123 55 #define HFI_PROP_BUFFER_FW_MIN_OUTPUT_COUNT 0x03000124 56 #define HFI_PROP_PIC_ORDER_CNT_TYPE 0x03000128 57 #define HFI_PROP_QUALITY_MODE 0x03000148 58 #define HFI_PROP_SIGNAL_COLOR_INFO 0x03000155 59 #define HFI_PROP_PICTURE_TYPE 0x03000162 60 #define HFI_PROP_DEC_DEFAULT_HEADER 0x03000168 61 #define HFI_PROP_DEC_START_FROM_RAP_FRAME 0x03000169 62 #define HFI_PROP_NO_OUTPUT 0x0300016a 63 #define HFI_PROP_COMV_BUFFER_COUNT 0x03000193 64 #define HFI_PROP_END 0x03FFFFFF 65 66 #define HFI_SESSION_ERROR_BEGIN 0x04000000 67 #define HFI_ERROR_UNKNOWN_SESSION 0x04000001 68 #define HFI_ERROR_MAX_SESSIONS 0x04000002 69 #define HFI_ERROR_FATAL 0x04000003 70 #define HFI_ERROR_INVALID_STATE 0x04000004 71 #define HFI_ERROR_INSUFFICIENT_RESOURCES 0x04000005 72 #define HFI_ERROR_BUFFER_NOT_SET 0x04000006 73 #define HFI_ERROR_STREAM_UNSUPPORTED 0x04000008 74 #define HFI_SESSION_ERROR_END 0x04FFFFFF 75 76 #define HFI_SYSTEM_ERROR_BEGIN 0x05000000 77 #define HFI_SYS_ERROR_WD_TIMEOUT 0x05000001 78 #define HFI_SYSTEM_ERROR_END 0x05FFFFFF 79 80 #define HFI_INFORMATION_BEGIN 0x06000000 81 #define HFI_INFO_UNSUPPORTED 0x06000001 82 #define HFI_INFO_DATA_CORRUPT 0x06000002 83 #define HFI_INFO_BUFFER_OVERFLOW 0x06000004 84 #define HFI_INFO_HFI_FLAG_DRAIN_LAST 0x06000006 85 #define HFI_INFO_HFI_FLAG_PSC_LAST 0x06000007 86 #define HFI_INFORMATION_END 0x06FFFFFF 87 88 enum hfi_property_mode_type { 89 HFI_MODE_PORT_SETTINGS_CHANGE = 0x00000001, 90 HFI_MODE_PROPERTY = 0x00000002, 91 }; 92 93 enum hfi_color_format { 94 HFI_COLOR_FMT_OPAQUE = 0, 95 HFI_COLOR_FMT_NV12 = 1, 96 HFI_COLOR_FMT_NV12_UBWC = 2, 97 HFI_COLOR_FMT_P010 = 3, 98 HFI_COLOR_FMT_TP10_UBWC = 4, 99 HFI_COLOR_FMT_RGBA8888 = 5, 100 HFI_COLOR_FMT_RGBA8888_UBWC = 6, 101 HFI_COLOR_FMT_NV21 = 7, 102 }; 103 104 enum hfi_codec_type { 105 HFI_CODEC_DECODE_AVC = 1, 106 HFI_CODEC_ENCODE_AVC = 2, 107 }; 108 109 enum hfi_picture_type { 110 HFI_PICTURE_IDR = 0x00000001, 111 HFI_PICTURE_P = 0x00000002, 112 HFI_PICTURE_B = 0x00000004, 113 HFI_PICTURE_I = 0x00000008, 114 HFI_PICTURE_CRA = 0x00000010, 115 HFI_PICTURE_BLA = 0x00000020, 116 }; 117 118 enum hfi_buffer_type { 119 HFI_BUFFER_BITSTREAM = 0x00000001, 120 HFI_BUFFER_RAW = 0x00000002, 121 HFI_BUFFER_METADATA = 0x00000003, 122 HFI_BUFFER_SUBCACHE = 0x00000004, 123 HFI_BUFFER_PARTIAL_DATA = 0x00000005, 124 HFI_BUFFER_DPB = 0x00000006, 125 HFI_BUFFER_BIN = 0x00000007, 126 HFI_BUFFER_LINE = 0x00000008, 127 HFI_BUFFER_ARP = 0x00000009, 128 HFI_BUFFER_COMV = 0x0000000A, 129 HFI_BUFFER_NON_COMV = 0x0000000B, 130 HFI_BUFFER_PERSIST = 0x0000000C, 131 HFI_BUFFER_VPSS = 0x0000000D, 132 }; 133 134 enum hfi_buffer_host_flags { 135 HFI_BUF_HOST_FLAG_RELEASE = 0x00000001, 136 HFI_BUF_HOST_FLAG_READONLY = 0x00000010, 137 HFI_BUF_HOST_FLAG_CODEC_CONFIG = 0x00000100, 138 HFI_BUF_HOST_FLAGS_CB_NON_SECURE = 0x00000200, 139 }; 140 141 enum hfi_buffer_firmware_flags { 142 HFI_BUF_FW_FLAG_RELEASE_DONE = 0x00000001, 143 HFI_BUF_FW_FLAG_READONLY = 0x00000010, 144 HFI_BUF_FW_FLAG_LAST = 0x10000000, 145 HFI_BUF_FW_FLAG_PSC_LAST = 0x20000000, 146 }; 147 148 enum hfi_packet_firmware_flags { 149 HFI_FW_FLAGS_SUCCESS = 0x00000001, 150 HFI_FW_FLAGS_INFORMATION = 0x00000002, 151 HFI_FW_FLAGS_SESSION_ERROR = 0x00000004, 152 HFI_FW_FLAGS_SYSTEM_ERROR = 0x00000008, 153 }; 154 155 struct hfi_debug_header { 156 u32 size; 157 u32 debug_level; 158 u32 reserved[2]; 159 }; 160 161 #endif 162