xref: /OK3568_Linux_fs/external/rkwifibt/drivers/rtl8852bs/include/rtw_trx_ops.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /******************************************************************************
2  *
3  * Copyright(c) 2019 Realtek Corporation.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of version 2 of the GNU General Public License as
7  * published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12  * more details.
13  *
14  *****************************************************************************/
15 #ifndef _RTW_TRX_OPS_H_
16 #define _RTW_TRX_OPS_H_
17 #include <drv_types.h>
18 
rtw_intf_init_xmit_priv(_adapter * adapter)19 static inline s32 rtw_intf_init_xmit_priv(_adapter *adapter)
20 {
21 	return adapter_to_dvobj(adapter)->intf_ops->init_xmit_priv(adapter);
22 }
23 
rtw_intf_free_xmit_priv(_adapter * adapter)24 static inline void rtw_intf_free_xmit_priv(_adapter *adapter)
25 {
26 
27 	adapter_to_dvobj(adapter)->intf_ops->free_xmit_priv(adapter);
28 }
rtw_intf_data_xmit(_adapter * adapter,struct xmit_frame * pxmitframe)29 static inline s32 rtw_intf_data_xmit(_adapter *adapter,
30 					struct xmit_frame *pxmitframe)
31 {
32 	return adapter_to_dvobj(adapter)->intf_ops->data_xmit(adapter, pxmitframe);
33 }
34 
rtw_intf_xmitframe_enqueue(_adapter * adapter,struct xmit_frame * pxmitframe)35 static inline s32 rtw_intf_xmitframe_enqueue(_adapter *adapter,
36 						struct xmit_frame *pxmitframe)
37 {
38 	u32 rtn;
39 
40 	/* enqueue is not necessary, casuse phl use sw queue to save xmitframe */
41 	rtn = core_tx_call_phl(adapter, pxmitframe, NULL);
42 
43 	if (rtn == FAIL)
44 		core_tx_free_xmitframe(adapter, pxmitframe);
45 
46 	return rtn;
47 }
48 
rtw_intf_start_xmit_frame_thread(_adapter * adapter)49 static inline u8 rtw_intf_start_xmit_frame_thread(_adapter *adapter)
50 {
51 	u8 rst = _SUCCESS;
52 #if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI)
53 #ifndef CONFIG_SDIO_TX_TASKLET
54 	if (adapter_to_dvobj(adapter)->intf_ops->start_xmit_frame_thread)
55 		rst = adapter_to_dvobj(adapter)->intf_ops->start_xmit_frame_thread(adapter);
56 #endif
57 #endif
58 	return rst;
59 }
rtw_intf_cancel_xmit_frame_thread(_adapter * adapter)60 static inline void rtw_intf_cancel_xmit_frame_thread(_adapter *adapter)
61 {
62 #if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI)
63 #ifndef CONFIG_SDIO_TX_TASKLET
64 	if (adapter_to_dvobj(adapter)->intf_ops->cancel_xmit_frame_thread)
65 		adapter_to_dvobj(adapter)->intf_ops->cancel_xmit_frame_thread(adapter);
66 #endif
67 #endif
68 }
69 
70 #if 0 /*def CONFIG_XMIT_THREAD_MODE*/
71 static inline s32 rtw_intf_xmit_buf_handler(_adapter *adapter)
72 {
73 	return adapter_to_dvobj(adapter)->intf_ops->xmit_buf_handler(adapter);
74 }
75 #endif
76 
77 
78 /************************ recv *******************/
rtw_intf_init_recv_priv(struct dvobj_priv * dvobj)79 static inline s32 rtw_intf_init_recv_priv(struct dvobj_priv *dvobj)
80 {
81 	return dvobj->intf_ops->init_recv_priv(dvobj);
82 }
rtw_intf_free_recv_priv(struct dvobj_priv * dvobj)83 static inline void rtw_intf_free_recv_priv(struct dvobj_priv *dvobj)
84 {
85 	return dvobj->intf_ops->free_recv_priv(dvobj);
86 }
87 
88 #ifdef CONFIG_RECV_THREAD_MODE
rtw_intf_recv_hdl(_adapter * adapter)89 static inline s32 rtw_intf_recv_hdl(_adapter *adapter)
90 {
91 	return adapter_to_dvobj(adapter)->intf_ops->recv_hdl(adapter);
92 }
93 #endif
94 
95 struct lite_data_buf *rtw_alloc_litedatabuf(struct trx_data_buf_q *data_buf_q);
96 s32 rtw_free_litedatabuf(struct trx_data_buf_q *data_buf_q,
97 		struct lite_data_buf *lite_data_buf);
98 
99 #endif /* _RTW_TRX_OPS_H_ */
100