1 2 /* 3 * Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved. 4 * SPDX-License-Identifier: ISC 5 */ 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #ifndef _CE_SRC_DESC_H_ 20 #define _CE_SRC_DESC_H_ 21 #if !defined(__ASSEMBLER__) 22 #endif 23 24 #define NUM_OF_DWORDS_CE_SRC_DESC 4 25 26 27 struct ce_src_desc { 28 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 29 uint32_t src_buffer_low : 32; 30 uint32_t src_buffer_high : 8, 31 toeplitz_en : 1, 32 src_swap : 1, 33 dest_swap : 1, 34 gather : 1, 35 ce_res_0 : 1, 36 barrier_read : 1, 37 ce_res_1 : 2, 38 length : 16; 39 uint32_t fw_metadata : 16, 40 ce_res_2 : 16; 41 uint32_t ce_res_3 : 20, 42 ring_id : 8, 43 looping_count : 4; 44 #else 45 uint32_t src_buffer_low : 32; 46 uint32_t length : 16, 47 ce_res_1 : 2, 48 barrier_read : 1, 49 ce_res_0 : 1, 50 gather : 1, 51 dest_swap : 1, 52 src_swap : 1, 53 toeplitz_en : 1, 54 src_buffer_high : 8; 55 uint32_t ce_res_2 : 16, 56 fw_metadata : 16; 57 uint32_t looping_count : 4, 58 ring_id : 8, 59 ce_res_3 : 20; 60 #endif 61 }; 62 63 64 65 66 #define CE_SRC_DESC_SRC_BUFFER_LOW_OFFSET 0x00000000 67 #define CE_SRC_DESC_SRC_BUFFER_LOW_LSB 0 68 #define CE_SRC_DESC_SRC_BUFFER_LOW_MSB 31 69 #define CE_SRC_DESC_SRC_BUFFER_LOW_MASK 0xffffffff 70 71 72 73 74 #define CE_SRC_DESC_SRC_BUFFER_HIGH_OFFSET 0x00000004 75 #define CE_SRC_DESC_SRC_BUFFER_HIGH_LSB 0 76 #define CE_SRC_DESC_SRC_BUFFER_HIGH_MSB 7 77 #define CE_SRC_DESC_SRC_BUFFER_HIGH_MASK 0x000000ff 78 79 80 81 82 #define CE_SRC_DESC_TOEPLITZ_EN_OFFSET 0x00000004 83 #define CE_SRC_DESC_TOEPLITZ_EN_LSB 8 84 #define CE_SRC_DESC_TOEPLITZ_EN_MSB 8 85 #define CE_SRC_DESC_TOEPLITZ_EN_MASK 0x00000100 86 87 88 89 90 #define CE_SRC_DESC_SRC_SWAP_OFFSET 0x00000004 91 #define CE_SRC_DESC_SRC_SWAP_LSB 9 92 #define CE_SRC_DESC_SRC_SWAP_MSB 9 93 #define CE_SRC_DESC_SRC_SWAP_MASK 0x00000200 94 95 96 97 98 #define CE_SRC_DESC_DEST_SWAP_OFFSET 0x00000004 99 #define CE_SRC_DESC_DEST_SWAP_LSB 10 100 #define CE_SRC_DESC_DEST_SWAP_MSB 10 101 #define CE_SRC_DESC_DEST_SWAP_MASK 0x00000400 102 103 104 105 106 #define CE_SRC_DESC_GATHER_OFFSET 0x00000004 107 #define CE_SRC_DESC_GATHER_LSB 11 108 #define CE_SRC_DESC_GATHER_MSB 11 109 #define CE_SRC_DESC_GATHER_MASK 0x00000800 110 111 112 113 114 #define CE_SRC_DESC_CE_RES_0_OFFSET 0x00000004 115 #define CE_SRC_DESC_CE_RES_0_LSB 12 116 #define CE_SRC_DESC_CE_RES_0_MSB 12 117 #define CE_SRC_DESC_CE_RES_0_MASK 0x00001000 118 119 120 121 122 #define CE_SRC_DESC_BARRIER_READ_OFFSET 0x00000004 123 #define CE_SRC_DESC_BARRIER_READ_LSB 13 124 #define CE_SRC_DESC_BARRIER_READ_MSB 13 125 #define CE_SRC_DESC_BARRIER_READ_MASK 0x00002000 126 127 128 129 130 #define CE_SRC_DESC_CE_RES_1_OFFSET 0x00000004 131 #define CE_SRC_DESC_CE_RES_1_LSB 14 132 #define CE_SRC_DESC_CE_RES_1_MSB 15 133 #define CE_SRC_DESC_CE_RES_1_MASK 0x0000c000 134 135 136 137 138 #define CE_SRC_DESC_LENGTH_OFFSET 0x00000004 139 #define CE_SRC_DESC_LENGTH_LSB 16 140 #define CE_SRC_DESC_LENGTH_MSB 31 141 #define CE_SRC_DESC_LENGTH_MASK 0xffff0000 142 143 144 145 146 #define CE_SRC_DESC_FW_METADATA_OFFSET 0x00000008 147 #define CE_SRC_DESC_FW_METADATA_LSB 0 148 #define CE_SRC_DESC_FW_METADATA_MSB 15 149 #define CE_SRC_DESC_FW_METADATA_MASK 0x0000ffff 150 151 152 153 154 #define CE_SRC_DESC_CE_RES_2_OFFSET 0x00000008 155 #define CE_SRC_DESC_CE_RES_2_LSB 16 156 #define CE_SRC_DESC_CE_RES_2_MSB 31 157 #define CE_SRC_DESC_CE_RES_2_MASK 0xffff0000 158 159 160 161 162 #define CE_SRC_DESC_CE_RES_3_OFFSET 0x0000000c 163 #define CE_SRC_DESC_CE_RES_3_LSB 0 164 #define CE_SRC_DESC_CE_RES_3_MSB 19 165 #define CE_SRC_DESC_CE_RES_3_MASK 0x000fffff 166 167 168 169 170 #define CE_SRC_DESC_RING_ID_OFFSET 0x0000000c 171 #define CE_SRC_DESC_RING_ID_LSB 20 172 #define CE_SRC_DESC_RING_ID_MSB 27 173 #define CE_SRC_DESC_RING_ID_MASK 0x0ff00000 174 175 176 177 178 #define CE_SRC_DESC_LOOPING_COUNT_OFFSET 0x0000000c 179 #define CE_SRC_DESC_LOOPING_COUNT_LSB 28 180 #define CE_SRC_DESC_LOOPING_COUNT_MSB 31 181 #define CE_SRC_DESC_LOOPING_COUNT_MASK 0xf0000000 182 183 184 185 #endif 186