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