xref: /wlan-driver/fw-api/hw/peach/v2/tx_fes_status_prot.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1 /*
2  * Copyright (c) 2023-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 _TX_FES_STATUS_PROT_H_
19 #define _TX_FES_STATUS_PROT_H_
20 
21 #include "phytx_abort_request_info.h"
22 #define NUM_OF_DWORDS_TX_FES_STATUS_PROT 3
23 
24 struct tx_fes_status_prot {
25 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
26              uint32_t success                                                 :  1,
27                       phytx_pkt_end_info_valid                                :  1,
28                       phytx_abort_request_info_valid                          :  1,
29                       reserved_0                                              : 20,
30                       pkt_type                                                :  4,
31                       dot11ax_su_extended                                     :  1,
32                       rate_mcs                                                :  4;
33              uint32_t frame_type                                              :  2,
34                       frame_subtype                                           :  4,
35                       rx_pwr_mgmt                                             :  1,
36                       status                                                  :  1,
37                       duration_field                                          : 16,
38                       reserved_1a                                             :  2,
39                       agc_cbw                                                 :  3,
40                       service_cbw                                             :  3;
41              struct   phytx_abort_request_info                                  phytx_abort_request_info_details;
42              uint16_t reserved_2a                                             : 16;
43 #else
44              uint32_t rate_mcs                                                :  4,
45                       dot11ax_su_extended                                     :  1,
46                       pkt_type                                                :  4,
47                       reserved_0                                              : 20,
48                       phytx_abort_request_info_valid                          :  1,
49                       phytx_pkt_end_info_valid                                :  1,
50                       success                                                 :  1;
51              uint32_t service_cbw                                             :  3,
52                       agc_cbw                                                 :  3,
53                       reserved_1a                                             :  2,
54                       duration_field                                          : 16,
55                       status                                                  :  1,
56                       rx_pwr_mgmt                                             :  1,
57                       frame_subtype                                           :  4,
58                       frame_type                                              :  2;
59              uint32_t reserved_2a                                             : 16;
60              struct   phytx_abort_request_info                                  phytx_abort_request_info_details;
61 #endif
62 };
63 
64 #define TX_FES_STATUS_PROT_SUCCESS_OFFSET                                           0x00000000
65 #define TX_FES_STATUS_PROT_SUCCESS_LSB                                              0
66 #define TX_FES_STATUS_PROT_SUCCESS_MSB                                              0
67 #define TX_FES_STATUS_PROT_SUCCESS_MASK                                             0x00000001
68 
69 #define TX_FES_STATUS_PROT_PHYTX_PKT_END_INFO_VALID_OFFSET                          0x00000000
70 #define TX_FES_STATUS_PROT_PHYTX_PKT_END_INFO_VALID_LSB                             1
71 #define TX_FES_STATUS_PROT_PHYTX_PKT_END_INFO_VALID_MSB                             1
72 #define TX_FES_STATUS_PROT_PHYTX_PKT_END_INFO_VALID_MASK                            0x00000002
73 
74 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_VALID_OFFSET                    0x00000000
75 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_VALID_LSB                       2
76 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_VALID_MSB                       2
77 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_VALID_MASK                      0x00000004
78 
79 #define TX_FES_STATUS_PROT_RESERVED_0_OFFSET                                        0x00000000
80 #define TX_FES_STATUS_PROT_RESERVED_0_LSB                                           3
81 #define TX_FES_STATUS_PROT_RESERVED_0_MSB                                           22
82 #define TX_FES_STATUS_PROT_RESERVED_0_MASK                                          0x007ffff8
83 
84 #define TX_FES_STATUS_PROT_PKT_TYPE_OFFSET                                          0x00000000
85 #define TX_FES_STATUS_PROT_PKT_TYPE_LSB                                             23
86 #define TX_FES_STATUS_PROT_PKT_TYPE_MSB                                             26
87 #define TX_FES_STATUS_PROT_PKT_TYPE_MASK                                            0x07800000
88 
89 #define TX_FES_STATUS_PROT_DOT11AX_SU_EXTENDED_OFFSET                               0x00000000
90 #define TX_FES_STATUS_PROT_DOT11AX_SU_EXTENDED_LSB                                  27
91 #define TX_FES_STATUS_PROT_DOT11AX_SU_EXTENDED_MSB                                  27
92 #define TX_FES_STATUS_PROT_DOT11AX_SU_EXTENDED_MASK                                 0x08000000
93 
94 #define TX_FES_STATUS_PROT_RATE_MCS_OFFSET                                          0x00000000
95 #define TX_FES_STATUS_PROT_RATE_MCS_LSB                                             28
96 #define TX_FES_STATUS_PROT_RATE_MCS_MSB                                             31
97 #define TX_FES_STATUS_PROT_RATE_MCS_MASK                                            0xf0000000
98 
99 #define TX_FES_STATUS_PROT_FRAME_TYPE_OFFSET                                        0x00000004
100 #define TX_FES_STATUS_PROT_FRAME_TYPE_LSB                                           0
101 #define TX_FES_STATUS_PROT_FRAME_TYPE_MSB                                           1
102 #define TX_FES_STATUS_PROT_FRAME_TYPE_MASK                                          0x00000003
103 
104 #define TX_FES_STATUS_PROT_FRAME_SUBTYPE_OFFSET                                     0x00000004
105 #define TX_FES_STATUS_PROT_FRAME_SUBTYPE_LSB                                        2
106 #define TX_FES_STATUS_PROT_FRAME_SUBTYPE_MSB                                        5
107 #define TX_FES_STATUS_PROT_FRAME_SUBTYPE_MASK                                       0x0000003c
108 
109 #define TX_FES_STATUS_PROT_RX_PWR_MGMT_OFFSET                                       0x00000004
110 #define TX_FES_STATUS_PROT_RX_PWR_MGMT_LSB                                          6
111 #define TX_FES_STATUS_PROT_RX_PWR_MGMT_MSB                                          6
112 #define TX_FES_STATUS_PROT_RX_PWR_MGMT_MASK                                         0x00000040
113 
114 #define TX_FES_STATUS_PROT_STATUS_OFFSET                                            0x00000004
115 #define TX_FES_STATUS_PROT_STATUS_LSB                                               7
116 #define TX_FES_STATUS_PROT_STATUS_MSB                                               7
117 #define TX_FES_STATUS_PROT_STATUS_MASK                                              0x00000080
118 
119 #define TX_FES_STATUS_PROT_DURATION_FIELD_OFFSET                                    0x00000004
120 #define TX_FES_STATUS_PROT_DURATION_FIELD_LSB                                       8
121 #define TX_FES_STATUS_PROT_DURATION_FIELD_MSB                                       23
122 #define TX_FES_STATUS_PROT_DURATION_FIELD_MASK                                      0x00ffff00
123 
124 #define TX_FES_STATUS_PROT_RESERVED_1A_OFFSET                                       0x00000004
125 #define TX_FES_STATUS_PROT_RESERVED_1A_LSB                                          24
126 #define TX_FES_STATUS_PROT_RESERVED_1A_MSB                                          25
127 #define TX_FES_STATUS_PROT_RESERVED_1A_MASK                                         0x03000000
128 
129 #define TX_FES_STATUS_PROT_AGC_CBW_OFFSET                                           0x00000004
130 #define TX_FES_STATUS_PROT_AGC_CBW_LSB                                              26
131 #define TX_FES_STATUS_PROT_AGC_CBW_MSB                                              28
132 #define TX_FES_STATUS_PROT_AGC_CBW_MASK                                             0x1c000000
133 
134 #define TX_FES_STATUS_PROT_SERVICE_CBW_OFFSET                                       0x00000004
135 #define TX_FES_STATUS_PROT_SERVICE_CBW_LSB                                          29
136 #define TX_FES_STATUS_PROT_SERVICE_CBW_MSB                                          31
137 #define TX_FES_STATUS_PROT_SERVICE_CBW_MASK                                         0xe0000000
138 
139 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_OFFSET 0x00000008
140 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_LSB  0
141 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_MSB  7
142 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_MASK 0x000000ff
143 
144 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_OFFSET      0x00000008
145 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_LSB         8
146 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_MSB         13
147 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_MASK        0x00003f00
148 
149 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_OFFSET         0x00000008
150 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_LSB            14
151 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_MSB            15
152 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_MASK           0x0000c000
153 
154 #define TX_FES_STATUS_PROT_RESERVED_2A_OFFSET                                       0x00000008
155 #define TX_FES_STATUS_PROT_RESERVED_2A_LSB                                          16
156 #define TX_FES_STATUS_PROT_RESERVED_2A_MSB                                          31
157 #define TX_FES_STATUS_PROT_RESERVED_2A_MASK                                         0xffff0000
158 
159 #endif
160