xref: /wlan-driver/fw-api/hw/qca6490/v1/phyrx_he_sig_b2_mu.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1 /*
2  * Copyright (c) 2019 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 #ifndef _PHYRX_HE_SIG_B2_MU_H_
20 #define _PHYRX_HE_SIG_B2_MU_H_
21 #if !defined(__ASSEMBLER__)
22 #endif
23 
24 #include "he_sig_b2_mu_info.h"
25 
26 // ################ START SUMMARY #################
27 //
28 //	Dword	Fields
29 //	0	struct he_sig_b2_mu_info phyrx_he_sig_b2_mu_info_details;
30 //
31 // ################ END SUMMARY #################
32 
33 #define NUM_OF_DWORDS_PHYRX_HE_SIG_B2_MU 1
34 
35 struct phyrx_he_sig_b2_mu {
36     struct            he_sig_b2_mu_info                       phyrx_he_sig_b2_mu_info_details;
37 };
38 
39 /*
40 
41 struct he_sig_b2_mu_info phyrx_he_sig_b2_mu_info_details
42 
43 			See detailed description of the STRUCT
44 */
45 
46 
47  /* EXTERNAL REFERENCE : struct he_sig_b2_mu_info phyrx_he_sig_b2_mu_info_details */
48 
49 
50 /* Description		PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID
51 
52 			Identifies the STA that is addressed. Details of STA ID
53 			are TBD
54 */
55 #define PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_OFFSET 0x00000000
56 #define PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_LSB 0
57 #define PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_MASK 0x000007ff
58 
59 /* Description		PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG
60 
61 			Number of assigned spatial streams and their
62 			corresponding index.
63 
64 			Total number of spatial streams assigned for the MU-MIMO
65 			allocation is also signaled.
66 */
67 #define PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_OFFSET 0x00000000
68 #define PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_LSB 11
69 #define PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_MASK 0x00007800
70 
71 /* Description		PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS
72 
73 			Indicates the data MCS
74 */
75 #define PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_OFFSET 0x00000000
76 #define PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_LSB 15
77 #define PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_MASK 0x00078000
78 
79 /* Description		PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1
80 
81 			<legal 1>
82 */
83 #define PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_OFFSET 0x00000000
84 #define PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_LSB 19
85 #define PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_MASK 0x00080000
86 
87 /* Description		PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING
88 
89 			Distinguishes between BCC/LDPC
90 
91 
92 
93 			0: BCC
94 
95 			1: LDPC
96 
97 			<legal all>
98 */
99 #define PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_OFFSET 0x00000000
100 #define PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_LSB 20
101 #define PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_MASK 0x00100000
102 
103 /* Description		PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A
104 
105 			<legal 0>
106 */
107 #define PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_OFFSET 0x00000000
108 #define PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_LSB 21
109 #define PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_MASK 0x1fe00000
110 
111 /* Description		PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_NSTS
112 
113 			MAC RX side usage only:
114 
115 			Needed by RXPCU. Provided by PHY so that RXPCU does not
116 			need to have the RU number decoding logic.
117 
118 
119 
120 			Number of spatial streams for this user
121 
122 
123 
124 			<enum 0 1_spatial_stream>Single spatial stream
125 
126 			<enum 1 2_spatial_streams>2 spatial streams
127 
128 			<enum 2 3_spatial_streams>3 spatial streams
129 
130 			<enum 3 4_spatial_streams>4 spatial streams
131 
132 			<enum 4 5_spatial_streams>5 spatial streams
133 
134 			<enum 5 6_spatial_streams>6 spatial streams
135 
136 			<enum 6 7_spatial_streams>7 spatial streams
137 
138 			<enum 7 8_spatial_streams>8 spatial streams
139 */
140 #define PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_OFFSET 0x00000000
141 #define PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_LSB 29
142 #define PHYRX_HE_SIG_B2_MU_0_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_MASK 0xe0000000
143 
144 
145 #endif // _PHYRX_HE_SIG_B2_MU_H_
146