1 /* 2 * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 18 #ifndef _HT_SIG_INFO_H_ 19 #define _HT_SIG_INFO_H_ 20 21 #define NUM_OF_DWORDS_HT_SIG_INFO 2 22 23 struct ht_sig_info { 24 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 25 uint32_t mcs : 7, 26 cbw : 1, 27 length : 16, 28 reserved_0 : 8; 29 uint32_t smoothing : 1, 30 not_sounding : 1, 31 ht_reserved : 1, 32 aggregation : 1, 33 stbc : 2, 34 fec_coding : 1, 35 short_gi : 1, 36 num_ext_sp_str : 2, 37 crc : 8, 38 signal_tail : 6, 39 reserved_1 : 7, 40 rx_integrity_check_passed : 1; 41 #else 42 uint32_t reserved_0 : 8, 43 length : 16, 44 cbw : 1, 45 mcs : 7; 46 uint32_t rx_integrity_check_passed : 1, 47 reserved_1 : 7, 48 signal_tail : 6, 49 crc : 8, 50 num_ext_sp_str : 2, 51 short_gi : 1, 52 fec_coding : 1, 53 stbc : 2, 54 aggregation : 1, 55 ht_reserved : 1, 56 not_sounding : 1, 57 smoothing : 1; 58 #endif 59 }; 60 61 #define HT_SIG_INFO_MCS_OFFSET 0x00000000 62 #define HT_SIG_INFO_MCS_LSB 0 63 #define HT_SIG_INFO_MCS_MSB 6 64 #define HT_SIG_INFO_MCS_MASK 0x0000007f 65 66 #define HT_SIG_INFO_CBW_OFFSET 0x00000000 67 #define HT_SIG_INFO_CBW_LSB 7 68 #define HT_SIG_INFO_CBW_MSB 7 69 #define HT_SIG_INFO_CBW_MASK 0x00000080 70 71 #define HT_SIG_INFO_LENGTH_OFFSET 0x00000000 72 #define HT_SIG_INFO_LENGTH_LSB 8 73 #define HT_SIG_INFO_LENGTH_MSB 23 74 #define HT_SIG_INFO_LENGTH_MASK 0x00ffff00 75 76 #define HT_SIG_INFO_RESERVED_0_OFFSET 0x00000000 77 #define HT_SIG_INFO_RESERVED_0_LSB 24 78 #define HT_SIG_INFO_RESERVED_0_MSB 31 79 #define HT_SIG_INFO_RESERVED_0_MASK 0xff000000 80 81 #define HT_SIG_INFO_SMOOTHING_OFFSET 0x00000004 82 #define HT_SIG_INFO_SMOOTHING_LSB 0 83 #define HT_SIG_INFO_SMOOTHING_MSB 0 84 #define HT_SIG_INFO_SMOOTHING_MASK 0x00000001 85 86 #define HT_SIG_INFO_NOT_SOUNDING_OFFSET 0x00000004 87 #define HT_SIG_INFO_NOT_SOUNDING_LSB 1 88 #define HT_SIG_INFO_NOT_SOUNDING_MSB 1 89 #define HT_SIG_INFO_NOT_SOUNDING_MASK 0x00000002 90 91 #define HT_SIG_INFO_HT_RESERVED_OFFSET 0x00000004 92 #define HT_SIG_INFO_HT_RESERVED_LSB 2 93 #define HT_SIG_INFO_HT_RESERVED_MSB 2 94 #define HT_SIG_INFO_HT_RESERVED_MASK 0x00000004 95 96 #define HT_SIG_INFO_AGGREGATION_OFFSET 0x00000004 97 #define HT_SIG_INFO_AGGREGATION_LSB 3 98 #define HT_SIG_INFO_AGGREGATION_MSB 3 99 #define HT_SIG_INFO_AGGREGATION_MASK 0x00000008 100 101 #define HT_SIG_INFO_STBC_OFFSET 0x00000004 102 #define HT_SIG_INFO_STBC_LSB 4 103 #define HT_SIG_INFO_STBC_MSB 5 104 #define HT_SIG_INFO_STBC_MASK 0x00000030 105 106 #define HT_SIG_INFO_FEC_CODING_OFFSET 0x00000004 107 #define HT_SIG_INFO_FEC_CODING_LSB 6 108 #define HT_SIG_INFO_FEC_CODING_MSB 6 109 #define HT_SIG_INFO_FEC_CODING_MASK 0x00000040 110 111 #define HT_SIG_INFO_SHORT_GI_OFFSET 0x00000004 112 #define HT_SIG_INFO_SHORT_GI_LSB 7 113 #define HT_SIG_INFO_SHORT_GI_MSB 7 114 #define HT_SIG_INFO_SHORT_GI_MASK 0x00000080 115 116 #define HT_SIG_INFO_NUM_EXT_SP_STR_OFFSET 0x00000004 117 #define HT_SIG_INFO_NUM_EXT_SP_STR_LSB 8 118 #define HT_SIG_INFO_NUM_EXT_SP_STR_MSB 9 119 #define HT_SIG_INFO_NUM_EXT_SP_STR_MASK 0x00000300 120 121 #define HT_SIG_INFO_CRC_OFFSET 0x00000004 122 #define HT_SIG_INFO_CRC_LSB 10 123 #define HT_SIG_INFO_CRC_MSB 17 124 #define HT_SIG_INFO_CRC_MASK 0x0003fc00 125 126 #define HT_SIG_INFO_SIGNAL_TAIL_OFFSET 0x00000004 127 #define HT_SIG_INFO_SIGNAL_TAIL_LSB 18 128 #define HT_SIG_INFO_SIGNAL_TAIL_MSB 23 129 #define HT_SIG_INFO_SIGNAL_TAIL_MASK 0x00fc0000 130 131 #define HT_SIG_INFO_RESERVED_1_OFFSET 0x00000004 132 #define HT_SIG_INFO_RESERVED_1_LSB 24 133 #define HT_SIG_INFO_RESERVED_1_MSB 30 134 #define HT_SIG_INFO_RESERVED_1_MASK 0x7f000000 135 136 #define HT_SIG_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x00000004 137 #define HT_SIG_INFO_RX_INTEGRITY_CHECK_PASSED_LSB 31 138 #define HT_SIG_INFO_RX_INTEGRITY_CHECK_PASSED_MSB 31 139 #define HT_SIG_INFO_RX_INTEGRITY_CHECK_PASSED_MASK 0x80000000 140 141 #endif 142