1 /**
2  * Copyright (c) 2013-2020, The Linux Foundation. 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 #include "ol_txrx_types.h"
18 #include "ol_htt_tx_api.h"
19 #include "ol_tx_desc.h"
20 #include "qdf_mem.h"
21 #include "htt.h"
22 #include "htt_internal.h"
23 #include "pktlog_ac_i.h"
24 #include "wma_api.h"
25 #include "wlan_logging_sock_svc.h"
26 
27 #define TX_DESC_ID_LOW_MASK     0xffff
28 #define TX_DESC_ID_LOW_SHIFT    0
29 #define TX_DESC_ID_HIGH_MASK    0xffff0000
30 #define TX_DESC_ID_HIGH_SHIFT   16
31 
32 #ifndef REMOVE_PKT_LOG
33 /**
34  * process_tx_info() - process tx pktlog buffers
35  * @txrx_pdev: ol pdev handle
36  * @data: pktlog buffer
37  *
38  * Return: 0 - success/non-zero - failure
39  */
40 A_STATUS process_tx_info(struct cdp_pdev *txrx_pdev, void *data);
41 
42 /**
43  * process_rx_info_remote() - process rx pktlog buffers
44  * @txrx_pdev: ol pdev handle
45  * @data: pktlog buffer
46  *
47  * Return: 0 - success/non-zero - failure
48  */
49 A_STATUS process_rx_info_remote(void *pdev, void *data);
50 
51 /**
52  * process_rx_info() - process rx pktlog buffers
53  * @txrx_pdev: ol pdev handle
54  * @data: pktlog buffer
55  *
56  * Return: 0 - success/non-zero - failure
57  */
58 A_STATUS process_rx_info(void *pdev, void *data);
59 
60 /**
61  * process_rate_find() - process rate event pktlog buffers
62  * @txrx_pdev: ol pdev handle
63  * @data: pktlog buffer
64  *
65  * Return: 0 - success/non-zero - failure
66  */
67 A_STATUS process_rate_find(void *pdev, void *data);
68 
69 /**
70  * process_rate_update() - process rate event pktlog buffers
71  * @txrx_pdev: ol pdev handle
72  * @data: pktlog buffer
73  *
74  * Return: 0 - success/non-zero - failure
75  */
76 A_STATUS process_rate_update(void *pdev, void *data);
77 
78 /**
79  * process_sw_event() - process sw event pktlog buffers
80  * @txrx_pdev: ol pdev handle
81  * @data: pktlog buffer
82  *
83  * Return: 0 - success/non-zero - failure
84  */
85 A_STATUS process_sw_event(void *pdev, void *data);
86 #else
87 static inline
process_tx_info(struct cdp_pdev * txrx_pdev,void * data)88 A_STATUS process_tx_info(struct cdp_pdev *txrx_pdev, void *data)
89 {
90 	return 0;
91 }
92 
93 static inline
process_rx_info_remote(void * pdev,void * data)94 A_STATUS process_rx_info_remote(void *pdev, void *data)
95 {
96 	return 0;
97 }
98 
99 static inline
process_rx_info(void * pdev,void * data)100 A_STATUS process_rx_info(void *pdev, void *data)
101 {
102 	return 0;
103 }
104 
105 static inline
process_rate_find(void * pdev,void * data)106 A_STATUS process_rate_find(void *pdev, void *data)
107 {
108 	return 0;
109 }
110 
111 static inline
process_rate_update(void * pdev,void * data)112 A_STATUS process_rate_update(void *pdev, void *data)
113 {
114 	return 0;
115 }
116 
117 static inline
process_sw_event(void * pdev,void * data)118 A_STATUS process_sw_event(void *pdev, void *data)
119 {
120 	return 0;
121 }
122 #endif /* REMOVE_PKT_LOG */
123 
124 /**
125  * process_offload_pktlog_wifi3() - Process full pktlog events
126  * pdev: abstract pdev handle
127  * data: pktlog buffer
128  *
129  * Return: zero on success, non-zero on failure
130  */
131 static inline A_STATUS
process_offload_pktlog_wifi3(struct cdp_pdev * pdev,void * data)132 process_offload_pktlog_wifi3(struct cdp_pdev *pdev, void *data)
133 {
134 	return 0;
135 }
136 
137 /**
138  * process_rx_desc_remote_wifi3() - Process pktlog buffers received
139  *                                  from monitor status ring
140  * @pdev: pdev handle
141  * @data: pktlog buffer pointer
142  *
143  * Return: 0 - success/non-zero - failure
144  */
145 static inline int
process_rx_desc_remote_wifi3(void * pdev,void * data)146 process_rx_desc_remote_wifi3(void *pdev, void *data)
147 {
148 	return 0;
149 }
150 
151 /**
152  * process_pktlog_lite_wifi3() - Process pktlog buffers received
153  *                               from monitor status ring
154  * @pdev: pdev handle
155  * @data: pktlog buffer pointer
156  *
157  * Return: 0 - success/non-zero - failure
158  */
159 static inline int
process_pktlog_lite_wifi3(void * context,void * log_data,uint16_t log_type)160 process_pktlog_lite_wifi3(void *context, void *log_data,
161 			  uint16_t log_type)
162 {
163 	return 0;
164 }
165