1 /* 2 * Copyright (c) 2016-2017 The Linux Foundation. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for 5 * any purpose with or without fee is hereby granted, provided that the 6 * above copyright notice and this permission notice appear in all 7 * copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 10 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 11 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 12 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 13 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 14 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 15 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 16 * PERFORMANCE OF THIS SOFTWARE. 17 */ 18 19 // 20 // DO NOT EDIT! This file is automatically generated 21 // These definitions are tied to a particular hardware layout 22 23 24 #ifndef _REO_FLUSH_TIMEOUT_LIST_H_ 25 #define _REO_FLUSH_TIMEOUT_LIST_H_ 26 #if !defined(__ASSEMBLER__) 27 #endif 28 29 #include "uniform_reo_cmd_header.h" 30 31 // ################ START SUMMARY ################# 32 // 33 // Dword Fields 34 // 0 struct uniform_reo_cmd_header cmd_header; 35 // 1 ac_timout_list[1:0], reserved_1[31:2] 36 // 2 minimum_release_desc_count[15:0], minimum_forward_buf_count[31:16] 37 // 3 reserved_3a[31:0] 38 // 4 reserved_4a[31:0] 39 // 5 reserved_5a[31:0] 40 // 6 reserved_6a[31:0] 41 // 7 reserved_7a[31:0] 42 // 8 reserved_8a[31:0] 43 // 44 // ################ END SUMMARY ################# 45 46 #define NUM_OF_DWORDS_REO_FLUSH_TIMEOUT_LIST 9 47 48 struct reo_flush_timeout_list { 49 struct uniform_reo_cmd_header cmd_header; 50 uint32_t ac_timout_list : 2, //[1:0] 51 reserved_1 : 30; //[31:2] 52 uint32_t minimum_release_desc_count : 16, //[15:0] 53 minimum_forward_buf_count : 16; //[31:16] 54 uint32_t reserved_3a : 32; //[31:0] 55 uint32_t reserved_4a : 32; //[31:0] 56 uint32_t reserved_5a : 32; //[31:0] 57 uint32_t reserved_6a : 32; //[31:0] 58 uint32_t reserved_7a : 32; //[31:0] 59 uint32_t reserved_8a : 32; //[31:0] 60 }; 61 62 /* 63 64 struct uniform_reo_cmd_header cmd_header 65 66 Consumer: REO 67 68 Producer: SW 69 70 71 72 Details for command execution tracking purposes. 73 74 ac_timout_list 75 76 Consumer: REO 77 78 Producer: SW 79 80 81 82 The AC_timeout list to be used for this command 83 84 <legal all> 85 86 reserved_1 87 88 <legal 0> 89 90 minimum_release_desc_count 91 92 Consumer: REO 93 94 Producer: SW 95 96 97 98 The minimum number of link descriptors requested to be 99 released. If set to 0, only buffer release counts seems to 100 be important... When set to very high value, likely the 101 entire timeout list will be exhausted before this count is 102 reached or maybe this count will not get reached. REO 103 however will stop here as it can not do anything else. 104 105 106 107 When both this field and field Minimum_forward_buf_count 108 are > 0, REO needs to meet both requirements. When both 109 entries are 0 (which should be a programming error), REO 110 does not need to do anything. 111 112 113 114 Note that this includes counts of MPDU link Desc as well 115 as MSDU link Desc. Where the count of MSDU link Desc is not 116 known to REO it's approximated by deriving from MSDU count 117 118 <legal all> 119 120 minimum_forward_buf_count 121 122 Consumer: REO 123 124 Producer: SW 125 126 127 128 The minimum number of buffer descriptors requested to be 129 passed on to the REO destination rings. 130 131 132 133 If set to 0, only descriptor release counts seems to be 134 important... 135 136 137 138 When set to very high value, likely the entire timeout 139 list will be exhausted before this count is reached or maybe 140 this count will not get reached. REO however will stop here 141 as it can not do anything else. 142 143 144 145 Note that REO does not know the exact buffer count. This 146 can be approximated by using the MSDU_COUNT 147 148 <legal all> 149 150 reserved_3a 151 152 <legal 0> 153 154 reserved_4a 155 156 <legal 0> 157 158 reserved_5a 159 160 <legal 0> 161 162 reserved_6a 163 164 <legal 0> 165 166 reserved_7a 167 168 <legal 0> 169 170 reserved_8a 171 172 <legal 0> 173 */ 174 175 #define REO_FLUSH_TIMEOUT_LIST_0_UNIFORM_REO_CMD_HEADER_CMD_HEADER_OFFSET 0x00000000 176 #define REO_FLUSH_TIMEOUT_LIST_0_UNIFORM_REO_CMD_HEADER_CMD_HEADER_LSB 0 177 #define REO_FLUSH_TIMEOUT_LIST_0_UNIFORM_REO_CMD_HEADER_CMD_HEADER_MASK 0xffffffff 178 179 /* Description REO_FLUSH_TIMEOUT_LIST_1_AC_TIMOUT_LIST 180 181 Consumer: REO 182 183 Producer: SW 184 185 186 187 The AC_timeout list to be used for this command 188 189 <legal all> 190 */ 191 #define REO_FLUSH_TIMEOUT_LIST_1_AC_TIMOUT_LIST_OFFSET 0x00000004 192 #define REO_FLUSH_TIMEOUT_LIST_1_AC_TIMOUT_LIST_LSB 0 193 #define REO_FLUSH_TIMEOUT_LIST_1_AC_TIMOUT_LIST_MASK 0x00000003 194 195 /* Description REO_FLUSH_TIMEOUT_LIST_1_RESERVED_1 196 197 <legal 0> 198 */ 199 #define REO_FLUSH_TIMEOUT_LIST_1_RESERVED_1_OFFSET 0x00000004 200 #define REO_FLUSH_TIMEOUT_LIST_1_RESERVED_1_LSB 2 201 #define REO_FLUSH_TIMEOUT_LIST_1_RESERVED_1_MASK 0xfffffffc 202 203 /* Description REO_FLUSH_TIMEOUT_LIST_2_MINIMUM_RELEASE_DESC_COUNT 204 205 Consumer: REO 206 207 Producer: SW 208 209 210 211 The minimum number of link descriptors requested to be 212 released. If set to 0, only buffer release counts seems to 213 be important... When set to very high value, likely the 214 entire timeout list will be exhausted before this count is 215 reached or maybe this count will not get reached. REO 216 however will stop here as it can not do anything else. 217 218 219 220 When both this field and field Minimum_forward_buf_count 221 are > 0, REO needs to meet both requirements. When both 222 entries are 0 (which should be a programming error), REO 223 does not need to do anything. 224 225 226 227 Note that this includes counts of MPDU link Desc as well 228 as MSDU link Desc. Where the count of MSDU link Desc is not 229 known to REO it's approximated by deriving from MSDU count 230 231 <legal all> 232 */ 233 #define REO_FLUSH_TIMEOUT_LIST_2_MINIMUM_RELEASE_DESC_COUNT_OFFSET 0x00000008 234 #define REO_FLUSH_TIMEOUT_LIST_2_MINIMUM_RELEASE_DESC_COUNT_LSB 0 235 #define REO_FLUSH_TIMEOUT_LIST_2_MINIMUM_RELEASE_DESC_COUNT_MASK 0x0000ffff 236 237 /* Description REO_FLUSH_TIMEOUT_LIST_2_MINIMUM_FORWARD_BUF_COUNT 238 239 Consumer: REO 240 241 Producer: SW 242 243 244 245 The minimum number of buffer descriptors requested to be 246 passed on to the REO destination rings. 247 248 249 250 If set to 0, only descriptor release counts seems to be 251 important... 252 253 254 255 When set to very high value, likely the entire timeout 256 list will be exhausted before this count is reached or maybe 257 this count will not get reached. REO however will stop here 258 as it can not do anything else. 259 260 261 262 Note that REO does not know the exact buffer count. This 263 can be approximated by using the MSDU_COUNT 264 265 <legal all> 266 */ 267 #define REO_FLUSH_TIMEOUT_LIST_2_MINIMUM_FORWARD_BUF_COUNT_OFFSET 0x00000008 268 #define REO_FLUSH_TIMEOUT_LIST_2_MINIMUM_FORWARD_BUF_COUNT_LSB 16 269 #define REO_FLUSH_TIMEOUT_LIST_2_MINIMUM_FORWARD_BUF_COUNT_MASK 0xffff0000 270 271 /* Description REO_FLUSH_TIMEOUT_LIST_3_RESERVED_3A 272 273 <legal 0> 274 */ 275 #define REO_FLUSH_TIMEOUT_LIST_3_RESERVED_3A_OFFSET 0x0000000c 276 #define REO_FLUSH_TIMEOUT_LIST_3_RESERVED_3A_LSB 0 277 #define REO_FLUSH_TIMEOUT_LIST_3_RESERVED_3A_MASK 0xffffffff 278 279 /* Description REO_FLUSH_TIMEOUT_LIST_4_RESERVED_4A 280 281 <legal 0> 282 */ 283 #define REO_FLUSH_TIMEOUT_LIST_4_RESERVED_4A_OFFSET 0x00000010 284 #define REO_FLUSH_TIMEOUT_LIST_4_RESERVED_4A_LSB 0 285 #define REO_FLUSH_TIMEOUT_LIST_4_RESERVED_4A_MASK 0xffffffff 286 287 /* Description REO_FLUSH_TIMEOUT_LIST_5_RESERVED_5A 288 289 <legal 0> 290 */ 291 #define REO_FLUSH_TIMEOUT_LIST_5_RESERVED_5A_OFFSET 0x00000014 292 #define REO_FLUSH_TIMEOUT_LIST_5_RESERVED_5A_LSB 0 293 #define REO_FLUSH_TIMEOUT_LIST_5_RESERVED_5A_MASK 0xffffffff 294 295 /* Description REO_FLUSH_TIMEOUT_LIST_6_RESERVED_6A 296 297 <legal 0> 298 */ 299 #define REO_FLUSH_TIMEOUT_LIST_6_RESERVED_6A_OFFSET 0x00000018 300 #define REO_FLUSH_TIMEOUT_LIST_6_RESERVED_6A_LSB 0 301 #define REO_FLUSH_TIMEOUT_LIST_6_RESERVED_6A_MASK 0xffffffff 302 303 /* Description REO_FLUSH_TIMEOUT_LIST_7_RESERVED_7A 304 305 <legal 0> 306 */ 307 #define REO_FLUSH_TIMEOUT_LIST_7_RESERVED_7A_OFFSET 0x0000001c 308 #define REO_FLUSH_TIMEOUT_LIST_7_RESERVED_7A_LSB 0 309 #define REO_FLUSH_TIMEOUT_LIST_7_RESERVED_7A_MASK 0xffffffff 310 311 /* Description REO_FLUSH_TIMEOUT_LIST_8_RESERVED_8A 312 313 <legal 0> 314 */ 315 #define REO_FLUSH_TIMEOUT_LIST_8_RESERVED_8A_OFFSET 0x00000020 316 #define REO_FLUSH_TIMEOUT_LIST_8_RESERVED_8A_LSB 0 317 #define REO_FLUSH_TIMEOUT_LIST_8_RESERVED_8A_MASK 0xffffffff 318 319 320 #endif // _REO_FLUSH_TIMEOUT_LIST_H_ 321