xref: /OK3568_Linux_fs/external/rkwifibt/drivers/rtl8852bs/include/rtw_trx.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_H_
16 #define _RTW_TRX_H_
17 
18 struct dvobj_priv;
19 struct rtw_intf_ops {
20 	#ifdef CONFIG_SDIO_HCI
21 	int __must_check (*read)(struct dvobj_priv *d, unsigned int addr, void *buf,
22 				size_t len, bool fixed);
23 	int __must_check (*write)(struct dvobj_priv *d, unsigned int addr, void *buf,
24 				 size_t len, bool fixed);
25 	#endif /*CONFIG_SDIO_HCI*/
26 
27 	/*** xmit section ***/
28 	s32(*init_xmit_priv)(_adapter *adapter);
29 	void(*free_xmit_priv)(_adapter *adapter);
30 
31 	s32(*data_xmit)(_adapter *adapter, struct xmit_frame *pxmitframe);
32 	s32(*xmitframe_enqueue)(_adapter *adapter, struct xmit_frame *pxmitframe);
33 
34 	#if 0 /*def CONFIG_XMIT_THREAD_MODE*/
35 	s32(*xmit_buf_handler)(_adapter *adapter);
36 	#endif
37 	#if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI)
38 	#ifndef CONFIG_SDIO_TX_TASKLET
39 	u8(*start_xmit_frame_thread)(_adapter *adapter);
40 	void(*cancel_xmit_frame_thread)(_adapter *adapter);
41 	#endif
42 	#endif
43 	/*** recv section ***/
44 	s32(*init_recv_priv)(struct dvobj_priv *dvobj);
45 	void(*free_recv_priv)(struct dvobj_priv *dvobj);
46 	#ifdef CONFIG_RECV_THREAD_MODE
47 	s32 (*recv_hdl)(_adapter *adapter);
48 	#endif
49 
50 	#if defined(CONFIG_PCI_HCI)
51 	u32(*trxbd_init)(_adapter *adapter);
52 	u32(*trxbd_deinit)(_adapter *adapter);
53 	void(*trxbd_reset)(_adapter *adapter);
54 	s32(*interrupt_handler)(_adapter *adapter);
55 	#endif
56 
57 	#if defined(CONFIG_USB_HCI)
58 	#ifdef CONFIG_SUPPORT_USB_INT
59 	void(*interrupt_handler)(_adapter *adapter, u16 pkt_len, u8 *pbuf);
60 	#endif
61 	#endif
62 
63 	#ifdef CONFIG_HOSTAPD_MLME
64 	s32(*hostap_mgnt_xmit_entry)(_adapter *adapter, struct sk_buff *pkt);
65 	#endif
66 };
67 
68 s32 rtw_mgnt_xmit(_adapter *adapter, struct xmit_frame *pmgntframe);
69 
70 
71 #endif /* _RTW_TRX_H_ */
72