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 _NO_ACK_REPORT_H_ 20 #define _NO_ACK_REPORT_H_ 21 #if !defined(__ASSEMBLER__) 22 #endif 23 24 #define NUM_OF_DWORDS_NO_ACK_REPORT 4 25 26 27 struct no_ack_report { 28 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 29 uint32_t no_ack_transmit_reason : 4, 30 macrx_abort_reason : 4, 31 phyrx_abort_reason : 8, 32 frame_control : 16; 33 uint32_t rx_ppdu_duration : 24, 34 sr_ppdu_during_obss : 1, 35 selfgen_response_reason_to_sr_ppdu : 4, 36 reserved_1 : 3; 37 uint32_t pre_bt_broadcast_status_details : 12, 38 first_bt_broadcast_status_details : 12, 39 reserved_2 : 8; 40 uint32_t second_bt_broadcast_status_details : 12, 41 reserved_3 : 20; 42 #else 43 uint32_t frame_control : 16, 44 phyrx_abort_reason : 8, 45 macrx_abort_reason : 4, 46 no_ack_transmit_reason : 4; 47 uint32_t reserved_1 : 3, 48 selfgen_response_reason_to_sr_ppdu : 4, 49 sr_ppdu_during_obss : 1, 50 rx_ppdu_duration : 24; 51 uint32_t reserved_2 : 8, 52 first_bt_broadcast_status_details : 12, 53 pre_bt_broadcast_status_details : 12; 54 uint32_t reserved_3 : 20, 55 second_bt_broadcast_status_details : 12; 56 #endif 57 }; 58 59 60 61 62 #define NO_ACK_REPORT_NO_ACK_TRANSMIT_REASON_OFFSET 0x00000000 63 #define NO_ACK_REPORT_NO_ACK_TRANSMIT_REASON_LSB 0 64 #define NO_ACK_REPORT_NO_ACK_TRANSMIT_REASON_MSB 3 65 #define NO_ACK_REPORT_NO_ACK_TRANSMIT_REASON_MASK 0x0000000f 66 67 68 69 70 #define NO_ACK_REPORT_MACRX_ABORT_REASON_OFFSET 0x00000000 71 #define NO_ACK_REPORT_MACRX_ABORT_REASON_LSB 4 72 #define NO_ACK_REPORT_MACRX_ABORT_REASON_MSB 7 73 #define NO_ACK_REPORT_MACRX_ABORT_REASON_MASK 0x000000f0 74 75 76 77 78 #define NO_ACK_REPORT_PHYRX_ABORT_REASON_OFFSET 0x00000000 79 #define NO_ACK_REPORT_PHYRX_ABORT_REASON_LSB 8 80 #define NO_ACK_REPORT_PHYRX_ABORT_REASON_MSB 15 81 #define NO_ACK_REPORT_PHYRX_ABORT_REASON_MASK 0x0000ff00 82 83 84 85 86 #define NO_ACK_REPORT_FRAME_CONTROL_OFFSET 0x00000000 87 #define NO_ACK_REPORT_FRAME_CONTROL_LSB 16 88 #define NO_ACK_REPORT_FRAME_CONTROL_MSB 31 89 #define NO_ACK_REPORT_FRAME_CONTROL_MASK 0xffff0000 90 91 92 93 94 #define NO_ACK_REPORT_RX_PPDU_DURATION_OFFSET 0x00000004 95 #define NO_ACK_REPORT_RX_PPDU_DURATION_LSB 0 96 #define NO_ACK_REPORT_RX_PPDU_DURATION_MSB 23 97 #define NO_ACK_REPORT_RX_PPDU_DURATION_MASK 0x00ffffff 98 99 100 101 102 #define NO_ACK_REPORT_SR_PPDU_DURING_OBSS_OFFSET 0x00000004 103 #define NO_ACK_REPORT_SR_PPDU_DURING_OBSS_LSB 24 104 #define NO_ACK_REPORT_SR_PPDU_DURING_OBSS_MSB 24 105 #define NO_ACK_REPORT_SR_PPDU_DURING_OBSS_MASK 0x01000000 106 107 108 109 110 #define NO_ACK_REPORT_SELFGEN_RESPONSE_REASON_TO_SR_PPDU_OFFSET 0x00000004 111 #define NO_ACK_REPORT_SELFGEN_RESPONSE_REASON_TO_SR_PPDU_LSB 25 112 #define NO_ACK_REPORT_SELFGEN_RESPONSE_REASON_TO_SR_PPDU_MSB 28 113 #define NO_ACK_REPORT_SELFGEN_RESPONSE_REASON_TO_SR_PPDU_MASK 0x1e000000 114 115 116 117 118 #define NO_ACK_REPORT_RESERVED_1_OFFSET 0x00000004 119 #define NO_ACK_REPORT_RESERVED_1_LSB 29 120 #define NO_ACK_REPORT_RESERVED_1_MSB 31 121 #define NO_ACK_REPORT_RESERVED_1_MASK 0xe0000000 122 123 124 125 126 #define NO_ACK_REPORT_PRE_BT_BROADCAST_STATUS_DETAILS_OFFSET 0x00000008 127 #define NO_ACK_REPORT_PRE_BT_BROADCAST_STATUS_DETAILS_LSB 0 128 #define NO_ACK_REPORT_PRE_BT_BROADCAST_STATUS_DETAILS_MSB 11 129 #define NO_ACK_REPORT_PRE_BT_BROADCAST_STATUS_DETAILS_MASK 0x00000fff 130 131 132 133 134 #define NO_ACK_REPORT_FIRST_BT_BROADCAST_STATUS_DETAILS_OFFSET 0x00000008 135 #define NO_ACK_REPORT_FIRST_BT_BROADCAST_STATUS_DETAILS_LSB 12 136 #define NO_ACK_REPORT_FIRST_BT_BROADCAST_STATUS_DETAILS_MSB 23 137 #define NO_ACK_REPORT_FIRST_BT_BROADCAST_STATUS_DETAILS_MASK 0x00fff000 138 139 140 141 142 #define NO_ACK_REPORT_RESERVED_2_OFFSET 0x00000008 143 #define NO_ACK_REPORT_RESERVED_2_LSB 24 144 #define NO_ACK_REPORT_RESERVED_2_MSB 31 145 #define NO_ACK_REPORT_RESERVED_2_MASK 0xff000000 146 147 148 149 150 #define NO_ACK_REPORT_SECOND_BT_BROADCAST_STATUS_DETAILS_OFFSET 0x0000000c 151 #define NO_ACK_REPORT_SECOND_BT_BROADCAST_STATUS_DETAILS_LSB 0 152 #define NO_ACK_REPORT_SECOND_BT_BROADCAST_STATUS_DETAILS_MSB 11 153 #define NO_ACK_REPORT_SECOND_BT_BROADCAST_STATUS_DETAILS_MASK 0x00000fff 154 155 156 157 158 #define NO_ACK_REPORT_RESERVED_3_OFFSET 0x0000000c 159 #define NO_ACK_REPORT_RESERVED_3_LSB 12 160 #define NO_ACK_REPORT_RESERVED_3_MSB 31 161 #define NO_ACK_REPORT_RESERVED_3_MASK 0xfffff000 162 163 164 165 #endif 166