/* * Copyright (c) 2016-2018 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ #ifndef _REO_UPDATE_RX_REO_QUEUE_H_ #define _REO_UPDATE_RX_REO_QUEUE_H_ #if !defined(__ASSEMBLER__) #endif #include "uniform_reo_cmd_header.h" // ################ START SUMMARY ################# // // Dword Fields // 0 struct uniform_reo_cmd_header cmd_header; // 1 rx_reo_queue_desc_addr_31_0[31:0] // 2 rx_reo_queue_desc_addr_39_32[7:0], update_receive_queue_number[8], update_vld[9], update_associated_link_descriptor_counter[10], update_disable_duplicate_detection[11], update_soft_reorder_enable[12], update_ac[13], update_bar[14], update_rty[15], update_chk_2k_mode[16], update_oor_mode[17], update_ba_window_size[18], update_pn_check_needed[19], update_pn_shall_be_even[20], update_pn_shall_be_uneven[21], update_pn_handling_enable[22], update_pn_size[23], update_ignore_ampdu_flag[24], update_svld[25], update_ssn[26], update_seq_2k_error_detected_flag[27], update_pn_error_detected_flag[28], update_pn_valid[29], update_pn[30], clear_stat_counters[31] // 3 receive_queue_number[15:0], vld[16], associated_link_descriptor_counter[18:17], disable_duplicate_detection[19], soft_reorder_enable[20], ac[22:21], bar[23], rty[24], chk_2k_mode[25], oor_mode[26], pn_check_needed[27], pn_shall_be_even[28], pn_shall_be_uneven[29], pn_handling_enable[30], ignore_ampdu_flag[31] // 4 ba_window_size[7:0], pn_size[9:8], svld[10], ssn[22:11], seq_2k_error_detected_flag[23], pn_error_detected_flag[24], pn_valid[25], flush_from_cache[26], reserved_4a[31:27] // 5 pn_31_0[31:0] // 6 pn_63_32[31:0] // 7 pn_95_64[31:0] // 8 pn_127_96[31:0] // // ################ END SUMMARY ################# #define NUM_OF_DWORDS_REO_UPDATE_RX_REO_QUEUE 9 struct reo_update_rx_reo_queue { struct uniform_reo_cmd_header cmd_header; uint32_t rx_reo_queue_desc_addr_31_0 : 32; //[31:0] uint32_t rx_reo_queue_desc_addr_39_32 : 8, //[7:0] update_receive_queue_number : 1, //[8] update_vld : 1, //[9] update_associated_link_descriptor_counter: 1, //[10] update_disable_duplicate_detection: 1, //[11] update_soft_reorder_enable : 1, //[12] update_ac : 1, //[13] update_bar : 1, //[14] update_rty : 1, //[15] update_chk_2k_mode : 1, //[16] update_oor_mode : 1, //[17] update_ba_window_size : 1, //[18] update_pn_check_needed : 1, //[19] update_pn_shall_be_even : 1, //[20] update_pn_shall_be_uneven : 1, //[21] update_pn_handling_enable : 1, //[22] update_pn_size : 1, //[23] update_ignore_ampdu_flag : 1, //[24] update_svld : 1, //[25] update_ssn : 1, //[26] update_seq_2k_error_detected_flag: 1, //[27] update_pn_error_detected_flag : 1, //[28] update_pn_valid : 1, //[29] update_pn : 1, //[30] clear_stat_counters : 1; //[31] uint32_t receive_queue_number : 16, //[15:0] vld : 1, //[16] associated_link_descriptor_counter: 2, //[18:17] disable_duplicate_detection : 1, //[19] soft_reorder_enable : 1, //[20] ac : 2, //[22:21] bar : 1, //[23] rty : 1, //[24] chk_2k_mode : 1, //[25] oor_mode : 1, //[26] pn_check_needed : 1, //[27] pn_shall_be_even : 1, //[28] pn_shall_be_uneven : 1, //[29] pn_handling_enable : 1, //[30] ignore_ampdu_flag : 1; //[31] uint32_t ba_window_size : 8, //[7:0] pn_size : 2, //[9:8] svld : 1, //[10] ssn : 12, //[22:11] seq_2k_error_detected_flag : 1, //[23] pn_error_detected_flag : 1, //[24] pn_valid : 1, //[25] flush_from_cache : 1, //[26] reserved_4a : 5; //[31:27] uint32_t pn_31_0 : 32; //[31:0] uint32_t pn_63_32 : 32; //[31:0] uint32_t pn_95_64 : 32; //[31:0] uint32_t pn_127_96 : 32; //[31:0] }; /* struct uniform_reo_cmd_header cmd_header Consumer: REO Producer: SW Details for command execution tracking purposes. rx_reo_queue_desc_addr_31_0 Consumer: REO Producer: SW Address (lower 32 bits) of the REO queue descriptor rx_reo_queue_desc_addr_39_32 Consumer: REO Producer: SW Address (upper 8 bits) of the REO queue descriptor update_receive_queue_number Consumer: REO Producer: SW When set, receive_queue_number from this command will be updated in the descriptor. update_vld Consumer: REO Producer: SW When clear, REO will NOT update the VLD bit setting. For this setting, SW MUST set the Flush_from_cache bit in this command. When set, VLD from this command will be updated in the descriptor. update_associated_link_descriptor_counter Consumer: REO Producer: SW When set, Associated_link_descriptor_counter from this command will be updated in the descriptor. update_disable_duplicate_detection Consumer: REO Producer: SW When set, Disable_duplicate_detection from this command will be updated in the descriptor. update_soft_reorder_enable Consumer: REO Producer: SW When set, Soft_reorder_enable from this command will be updated in the descriptor. update_ac Consumer: REO Producer: SW When set, AC from this command will be updated in the descriptor. update_bar Consumer: REO Producer: SW When set, BAR from this command will be updated in the descriptor. update_rty Consumer: REO Producer: SW When set, RTY from this command will be updated in the descriptor. update_chk_2k_mode Consumer: REO Producer: SW When set, Chk_2k_mode from this command will be updated in the descriptor. update_oor_mode Consumer: REO Producer: SW When set, OOR_Mode from this command will be updated in the descriptor. update_ba_window_size Consumer: REO Producer: SW When set, BA_window_size from this command will be updated in the descriptor. update_pn_check_needed Consumer: REO Producer: SW When set, Pn_check_needed from this command will be updated in the descriptor. update_pn_shall_be_even Consumer: REO Producer: SW When set, Pn_shall_be_even from this command will be updated in the descriptor. update_pn_shall_be_uneven Consumer: REO Producer: SW When set, Pn_shall_be_uneven from this command will be updated in the descriptor. update_pn_handling_enable Consumer: REO Producer: SW When set, Pn_handling_enable from this command will be updated in the descriptor. update_pn_size Consumer: REO Producer: SW When set, Pn_size from this command will be updated in the descriptor. update_ignore_ampdu_flag Consumer: REO Producer: SW When set, Ignore_ampdu_flag from this command will be updated in the descriptor. update_svld Consumer: REO Producer: SW When set, Svld from this command will be updated in the descriptor. update_ssn Consumer: REO Producer: SW When set, SSN from this command will be updated in the descriptor. update_seq_2k_error_detected_flag Consumer: REO Producer: SW When set, Seq_2k_error_detected_flag from this command will be updated in the descriptor. update_pn_error_detected_flag Consumer: REO Producer: SW When set, pn_error_detected_flag from this command will be updated in the descriptor. update_pn_valid Consumer: REO Producer: SW When set, pn_valid from this command will be updated in the descriptor. update_pn Consumer: REO Producer: SW When set, all pn_... fields from this command will be updated in the descriptor. clear_stat_counters Consumer: REO Producer: SW When set, REO will clear (=> set to 0) the following stat counters in the REO_QUEUE_STRUCT Last_rx_enqueue_TimeStamp Last_rx_dequeue_Timestamp Rx_bitmap (not a counter, but bitmap is cleared) Timeout_count Forward_due_to_bar_count Duplicate_count Frames_in_order_count BAR_received_count MPDU_Frames_processed_count MSDU_Frames_processed_count Total_processed_byte_count Late_receive_MPDU_count window_jump_2k Hole_count receive_queue_number Field value to be copied over into the RX_REO_QUEUE descriptor. vld Field only valid when Update_VLD is set Field value to be copied over into the RX_REO_QUEUE descriptor. associated_link_descriptor_counter Field only valid when Update_Associated_link_descriptor_counter is set Field value to be copied over into the RX_REO_QUEUE descriptor. disable_duplicate_detection Field only valid when Update_Disable_duplicate_detection is set Field value to be copied over into the RX_REO_QUEUE descriptor. soft_reorder_enable Field only valid when Update_Soft_reorder_enable is set Field value to be copied over into the RX_REO_QUEUE descriptor. ac Field only valid when Update_AC is set Field value to be copied over into the RX_REO_QUEUE descriptor. bar Field only valid when Update_BAR is set Field value to be copied over into the RX_REO_QUEUE descriptor. rty Field only valid when Update_RTY is set Field value to be copied over into the RX_REO_QUEUE descriptor. chk_2k_mode Field only valid when Update_Chk_2k_Mode is set Field value to be copied over into the RX_REO_QUEUE descriptor. oor_mode Field only valid when Update_OOR_Mode is set Field value to be copied over into the RX_REO_QUEUE descriptor. pn_check_needed Field only valid when Update_Pn_check_needed is set Field value to be copied over into the RX_REO_QUEUE descriptor. pn_shall_be_even Field only valid when Update_Pn_shall_be_even is set Field value to be copied over into the RX_REO_QUEUE descriptor. pn_shall_be_uneven Field only valid when Update_Pn_shall_be_uneven is set Field value to be copied over into the RX_REO_QUEUE descriptor. pn_handling_enable Field only valid when Update_Pn_handling_enable is set Field value to be copied over into the RX_REO_QUEUE descriptor. ignore_ampdu_flag Field only valid when Update_Ignore_ampdu_flag is set Field value to be copied over into the RX_REO_QUEUE descriptor. ba_window_size Field only valid when Update_BA_window_size is set Field value to be copied over into the RX_REO_QUEUE descriptor. pn_size Field only valid when Update_Pn_size is set Field value to be copied over into the RX_REO_QUEUE descriptor. svld Field only valid when Update_Svld is set Field value to be copied over into the RX_REO_QUEUE descriptor. ssn Field only valid when Update_SSN is set Field value to be copied over into the RX_REO_QUEUE descriptor. seq_2k_error_detected_flag Field only valid when Update_Seq_2k_error_detected_flag is set Field value to be copied over into the RX_REO_QUEUE descriptor. pn_error_detected_flag Field only valid when Update_pn_error_detected_flag is set Field value to be copied over into the RX_REO_QUEUE descriptor. pn_valid Field only valid when Update_pn_valid is set Field value to be copied over into the RX_REO_QUEUE descriptor. flush_from_cache When set, REO shall, after finishing the execution of this command, flush the related descriptor from the cache. reserved_4a pn_31_0 Field only valid when Update_Pn is set Field value to be copied over into the RX_REO_QUEUE descriptor. pn_63_32 Field only valid when Update_pn is set Field value to be copied over into the RX_REO_QUEUE descriptor. pn_95_64 Field only valid when Update_pn is set Field value to be copied over into the RX_REO_QUEUE descriptor. pn_127_96 Field only valid when Update_pn is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_0_UNIFORM_REO_CMD_HEADER_CMD_HEADER_OFFSET 0x00000000 #define REO_UPDATE_RX_REO_QUEUE_0_UNIFORM_REO_CMD_HEADER_CMD_HEADER_LSB 0 #define REO_UPDATE_RX_REO_QUEUE_0_UNIFORM_REO_CMD_HEADER_CMD_HEADER_MASK 0xffffffff /* Description REO_UPDATE_RX_REO_QUEUE_1_RX_REO_QUEUE_DESC_ADDR_31_0 Consumer: REO Producer: SW Address (lower 32 bits) of the REO queue descriptor */ #define REO_UPDATE_RX_REO_QUEUE_1_RX_REO_QUEUE_DESC_ADDR_31_0_OFFSET 0x00000004 #define REO_UPDATE_RX_REO_QUEUE_1_RX_REO_QUEUE_DESC_ADDR_31_0_LSB 0 #define REO_UPDATE_RX_REO_QUEUE_1_RX_REO_QUEUE_DESC_ADDR_31_0_MASK 0xffffffff /* Description REO_UPDATE_RX_REO_QUEUE_2_RX_REO_QUEUE_DESC_ADDR_39_32 Consumer: REO Producer: SW Address (upper 8 bits) of the REO queue descriptor */ #define REO_UPDATE_RX_REO_QUEUE_2_RX_REO_QUEUE_DESC_ADDR_39_32_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_RX_REO_QUEUE_DESC_ADDR_39_32_LSB 0 #define REO_UPDATE_RX_REO_QUEUE_2_RX_REO_QUEUE_DESC_ADDR_39_32_MASK 0x000000ff /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RECEIVE_QUEUE_NUMBER Consumer: REO Producer: SW When set, receive_queue_number from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RECEIVE_QUEUE_NUMBER_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RECEIVE_QUEUE_NUMBER_LSB 8 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RECEIVE_QUEUE_NUMBER_MASK 0x00000100 /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_VLD Consumer: REO Producer: SW When clear, REO will NOT update the VLD bit setting. For this setting, SW MUST set the Flush_from_cache bit in this command. When set, VLD from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_VLD_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_VLD_LSB 9 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_VLD_MASK 0x00000200 /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER Consumer: REO Producer: SW When set, Associated_link_descriptor_counter from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_LSB 10 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_MASK 0x00000400 /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_DISABLE_DUPLICATE_DETECTION Consumer: REO Producer: SW When set, Disable_duplicate_detection from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_DISABLE_DUPLICATE_DETECTION_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_DISABLE_DUPLICATE_DETECTION_LSB 11 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_DISABLE_DUPLICATE_DETECTION_MASK 0x00000800 /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SOFT_REORDER_ENABLE Consumer: REO Producer: SW When set, Soft_reorder_enable from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SOFT_REORDER_ENABLE_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SOFT_REORDER_ENABLE_LSB 12 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SOFT_REORDER_ENABLE_MASK 0x00001000 /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_AC Consumer: REO Producer: SW When set, AC from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_AC_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_AC_LSB 13 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_AC_MASK 0x00002000 /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BAR Consumer: REO Producer: SW When set, BAR from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BAR_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BAR_LSB 14 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BAR_MASK 0x00004000 /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RTY Consumer: REO Producer: SW When set, RTY from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RTY_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RTY_LSB 15 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RTY_MASK 0x00008000 /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_CHK_2K_MODE Consumer: REO Producer: SW When set, Chk_2k_mode from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_CHK_2K_MODE_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_CHK_2K_MODE_LSB 16 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_CHK_2K_MODE_MASK 0x00010000 /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_OOR_MODE Consumer: REO Producer: SW When set, OOR_Mode from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_OOR_MODE_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_OOR_MODE_LSB 17 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_OOR_MODE_MASK 0x00020000 /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BA_WINDOW_SIZE Consumer: REO Producer: SW When set, BA_window_size from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BA_WINDOW_SIZE_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BA_WINDOW_SIZE_LSB 18 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BA_WINDOW_SIZE_MASK 0x00040000 /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_CHECK_NEEDED Consumer: REO Producer: SW When set, Pn_check_needed from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_CHECK_NEEDED_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_CHECK_NEEDED_LSB 19 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_CHECK_NEEDED_MASK 0x00080000 /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_EVEN Consumer: REO Producer: SW When set, Pn_shall_be_even from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_EVEN_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_EVEN_LSB 20 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_EVEN_MASK 0x00100000 /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_UNEVEN Consumer: REO Producer: SW When set, Pn_shall_be_uneven from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_UNEVEN_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_UNEVEN_LSB 21 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_UNEVEN_MASK 0x00200000 /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_HANDLING_ENABLE Consumer: REO Producer: SW When set, Pn_handling_enable from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_HANDLING_ENABLE_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_HANDLING_ENABLE_LSB 22 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_HANDLING_ENABLE_MASK 0x00400000 /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SIZE Consumer: REO Producer: SW When set, Pn_size from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SIZE_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SIZE_LSB 23 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SIZE_MASK 0x00800000 /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_IGNORE_AMPDU_FLAG Consumer: REO Producer: SW When set, Ignore_ampdu_flag from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_IGNORE_AMPDU_FLAG_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_IGNORE_AMPDU_FLAG_LSB 24 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_IGNORE_AMPDU_FLAG_MASK 0x01000000 /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SVLD Consumer: REO Producer: SW When set, Svld from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SVLD_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SVLD_LSB 25 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SVLD_MASK 0x02000000 /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SSN Consumer: REO Producer: SW When set, SSN from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SSN_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SSN_LSB 26 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SSN_MASK 0x04000000 /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SEQ_2K_ERROR_DETECTED_FLAG Consumer: REO Producer: SW When set, Seq_2k_error_detected_flag from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SEQ_2K_ERROR_DETECTED_FLAG_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SEQ_2K_ERROR_DETECTED_FLAG_LSB 27 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SEQ_2K_ERROR_DETECTED_FLAG_MASK 0x08000000 /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_ERROR_DETECTED_FLAG Consumer: REO Producer: SW When set, pn_error_detected_flag from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_ERROR_DETECTED_FLAG_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_ERROR_DETECTED_FLAG_LSB 28 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_ERROR_DETECTED_FLAG_MASK 0x10000000 /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_VALID Consumer: REO Producer: SW When set, pn_valid from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_VALID_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_VALID_LSB 29 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_VALID_MASK 0x20000000 /* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN Consumer: REO Producer: SW When set, all pn_... fields from this command will be updated in the descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_LSB 30 #define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_MASK 0x40000000 /* Description REO_UPDATE_RX_REO_QUEUE_2_CLEAR_STAT_COUNTERS Consumer: REO Producer: SW When set, REO will clear (=> set to 0) the following stat counters in the REO_QUEUE_STRUCT Last_rx_enqueue_TimeStamp Last_rx_dequeue_Timestamp Rx_bitmap (not a counter, but bitmap is cleared) Timeout_count Forward_due_to_bar_count Duplicate_count Frames_in_order_count BAR_received_count MPDU_Frames_processed_count MSDU_Frames_processed_count Total_processed_byte_count Late_receive_MPDU_count window_jump_2k Hole_count */ #define REO_UPDATE_RX_REO_QUEUE_2_CLEAR_STAT_COUNTERS_OFFSET 0x00000008 #define REO_UPDATE_RX_REO_QUEUE_2_CLEAR_STAT_COUNTERS_LSB 31 #define REO_UPDATE_RX_REO_QUEUE_2_CLEAR_STAT_COUNTERS_MASK 0x80000000 /* Description REO_UPDATE_RX_REO_QUEUE_3_RECEIVE_QUEUE_NUMBER Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_3_RECEIVE_QUEUE_NUMBER_OFFSET 0x0000000c #define REO_UPDATE_RX_REO_QUEUE_3_RECEIVE_QUEUE_NUMBER_LSB 0 #define REO_UPDATE_RX_REO_QUEUE_3_RECEIVE_QUEUE_NUMBER_MASK 0x0000ffff /* Description REO_UPDATE_RX_REO_QUEUE_3_VLD Field only valid when Update_VLD is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_3_VLD_OFFSET 0x0000000c #define REO_UPDATE_RX_REO_QUEUE_3_VLD_LSB 16 #define REO_UPDATE_RX_REO_QUEUE_3_VLD_MASK 0x00010000 /* Description REO_UPDATE_RX_REO_QUEUE_3_ASSOCIATED_LINK_DESCRIPTOR_COUNTER Field only valid when Update_Associated_link_descriptor_counter is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_3_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_OFFSET 0x0000000c #define REO_UPDATE_RX_REO_QUEUE_3_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_LSB 17 #define REO_UPDATE_RX_REO_QUEUE_3_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_MASK 0x00060000 /* Description REO_UPDATE_RX_REO_QUEUE_3_DISABLE_DUPLICATE_DETECTION Field only valid when Update_Disable_duplicate_detection is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_3_DISABLE_DUPLICATE_DETECTION_OFFSET 0x0000000c #define REO_UPDATE_RX_REO_QUEUE_3_DISABLE_DUPLICATE_DETECTION_LSB 19 #define REO_UPDATE_RX_REO_QUEUE_3_DISABLE_DUPLICATE_DETECTION_MASK 0x00080000 /* Description REO_UPDATE_RX_REO_QUEUE_3_SOFT_REORDER_ENABLE Field only valid when Update_Soft_reorder_enable is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_3_SOFT_REORDER_ENABLE_OFFSET 0x0000000c #define REO_UPDATE_RX_REO_QUEUE_3_SOFT_REORDER_ENABLE_LSB 20 #define REO_UPDATE_RX_REO_QUEUE_3_SOFT_REORDER_ENABLE_MASK 0x00100000 /* Description REO_UPDATE_RX_REO_QUEUE_3_AC Field only valid when Update_AC is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_3_AC_OFFSET 0x0000000c #define REO_UPDATE_RX_REO_QUEUE_3_AC_LSB 21 #define REO_UPDATE_RX_REO_QUEUE_3_AC_MASK 0x00600000 /* Description REO_UPDATE_RX_REO_QUEUE_3_BAR Field only valid when Update_BAR is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_3_BAR_OFFSET 0x0000000c #define REO_UPDATE_RX_REO_QUEUE_3_BAR_LSB 23 #define REO_UPDATE_RX_REO_QUEUE_3_BAR_MASK 0x00800000 /* Description REO_UPDATE_RX_REO_QUEUE_3_RTY Field only valid when Update_RTY is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_3_RTY_OFFSET 0x0000000c #define REO_UPDATE_RX_REO_QUEUE_3_RTY_LSB 24 #define REO_UPDATE_RX_REO_QUEUE_3_RTY_MASK 0x01000000 /* Description REO_UPDATE_RX_REO_QUEUE_3_CHK_2K_MODE Field only valid when Update_Chk_2k_Mode is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_3_CHK_2K_MODE_OFFSET 0x0000000c #define REO_UPDATE_RX_REO_QUEUE_3_CHK_2K_MODE_LSB 25 #define REO_UPDATE_RX_REO_QUEUE_3_CHK_2K_MODE_MASK 0x02000000 /* Description REO_UPDATE_RX_REO_QUEUE_3_OOR_MODE Field only valid when Update_OOR_Mode is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_3_OOR_MODE_OFFSET 0x0000000c #define REO_UPDATE_RX_REO_QUEUE_3_OOR_MODE_LSB 26 #define REO_UPDATE_RX_REO_QUEUE_3_OOR_MODE_MASK 0x04000000 /* Description REO_UPDATE_RX_REO_QUEUE_3_PN_CHECK_NEEDED Field only valid when Update_Pn_check_needed is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_3_PN_CHECK_NEEDED_OFFSET 0x0000000c #define REO_UPDATE_RX_REO_QUEUE_3_PN_CHECK_NEEDED_LSB 27 #define REO_UPDATE_RX_REO_QUEUE_3_PN_CHECK_NEEDED_MASK 0x08000000 /* Description REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_EVEN Field only valid when Update_Pn_shall_be_even is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_EVEN_OFFSET 0x0000000c #define REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_EVEN_LSB 28 #define REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_EVEN_MASK 0x10000000 /* Description REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_UNEVEN Field only valid when Update_Pn_shall_be_uneven is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_UNEVEN_OFFSET 0x0000000c #define REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_UNEVEN_LSB 29 #define REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_UNEVEN_MASK 0x20000000 /* Description REO_UPDATE_RX_REO_QUEUE_3_PN_HANDLING_ENABLE Field only valid when Update_Pn_handling_enable is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_3_PN_HANDLING_ENABLE_OFFSET 0x0000000c #define REO_UPDATE_RX_REO_QUEUE_3_PN_HANDLING_ENABLE_LSB 30 #define REO_UPDATE_RX_REO_QUEUE_3_PN_HANDLING_ENABLE_MASK 0x40000000 /* Description REO_UPDATE_RX_REO_QUEUE_3_IGNORE_AMPDU_FLAG Field only valid when Update_Ignore_ampdu_flag is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_3_IGNORE_AMPDU_FLAG_OFFSET 0x0000000c #define REO_UPDATE_RX_REO_QUEUE_3_IGNORE_AMPDU_FLAG_LSB 31 #define REO_UPDATE_RX_REO_QUEUE_3_IGNORE_AMPDU_FLAG_MASK 0x80000000 /* Description REO_UPDATE_RX_REO_QUEUE_4_BA_WINDOW_SIZE Field only valid when Update_BA_window_size is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_4_BA_WINDOW_SIZE_OFFSET 0x00000010 #define REO_UPDATE_RX_REO_QUEUE_4_BA_WINDOW_SIZE_LSB 0 #define REO_UPDATE_RX_REO_QUEUE_4_BA_WINDOW_SIZE_MASK 0x000000ff /* Description REO_UPDATE_RX_REO_QUEUE_4_PN_SIZE Field only valid when Update_Pn_size is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_4_PN_SIZE_OFFSET 0x00000010 #define REO_UPDATE_RX_REO_QUEUE_4_PN_SIZE_LSB 8 #define REO_UPDATE_RX_REO_QUEUE_4_PN_SIZE_MASK 0x00000300 /* Description REO_UPDATE_RX_REO_QUEUE_4_SVLD Field only valid when Update_Svld is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_4_SVLD_OFFSET 0x00000010 #define REO_UPDATE_RX_REO_QUEUE_4_SVLD_LSB 10 #define REO_UPDATE_RX_REO_QUEUE_4_SVLD_MASK 0x00000400 /* Description REO_UPDATE_RX_REO_QUEUE_4_SSN Field only valid when Update_SSN is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_4_SSN_OFFSET 0x00000010 #define REO_UPDATE_RX_REO_QUEUE_4_SSN_LSB 11 #define REO_UPDATE_RX_REO_QUEUE_4_SSN_MASK 0x007ff800 /* Description REO_UPDATE_RX_REO_QUEUE_4_SEQ_2K_ERROR_DETECTED_FLAG Field only valid when Update_Seq_2k_error_detected_flag is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_4_SEQ_2K_ERROR_DETECTED_FLAG_OFFSET 0x00000010 #define REO_UPDATE_RX_REO_QUEUE_4_SEQ_2K_ERROR_DETECTED_FLAG_LSB 23 #define REO_UPDATE_RX_REO_QUEUE_4_SEQ_2K_ERROR_DETECTED_FLAG_MASK 0x00800000 /* Description REO_UPDATE_RX_REO_QUEUE_4_PN_ERROR_DETECTED_FLAG Field only valid when Update_pn_error_detected_flag is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_4_PN_ERROR_DETECTED_FLAG_OFFSET 0x00000010 #define REO_UPDATE_RX_REO_QUEUE_4_PN_ERROR_DETECTED_FLAG_LSB 24 #define REO_UPDATE_RX_REO_QUEUE_4_PN_ERROR_DETECTED_FLAG_MASK 0x01000000 /* Description REO_UPDATE_RX_REO_QUEUE_4_PN_VALID Field only valid when Update_pn_valid is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_4_PN_VALID_OFFSET 0x00000010 #define REO_UPDATE_RX_REO_QUEUE_4_PN_VALID_LSB 25 #define REO_UPDATE_RX_REO_QUEUE_4_PN_VALID_MASK 0x02000000 /* Description REO_UPDATE_RX_REO_QUEUE_4_FLUSH_FROM_CACHE When set, REO shall, after finishing the execution of this command, flush the related descriptor from the cache. */ #define REO_UPDATE_RX_REO_QUEUE_4_FLUSH_FROM_CACHE_OFFSET 0x00000010 #define REO_UPDATE_RX_REO_QUEUE_4_FLUSH_FROM_CACHE_LSB 26 #define REO_UPDATE_RX_REO_QUEUE_4_FLUSH_FROM_CACHE_MASK 0x04000000 /* Description REO_UPDATE_RX_REO_QUEUE_4_RESERVED_4A */ #define REO_UPDATE_RX_REO_QUEUE_4_RESERVED_4A_OFFSET 0x00000010 #define REO_UPDATE_RX_REO_QUEUE_4_RESERVED_4A_LSB 27 #define REO_UPDATE_RX_REO_QUEUE_4_RESERVED_4A_MASK 0xf8000000 /* Description REO_UPDATE_RX_REO_QUEUE_5_PN_31_0 Field only valid when Update_Pn is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_5_PN_31_0_OFFSET 0x00000014 #define REO_UPDATE_RX_REO_QUEUE_5_PN_31_0_LSB 0 #define REO_UPDATE_RX_REO_QUEUE_5_PN_31_0_MASK 0xffffffff /* Description REO_UPDATE_RX_REO_QUEUE_6_PN_63_32 Field only valid when Update_pn is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_6_PN_63_32_OFFSET 0x00000018 #define REO_UPDATE_RX_REO_QUEUE_6_PN_63_32_LSB 0 #define REO_UPDATE_RX_REO_QUEUE_6_PN_63_32_MASK 0xffffffff /* Description REO_UPDATE_RX_REO_QUEUE_7_PN_95_64 Field only valid when Update_pn is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_7_PN_95_64_OFFSET 0x0000001c #define REO_UPDATE_RX_REO_QUEUE_7_PN_95_64_LSB 0 #define REO_UPDATE_RX_REO_QUEUE_7_PN_95_64_MASK 0xffffffff /* Description REO_UPDATE_RX_REO_QUEUE_8_PN_127_96 Field only valid when Update_pn is set Field value to be copied over into the RX_REO_QUEUE descriptor. */ #define REO_UPDATE_RX_REO_QUEUE_8_PN_127_96_OFFSET 0x00000020 #define REO_UPDATE_RX_REO_QUEUE_8_PN_127_96_LSB 0 #define REO_UPDATE_RX_REO_QUEUE_8_PN_127_96_MASK 0xffffffff #endif // _REO_UPDATE_RX_REO_QUEUE_H_