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