1  
2  /*
3   * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
4   *
5   * Permission to use, copy, modify, and/or distribute this software for any
6   * purpose with or without fee is hereby granted, provided that the above
7   * copyright notice and this permission notice appear in all copies.
8   *
9   * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10   * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11   * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12   * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13   * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14   * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16   */
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  #ifndef _VHT_SIG_B_MU40_INFO_H_
28  #define _VHT_SIG_B_MU40_INFO_H_
29  #if !defined(__ASSEMBLER__)
30  #endif
31  
32  #define NUM_OF_DWORDS_VHT_SIG_B_MU40_INFO 2
33  
34  
35  struct vht_sig_b_mu40_info {
36  #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
37               uint32_t length                                                  : 17, // [16:0]
38                        mcs                                                     :  4, // [20:17]
39                        tail                                                    :  6, // [26:21]
40                        reserved_0                                              :  2, // [28:27]
41                        mu_user_number                                          :  3; // [31:29]
42               uint32_t length_copy                                             : 17, // [16:0]
43                        mcs_copy                                                :  4, // [20:17]
44                        tail_copy                                               :  6, // [26:21]
45                        reserved_1                                              :  5; // [31:27]
46  #else
47               uint32_t mu_user_number                                          :  3, // [31:29]
48                        reserved_0                                              :  2, // [28:27]
49                        tail                                                    :  6, // [26:21]
50                        mcs                                                     :  4, // [20:17]
51                        length                                                  : 17; // [16:0]
52               uint32_t reserved_1                                              :  5, // [31:27]
53                        tail_copy                                               :  6, // [26:21]
54                        mcs_copy                                                :  4, // [20:17]
55                        length_copy                                             : 17; // [16:0]
56  #endif
57  };
58  
59  
60  
61  
62  #define VHT_SIG_B_MU40_INFO_LENGTH_OFFSET                                           0x00000000
63  #define VHT_SIG_B_MU40_INFO_LENGTH_LSB                                              0
64  #define VHT_SIG_B_MU40_INFO_LENGTH_MSB                                              16
65  #define VHT_SIG_B_MU40_INFO_LENGTH_MASK                                             0x0001ffff
66  
67  
68  
69  
70  #define VHT_SIG_B_MU40_INFO_MCS_OFFSET                                              0x00000000
71  #define VHT_SIG_B_MU40_INFO_MCS_LSB                                                 17
72  #define VHT_SIG_B_MU40_INFO_MCS_MSB                                                 20
73  #define VHT_SIG_B_MU40_INFO_MCS_MASK                                                0x001e0000
74  
75  
76  
77  
78  #define VHT_SIG_B_MU40_INFO_TAIL_OFFSET                                             0x00000000
79  #define VHT_SIG_B_MU40_INFO_TAIL_LSB                                                21
80  #define VHT_SIG_B_MU40_INFO_TAIL_MSB                                                26
81  #define VHT_SIG_B_MU40_INFO_TAIL_MASK                                               0x07e00000
82  
83  
84  
85  
86  #define VHT_SIG_B_MU40_INFO_RESERVED_0_OFFSET                                       0x00000000
87  #define VHT_SIG_B_MU40_INFO_RESERVED_0_LSB                                          27
88  #define VHT_SIG_B_MU40_INFO_RESERVED_0_MSB                                          28
89  #define VHT_SIG_B_MU40_INFO_RESERVED_0_MASK                                         0x18000000
90  
91  
92  
93  
94  #define VHT_SIG_B_MU40_INFO_MU_USER_NUMBER_OFFSET                                   0x00000000
95  #define VHT_SIG_B_MU40_INFO_MU_USER_NUMBER_LSB                                      29
96  #define VHT_SIG_B_MU40_INFO_MU_USER_NUMBER_MSB                                      31
97  #define VHT_SIG_B_MU40_INFO_MU_USER_NUMBER_MASK                                     0xe0000000
98  
99  
100  
101  
102  #define VHT_SIG_B_MU40_INFO_LENGTH_COPY_OFFSET                                      0x00000004
103  #define VHT_SIG_B_MU40_INFO_LENGTH_COPY_LSB                                         0
104  #define VHT_SIG_B_MU40_INFO_LENGTH_COPY_MSB                                         16
105  #define VHT_SIG_B_MU40_INFO_LENGTH_COPY_MASK                                        0x0001ffff
106  
107  
108  
109  
110  #define VHT_SIG_B_MU40_INFO_MCS_COPY_OFFSET                                         0x00000004
111  #define VHT_SIG_B_MU40_INFO_MCS_COPY_LSB                                            17
112  #define VHT_SIG_B_MU40_INFO_MCS_COPY_MSB                                            20
113  #define VHT_SIG_B_MU40_INFO_MCS_COPY_MASK                                           0x001e0000
114  
115  
116  
117  
118  #define VHT_SIG_B_MU40_INFO_TAIL_COPY_OFFSET                                        0x00000004
119  #define VHT_SIG_B_MU40_INFO_TAIL_COPY_LSB                                           21
120  #define VHT_SIG_B_MU40_INFO_TAIL_COPY_MSB                                           26
121  #define VHT_SIG_B_MU40_INFO_TAIL_COPY_MASK                                          0x07e00000
122  
123  
124  
125  
126  #define VHT_SIG_B_MU40_INFO_RESERVED_1_OFFSET                                       0x00000004
127  #define VHT_SIG_B_MU40_INFO_RESERVED_1_LSB                                          27
128  #define VHT_SIG_B_MU40_INFO_RESERVED_1_MSB                                          31
129  #define VHT_SIG_B_MU40_INFO_RESERVED_1_MASK                                         0xf8000000
130  
131  
132  
133  
134  #endif
135