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