xref: /OK3568_Linux_fs/external/rkwifibt/drivers/rtl8189fs/hal/phydm/txbf/haltxbfinterface.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /******************************************************************************
2  *
3  * Copyright(c) 2007 - 2017  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  * The full GNU General Public License is included in this distribution in the
15  * file called LICENSE.
16  *
17  * Contact Information:
18  * wlanfae <wlanfae@realtek.com>
19  * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
20  * Hsinchu 300, Taiwan.
21  *
22  * Larry Finger <Larry.Finger@lwfinger.net>
23  *
24  *****************************************************************************/
25 #ifndef __HAL_TXBF_INTERFACE_H__
26 #define __HAL_TXBF_INTERFACE_H__
27 
28 #ifdef PHYDM_BEAMFORMING_SUPPORT
29 #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
30 
31 #define a_SifsTime ((IS_WIRELESS_MODE_5G(adapter) || IS_WIRELESS_MODE_N_24G(adapter)) ? 16 : 10)
32 
33 void beamforming_gid_paid(
34 	void *adapter,
35 	PRT_TCB tcb);
36 
37 enum rt_status
38 beamforming_get_report_frame(
39 	void *adapter,
40 	PRT_RFD rfd,
41 	POCTET_STRING p_pdu_os);
42 
43 void beamforming_get_ndpa_frame(
44 	void *dm_void,
45 	OCTET_STRING pdu_os);
46 
47 boolean
48 send_fw_ht_ndpa_packet(
49 	void *dm_void,
50 	u8 *RA,
51 	enum channel_width BW);
52 
53 boolean
54 send_fw_vht_ndpa_packet(
55 	void *dm_void,
56 	u8 *RA,
57 	u16 AID,
58 	enum channel_width BW);
59 
60 boolean
61 send_sw_vht_ndpa_packet(
62 	void *dm_void,
63 	u8 *RA,
64 	u16 AID,
65 	enum channel_width BW);
66 
67 boolean
68 send_sw_ht_ndpa_packet(
69 	void *dm_void,
70 	u8 *RA,
71 	enum channel_width BW);
72 
73 #if (SUPPORT_MU_BF == 1)
74 enum rt_status
75 beamforming_get_vht_gid_mgnt_frame(
76 	void *adapter,
77 	PRT_RFD rfd,
78 	POCTET_STRING p_pdu_os);
79 
80 boolean
81 send_sw_vht_gid_mgnt_frame(
82 	void *dm_void,
83 	u8 *RA,
84 	u8 idx);
85 
86 boolean
87 send_sw_vht_bf_report_poll(
88 	void *dm_void,
89 	u8 *RA,
90 	boolean is_final_poll);
91 
92 boolean
93 send_sw_vht_mu_ndpa_packet(
94 	void *dm_void,
95 	enum channel_width BW);
96 #else
97 #define beamforming_get_vht_gid_mgnt_frame(adapter, rfd, p_pdu_os) RT_STATUS_FAILURE
98 #define send_sw_vht_gid_mgnt_frame(dm_void, RA)
99 #define send_sw_vht_bf_report_poll(dm_void, RA, is_final_poll)
100 #define send_sw_vht_mu_ndpa_packet(dm_void, BW)
101 #endif
102 
103 #elif (DM_ODM_SUPPORT_TYPE == ODM_CE)
104 
105 u32 beamforming_get_report_frame(
106 	void *dm_void,
107 	union recv_frame *precv_frame);
108 
109 boolean
110 send_fw_ht_ndpa_packet(
111 	void *dm_void,
112 	u8 *RA,
113 	enum channel_width BW);
114 
115 boolean
116 send_sw_ht_ndpa_packet(
117 	void *dm_void,
118 	u8 *RA,
119 	enum channel_width BW);
120 
121 boolean
122 send_fw_vht_ndpa_packet(
123 	void *dm_void,
124 	u8 *RA,
125 	u16 AID,
126 	enum channel_width BW);
127 
128 boolean
129 send_sw_vht_ndpa_packet(
130 	void *dm_void,
131 	u8 *RA,
132 	u16 AID,
133 	enum channel_width BW);
134 #endif
135 
136 void beamforming_get_ndpa_frame(
137 	void *dm_void,
138 #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
139 	OCTET_STRING pdu_os
140 #elif (DM_ODM_SUPPORT_TYPE == ODM_CE)
141 	union recv_frame *precv_frame
142 #endif
143 	);
144 
145 boolean
146 dbg_send_sw_vht_mundpa_packet(
147 	void *dm_void,
148 	enum channel_width BW);
149 
150 #else
151 #define beamforming_get_ndpa_frame(dm, _pdu_os)
152 #if (DM_ODM_SUPPORT_TYPE == ODM_CE)
153 #define beamforming_get_report_frame(adapter, precv_frame) RT_STATUS_FAILURE
154 #elif (DM_ODM_SUPPORT_TYPE == ODM_WIN)
155 #define beamforming_get_report_frame(adapter, rfd, p_pdu_os) RT_STATUS_FAILURE
156 #define beamforming_get_vht_gid_mgnt_frame(adapter, rfd, p_pdu_os) RT_STATUS_FAILURE
157 #endif
158 #define send_fw_ht_ndpa_packet(dm_void, RA, BW)
159 #define send_sw_ht_ndpa_packet(dm_void, RA, BW)
160 #define send_fw_vht_ndpa_packet(dm_void, RA, AID, BW)
161 #define send_sw_vht_ndpa_packet(dm_void, RA, AID, BW)
162 #define send_sw_vht_gid_mgnt_frame(dm_void, RA, idx)
163 #define send_sw_vht_bf_report_poll(dm_void, RA, is_final_poll)
164 #define send_sw_vht_mu_ndpa_packet(dm_void, BW)
165 #endif
166 
167 #endif
168