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 #define _HAL_API_RF_C_
16 #include "hal_headers.h"
17 #include "phy/rf/halrf_api.h"
18 #include "phy/rf/halrf_export_fun.h"
19
20 #ifdef USE_TRUE_PHY
21 enum rtw_hal_status
rtw_hal_rf_init(struct rtw_phl_com_t * phl_com,struct hal_info_t * hal_info)22 rtw_hal_rf_init(struct rtw_phl_com_t *phl_com,
23 struct hal_info_t *hal_info)
24 {
25 struct rtw_hal_com_t *hal_com = hal_info->hal_com;
26 enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
27
28 hal_status = halrf_init(phl_com, hal_com, &(hal_info->rf));
29
30 if ((hal_status != RTW_HAL_STATUS_SUCCESS) ||
31 (hal_info->rf == NULL)) {
32 PHL_ERR("[PHL] rtw_halrf_init failed status(%d), hal_info->rf(%p)\n",
33 hal_status, hal_info->rf);
34 }
35
36 return hal_status;
37 }
38
rtw_hal_rf_deinit(struct rtw_phl_com_t * phl_com,struct hal_info_t * hal_info)39 void rtw_hal_rf_deinit(struct rtw_phl_com_t *phl_com,
40 struct hal_info_t *hal_info)
41 {
42 struct rtw_hal_com_t *hal_com = hal_info->hal_com;
43
44 halrf_deinit(phl_com, hal_com, hal_info->rf);
45 }
46
rtw_hal_init_rf_reg(struct rtw_phl_com_t * phl_com,void * hal)47 void rtw_hal_init_rf_reg(struct rtw_phl_com_t *phl_com, void *hal)
48 {
49 struct hal_info_t *hal_info = (struct hal_info_t *)hal;
50 struct rtw_para_info_t *phy_reg_info = NULL;
51 struct rtw_para_pwrlmt_info_t *pwrlmt_info = NULL;
52 u8 phy_idx = 0;
53
54 for (phy_idx = 0; phy_idx < 1 ; phy_idx++) {
55 phy_reg_info = &phl_com->phy_sw_cap[phy_idx].rf_radio_a_info;
56 halrf_config_radio_a_reg(hal_info->rf, phy_reg_info->para_src,
57 phy_reg_info->para_data_len, phy_reg_info->para_data);
58 }
59
60 for (phy_idx = 0; phy_idx < 1 ; phy_idx++) {
61 phy_reg_info = &phl_com->phy_sw_cap[phy_idx].rf_radio_b_info;
62 halrf_config_radio_b_reg(hal_info->rf , phy_reg_info->para_src,
63 phy_reg_info->para_data_len, phy_reg_info->para_data);
64 }
65
66 for (phy_idx = 0; phy_idx < 1 ; phy_idx++) {
67 phy_reg_info = &phl_com->phy_sw_cap[phy_idx].rf_txpwr_byrate_info;
68 halrf_config_store_power_by_rate(hal_info->rf , phy_reg_info->para_src,
69 phy_reg_info->para_data_len, phy_reg_info->para_data);
70 }
71 for (phy_idx = 0; phy_idx < 1 ; phy_idx++) {
72 phy_reg_info = &phl_com->phy_sw_cap[phy_idx].rf_txpwrtrack_info;
73 halrf_config_store_power_track(hal_info->rf , phy_reg_info->para_src,
74 phy_reg_info->para_data_len, phy_reg_info->para_data);
75 }
76
77 for (phy_idx = 0; phy_idx < 1 ; phy_idx++) {
78 pwrlmt_info = &phl_com->phy_sw_cap[phy_idx].rf_txpwrlmt_info;
79 halrf_config_store_power_limit(hal_info->rf , pwrlmt_info->para_src,
80 pwrlmt_info->para_data_len, pwrlmt_info->para_data);
81 }
82
83 for (phy_idx = 0; phy_idx < 1 ; phy_idx++) {
84 pwrlmt_info = &phl_com->phy_sw_cap[phy_idx].rf_txpwrlmt_ru_info;
85 halrf_config_store_power_limit_ru(hal_info->rf , pwrlmt_info->para_src,
86 pwrlmt_info->para_data_len, pwrlmt_info->para_data);
87 }
88 }
89
rtw_hal_rf_dm_init(struct hal_info_t * hal_info)90 void rtw_hal_rf_dm_init(struct hal_info_t *hal_info)
91 {
92 halrf_dm_init(hal_info->rf);
93 }
94
95 enum rtw_hal_status
rtw_hal_rf_get_efuse_info(struct rtw_hal_com_t * hal_com,u8 * efuse_map,enum rtw_efuse_info info_type,void * value,u8 size,u8 map_valid)96 rtw_hal_rf_get_efuse_info(struct rtw_hal_com_t *hal_com,
97 u8 *efuse_map, enum rtw_efuse_info info_type, void *value,
98 u8 size, u8 map_valid)
99 {
100 struct hal_info_t *hal_info = hal_com->hal_priv;
101
102 PHL_INFO("%s\n", __FUNCTION__);
103
104 if(halrf_get_efuse_info(hal_info->rf, efuse_map, info_type, value, size,
105 map_valid))
106 return RTW_HAL_STATUS_SUCCESS;
107 else
108 return RTW_HAL_STATUS_FAILURE;
109 }
110
111 void
rtw_hal_rf_set_power_table_switch(struct rtw_hal_com_t * hal_com,enum phl_phy_idx phy_idx,u8 pwrbyrate_type,u8 pwrlmt_type)112 rtw_hal_rf_set_power_table_switch(struct rtw_hal_com_t *hal_com,
113 enum phl_phy_idx phy_idx,
114 u8 pwrbyrate_type, u8 pwrlmt_type)
115 {
116 /* struct hal_info_t *hal_info = hal_com->hal_priv;
117
118 halrf_set_power_table_switch(hal_info->rf, phy_idx,
119 pwrbyrate_type, pwrlmt_type);*/
120 }
121
rtw_hal_rf_get_predefined_pw_lmt_regu_type_from_str(const char * str)122 int rtw_hal_rf_get_predefined_pw_lmt_regu_type_from_str(const char *str)
123 {
124 return halrf_get_predefined_pw_lmt_regu_type_from_str(str);
125 }
126
rtw_hal_rf_get_predefined_pw_lmt_regu_type_str_array(u8 * num)127 const char * const *rtw_hal_rf_get_predefined_pw_lmt_regu_type_str_array(u8 *num)
128 {
129 return halrf_get_predefined_pw_lmt_regu_type_str_array(num);
130 }
131
rtw_hal_rf_get_pw_lmt_regu_type_str(struct hal_info_t * hal_info,enum band_type band)132 const char *rtw_hal_rf_get_pw_lmt_regu_type_str(struct hal_info_t *hal_info, enum band_type band)
133 {
134 return halrf_get_pw_lmt_regu_type_str(hal_info->rf, band);
135 }
136
rtw_hal_rf_read_pwr_table(struct rtw_hal_com_t * hal_com,u8 rf_path,u16 rate,u8 bandwidth,u8 channel,u8 offset,u8 dcm,u8 beamforming,s16 * get_item)137 enum rtw_hal_status rtw_hal_rf_read_pwr_table(
138 struct rtw_hal_com_t *hal_com, u8 rf_path, u16 rate,
139 u8 bandwidth, u8 channel, u8 offset, u8 dcm,
140 u8 beamforming, s16 *get_item)
141 {
142 int ret = RTW_HAL_STATUS_SUCCESS;
143 struct hal_info_t *hal_info = (struct hal_info_t *)hal_com->hal_priv;
144
145 PHL_INFO("[MP HAL API] %s \n", __FUNCTION__);
146
147 *get_item = halrf_get_power(hal_info->rf, rf_path, rate, dcm,offset, bandwidth, beamforming, channel);
148
149 return ret;
150 }
151
rtw_hal_rf_wl_tx_power_control(struct rtw_hal_com_t * hal_com,u32 tx_power_val)152 enum rtw_hal_status rtw_hal_rf_wl_tx_power_control(struct rtw_hal_com_t *hal_com,
153 u32 tx_power_val)
154 {
155 struct hal_info_t *hal_info = (struct hal_info_t *)hal_com->hal_priv;
156
157 PHL_INFO("%s\n", __FUNCTION__);
158
159 halrf_wl_tx_power_control(hal_info->rf, tx_power_val);
160
161 return RTW_HAL_STATUS_SUCCESS;
162 }
163
rtw_hal_rf_get_pwrtrack(struct hal_info_t * hal_info,u8 * txpwr_track_status)164 enum rtw_hal_status rtw_hal_rf_get_pwrtrack(struct hal_info_t *hal_info, u8 *txpwr_track_status)
165 {
166 int ret = RTW_HAL_STATUS_SUCCESS;
167
168 PHL_INFO("[MP HAL API] %s \n", __FUNCTION__);
169
170 *txpwr_track_status = halrf_get_power_track(hal_info->rf);
171
172 return ret;
173 }
174
rtw_hal_rf_set_pwrtrack(struct hal_info_t * hal_info,u8 phy_idx,u8 txpwr_track_status)175 enum rtw_hal_status rtw_hal_rf_set_pwrtrack(struct hal_info_t *hal_info, u8 phy_idx, u8 txpwr_track_status)
176 {
177 int ret = RTW_HAL_STATUS_SUCCESS;
178
179 PHL_INFO("[MP HAL API] %s \n", __FUNCTION__);
180
181 halrf_set_power_track(hal_info->rf, phy_idx, txpwr_track_status);
182
183 return ret;
184 }
185
rtw_hal_rf_get_thermal(struct hal_info_t * hal_info,u8 rf_path,u8 * thermal)186 enum rtw_hal_status rtw_hal_rf_get_thermal(struct hal_info_t *hal_info, u8 rf_path, u8 *thermal)
187 {
188 int ret = RTW_HAL_STATUS_SUCCESS;
189
190 PHL_INFO("[MP HAL API] %s \n", __FUNCTION__);
191
192 *thermal = halrf_get_thermal(hal_info->rf, rf_path);
193
194 return ret;
195 }
196
rtw_hal_rf_set_tssi(struct hal_info_t * hal_info,u8 phy_idx,u8 rf_path,u32 tssi_de)197 enum rtw_hal_status rtw_hal_rf_set_tssi(struct hal_info_t *hal_info, u8 phy_idx, u8 rf_path, u32 tssi_de)
198 {
199 int ret = RTW_HAL_STATUS_SUCCESS;
200
201 PHL_INFO("[MP HAL API] %s \n", __FUNCTION__);
202
203 halrf_set_tssi_de_for_tx_verify(hal_info->rf, phy_idx, tssi_de, rf_path);
204
205 return ret;
206
207 }
208
rtw_hal_rf_set_tssi_offset(struct hal_info_t * hal_info,u8 phy_idx,u32 tssi_de_offset,u8 rf_path)209 enum rtw_hal_status rtw_hal_rf_set_tssi_offset(struct hal_info_t *hal_info, u8 phy_idx, u32 tssi_de_offset, u8 rf_path)
210 {
211 int ret = RTW_HAL_STATUS_SUCCESS;
212
213 PHL_INFO("[MP HAL API] %s \n", __FUNCTION__);
214
215 halrf_set_tssi_de_offset(hal_info->rf, phy_idx, tssi_de_offset, rf_path);
216
217 return ret;
218
219 }
220
rtw_hal_rf_get_tssi(struct hal_info_t * hal_info,u8 phy_idx,u8 rf_path,u32 * tssi_de)221 enum rtw_hal_status rtw_hal_rf_get_tssi(struct hal_info_t *hal_info, u8 phy_idx, u8 rf_path, u32 *tssi_de)
222 {
223 int ret = RTW_HAL_STATUS_SUCCESS;
224
225 PHL_INFO("[MP HAL API] %s \n", __FUNCTION__);
226
227 *tssi_de = halrf_get_tssi_de(hal_info->rf, phy_idx, rf_path);
228
229 return ret;
230 }
231
rtw_hal_rf_get_online_tssi_de(struct hal_info_t * hal_info,u8 phy_idx,u8 rf_path,s32 dbm,s32 pout,s32 * tssi_de)232 enum rtw_hal_status rtw_hal_rf_get_online_tssi_de(struct hal_info_t *hal_info, u8 phy_idx, u8 rf_path,s32 dbm, s32 pout, s32 *tssi_de)
233 {
234 int ret = RTW_HAL_STATUS_SUCCESS;
235
236 PHL_INFO("[MP HAL API] %s \n", __FUNCTION__);
237
238 *tssi_de = halrf_get_online_tssi_de(hal_info->rf, phy_idx, rf_path, dbm, pout);
239
240 return ret;
241 }
242
243 enum rtw_hal_status
rtw_hal_rf_set_continuous_tx(struct hal_info_t * hal_info)244 rtw_hal_rf_set_continuous_tx(struct hal_info_t *hal_info)
245 {
246 PHL_INFO("%s\n", __FUNCTION__);
247 return RTW_HAL_STATUS_SUCCESS;
248 }
249
250 enum rtw_hal_status
rtw_hal_rf_set_singletone_tx(struct hal_info_t * hal_info,u8 is_on,enum rf_path path)251 rtw_hal_rf_set_singletone_tx(struct hal_info_t *hal_info,
252 u8 is_on,enum rf_path path)
253 {
254 PHL_INFO("%s: enable = %d path = %x\n", __FUNCTION__, is_on, path);
255 halrf_lo_test(hal_info->rf, is_on, path);
256 return RTW_HAL_STATUS_SUCCESS;
257 }
258
259 enum rtw_hal_status
rtw_hal_rf_set_suppression_tx(struct hal_info_t * hal_info)260 rtw_hal_rf_set_suppression_tx(struct hal_info_t *hal_info)
261 {
262 PHL_INFO("%s\n", __FUNCTION__);
263 return RTW_HAL_STATUS_SUCCESS;
264 }
265
rtw_hal_rf_ctrl_dbcc(struct rtw_hal_com_t * hal_com,bool dbcc_en)266 enum rtw_hal_status rtw_hal_rf_ctrl_dbcc(struct rtw_hal_com_t *hal_com,
267 bool dbcc_en)
268 {
269 /*need replace with rf api*/
270 enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
271 struct hal_info_t *hal_info = (struct hal_info_t *)hal_com->hal_priv;
272
273 if (halrf_set_dbcc(hal_info->rf, dbcc_en))
274 hal_status = RTW_HAL_STATUS_SUCCESS;
275
276 return hal_status;
277 }
278
279 #define DBG_RFK_TIME
rtw_hal_rf_chl_rfk_trigger(void * hal,u8 phy_idx,u8 force)280 enum rtw_hal_status rtw_hal_rf_chl_rfk_trigger(void *hal,
281 u8 phy_idx, u8 force)
282 {
283 enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
284 struct hal_info_t *hal_info = (struct hal_info_t *)hal;
285 #ifdef DBG_RFK_TIME
286 u32 iqk_start = _os_get_cur_time_ms();
287 #endif
288
289 PHL_INFO("[DBG_RFK]%s: phy_idx(%d), force(%d)\n", __func__,
290 phy_idx, force);
291 rtw_hal_mac_ser_ctrl(hal_info, false);
292
293 hal_status = halrf_chl_rfk_trigger(hal_info->rf, phy_idx, force);
294
295 #ifdef DBG_RFK_TIME
296 PHL_INFO("[DBG_RFK]%s: RFK take %d (ms)\n", __func__,
297 phl_get_passing_time_ms(iqk_start));
298 #endif
299 if (hal_status != RTW_HAL_STATUS_SUCCESS)
300 PHL_ERR("[MP HAL API] %s failed status(%d)\n",__FUNCTION__, hal_status);
301
302 rtw_hal_mac_ser_ctrl(hal_info, true);
303
304 return hal_status;
305 }
306
rtw_hal_rf_dack_trigger(struct hal_info_t * hal_info,u8 force)307 enum rtw_hal_status rtw_hal_rf_dack_trigger(struct hal_info_t *hal_info,
308 u8 force)
309 {
310 enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
311
312 #if 0
313 hal_status = halrf_dack_trigger(hal_info->rf, force);
314 #else
315 hal_status = RTW_HAL_STATUS_SUCCESS;
316 #endif
317
318 if (hal_status != RTW_HAL_STATUS_SUCCESS)
319 PHL_ERR("[MP HAL API] %s failed status(%d)\n",__FUNCTION__, hal_status);
320
321 return hal_status;
322 }
323
rtw_hal_rf_iqk_trigger(struct hal_info_t * hal_info,u8 phy_idx,u8 force)324 enum rtw_hal_status rtw_hal_rf_iqk_trigger(struct hal_info_t *hal_info,
325 u8 phy_idx, u8 force)
326 {
327 enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
328
329 hal_status = halrf_iqk_trigger(hal_info->rf, phy_idx, force);
330
331 if (hal_status != RTW_HAL_STATUS_SUCCESS)
332 PHL_ERR("[MP HAL API] %s failed status(%d)\n",__FUNCTION__, hal_status);
333
334 return hal_status;
335 }
336
rtw_hal_rf_lck_trigger(struct hal_info_t * hal_info)337 enum rtw_hal_status rtw_hal_rf_lck_trigger(struct hal_info_t *hal_info)
338 {
339 enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
340
341 #if 0
342 hal_status = halrf_lck_trigger(hal_info->rf);
343 #else
344 hal_status = RTW_HAL_STATUS_SUCCESS;
345 #endif
346
347 if (hal_status != RTW_HAL_STATUS_SUCCESS)
348 PHL_ERR("[MP HAL API] %s failed status(%d)\n",__FUNCTION__, hal_status);
349
350 return hal_status;
351 }
352
rtw_hal_rf_dpk_trigger(struct hal_info_t * hal_info,u8 phy_idx,u8 force)353 enum rtw_hal_status rtw_hal_rf_dpk_trigger(struct hal_info_t *hal_info,
354 u8 phy_idx, u8 force)
355 {
356 enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
357
358 hal_status = halrf_dpk_trigger(hal_info->rf, phy_idx, force);
359
360 if (hal_status != RTW_HAL_STATUS_SUCCESS)
361 PHL_ERR("[MP HAL API] %s failed status(%d)\n",__FUNCTION__, hal_status);
362
363 return hal_status;
364 }
365
rtw_hal_rf_tssi_trigger(struct hal_info_t * hal_info,u8 phy_idx)366 enum rtw_hal_status rtw_hal_rf_tssi_trigger(struct hal_info_t *hal_info,
367 u8 phy_idx)
368 {
369 enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
370
371 #if 0
372 hal_status = halrf_tssi_trigger(hal_info->rf, phy_idx);
373 #else
374 hal_status = RTW_HAL_STATUS_SUCCESS;
375 #endif
376
377 if (hal_status != RTW_HAL_STATUS_SUCCESS)
378 PHL_ERR("[MP HAL API] %s failed status(%d)\n",__FUNCTION__, hal_status);
379
380 return hal_status;
381 }
382
rtw_hal_rf_gapk_trigger(struct hal_info_t * hal_info,u8 phy_idx,u8 force)383 enum rtw_hal_status rtw_hal_rf_gapk_trigger(struct hal_info_t *hal_info,
384 u8 phy_idx, u8 force)
385 {
386 enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
387
388 #if 0
389 hal_status = halrf_gapk_trigger(hal_info->rf, phy_idx, force);
390 #else
391 hal_status = RTW_HAL_STATUS_SUCCESS;
392 #endif
393
394 if (hal_status != RTW_HAL_STATUS_SUCCESS)
395 PHL_ERR("[MP HAL API] %s failed status(%d)\n",__FUNCTION__, hal_status);
396
397 return hal_status;
398 }
399
400
rtw_hal_rf_set_capability_dack(struct hal_info_t * hal_info,u8 enable)401 enum rtw_hal_status rtw_hal_rf_set_capability_dack(struct hal_info_t *hal_info,
402 u8 enable)
403 {
404 #if 0
405 halrf_dack_onoff(hal_info->rf, enable);
406 #endif
407
408 return RTW_HAL_STATUS_SUCCESS;
409 }
410
rtw_hal_rf_set_capability_iqk(struct hal_info_t * hal_info,u8 enable)411 enum rtw_hal_status rtw_hal_rf_set_capability_iqk(struct hal_info_t *hal_info,
412 u8 enable)
413 {
414 #if 0
415 halrf_iqk_onoff(hal_info->rf, enable);
416 #endif
417
418 return RTW_HAL_STATUS_SUCCESS;
419 }
420
rtw_hal_rf_set_capability_dpk(struct hal_info_t * hal_info,u8 enable)421 enum rtw_hal_status rtw_hal_rf_set_capability_dpk(struct hal_info_t *hal_info,
422 u8 enable)
423 {
424 #if 0
425 halrf_dpk_onoff(hal_info->rf, enable);
426 #endif
427
428 return RTW_HAL_STATUS_SUCCESS;
429 }
430
rtw_hal_rf_set_capability_dpk_track(struct hal_info_t * hal_info,u8 enable)431 enum rtw_hal_status rtw_hal_rf_set_capability_dpk_track(struct hal_info_t *hal_info,
432 u8 enable)
433 {
434 #if 0
435 halrf_dpk_track_onoff(hal_info->rf, enable);
436 #endif
437
438 return RTW_HAL_STATUS_SUCCESS;
439 }
440
441
rtw_hal_rf_set_capability_tssi(struct hal_info_t * hal_info,u8 enable)442 enum rtw_hal_status rtw_hal_rf_set_capability_tssi(struct hal_info_t *hal_info,
443 u8 enable)
444 {
445 #if 0
446 halrf_tssi_onoff(hal_info->rf, enable);
447 #endif
448
449 return RTW_HAL_STATUS_SUCCESS;
450 }
451
rtw_hal_rf_set_capability_gapk(struct hal_info_t * hal_info,u8 enable)452 enum rtw_hal_status rtw_hal_rf_set_capability_gapk(struct hal_info_t *hal_info,
453 u8 enable)
454 {
455 #if 0
456 halrf_gapk_onoff(hal_info->rf, enable);
457 #endif
458
459 return RTW_HAL_STATUS_SUCCESS;
460 }
461
462
rtw_hal_rf_get_capability_dack(struct hal_info_t * hal_info,u8 * enable)463 enum rtw_hal_status rtw_hal_rf_get_capability_dack(struct hal_info_t *hal_info,
464 u8 *enable)
465 {
466 #if 0
467 *enable = halrf_get_dack_onoff(hal_info->rf);
468 #endif
469
470 return RTW_HAL_STATUS_SUCCESS;
471 }
472
rtw_hal_rf_get_capability_iqk(struct hal_info_t * hal_info,u8 * enable)473 enum rtw_hal_status rtw_hal_rf_get_capability_iqk(struct hal_info_t *hal_info,
474 u8 *enable)
475 {
476 #if 0
477 *enable = halrf_get_iqk_onoff(hal_info->rf);
478 #endif
479
480 return RTW_HAL_STATUS_SUCCESS;
481 }
482
rtw_hal_rf_get_capability_dpk(struct hal_info_t * hal_info,u8 * enable)483 enum rtw_hal_status rtw_hal_rf_get_capability_dpk(struct hal_info_t *hal_info,
484 u8 *enable)
485 {
486 #if 0
487 *enable = halrf_get_dpk_onoff(hal_info->rf);
488 #endif
489 return RTW_HAL_STATUS_SUCCESS;
490 }
491
rtw_hal_rf_get_capability_dpk_track(struct hal_info_t * hal_info,u8 * enable)492 enum rtw_hal_status rtw_hal_rf_get_capability_dpk_track(struct hal_info_t *hal_info,
493 u8 *enable)
494 {
495 #if 0
496 *enable = halrf_get_dpk_track_onoff(hal_info->rf);
497 #endif
498
499 return RTW_HAL_STATUS_SUCCESS;
500 }
501
rtw_hal_rf_get_capability_tssi(struct hal_info_t * hal_info,u8 * enable)502 enum rtw_hal_status rtw_hal_rf_get_capability_tssi(struct hal_info_t *hal_info,
503 u8 *enable)
504 {
505 #if 0
506 *enable = halrf_get_tssi_onoff(hal_info->rf);
507 #endif
508
509 return RTW_HAL_STATUS_SUCCESS;
510 }
511
rtw_hal_rf_get_capability_gapk(struct hal_info_t * hal_info,u8 * enable)512 enum rtw_hal_status rtw_hal_rf_get_capability_gapk(struct hal_info_t *hal_info,
513 u8 *enable)
514 {
515 #if 0
516 *enable = halrf_get_gapk_onoff(hal_info->rf);
517 #endif
518
519 return RTW_HAL_STATUS_SUCCESS;
520 }
521
522
rtw_hal_rf_get_tssi_de_value(struct hal_info_t * hal_info)523 enum rtw_hal_status rtw_hal_rf_get_tssi_de_value(struct hal_info_t *hal_info)
524 {
525 enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
526
527 #if 0
528 hal_status = halrf_get_tssi_de_value(hal_info->rf);
529 #else
530 hal_status = RTW_HAL_STATUS_SUCCESS;
531 #endif
532
533 if (hal_status != RTW_HAL_STATUS_SUCCESS)
534 PHL_ERR("[MP HAL API] %s failed status(%d)\n",__FUNCTION__, hal_status);
535
536 return hal_status;
537 }
538
rtw_hal_rf_set_tssi_de_tx_verify(struct hal_info_t * hal_info)539 enum rtw_hal_status rtw_hal_rf_set_tssi_de_tx_verify(struct hal_info_t *hal_info)
540 {
541 enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
542
543 #if 0
544 hal_status = halrf_set_tssi_de_tx_verify(hal_info->rf);
545 #else
546 hal_status = RTW_HAL_STATUS_SUCCESS;
547 #endif
548
549 if (hal_status != RTW_HAL_STATUS_SUCCESS)
550 PHL_ERR("[MP HAL API] %s failed status(%d)\n",__FUNCTION__, hal_status);
551
552 return hal_status;
553 }
554
rtw_hal_rf_get_txpwr_final_abs(struct hal_info_t * hal_info)555 enum rtw_hal_status rtw_hal_rf_get_txpwr_final_abs(struct hal_info_t *hal_info)
556 {
557 enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
558
559 #if 0
560 hal_status = halrf_get_txpwr_final_abs(hal_info->rf);
561 #else
562 hal_status = RTW_HAL_STATUS_SUCCESS;
563 #endif
564
565 if (hal_status != RTW_HAL_STATUS_SUCCESS)
566 PHL_ERR("[MP HAL API] %s failed status(%d)\n",__FUNCTION__, hal_status);
567
568 return hal_status;
569 }
570
571 bool
rtw_hal_rf_proc_cmd(struct hal_info_t * hal_info,struct rtw_proc_cmd * incmd,char * output,u32 out_len)572 rtw_hal_rf_proc_cmd(struct hal_info_t *hal_info,
573 struct rtw_proc_cmd *incmd,
574 char *output, u32 out_len)
575 {
576
577 if(incmd->in_type == RTW_ARG_TYPE_BUF)
578 halrf_cmd(hal_info->rf, incmd->in.buf, output, out_len);
579
580 else if(incmd->in_type == RTW_ARG_TYPE_ARRAY){
581
582 halrf_cmd_parser(hal_info->rf, incmd->in.vector,
583 incmd->in_cnt_len, output, out_len);
584 }
585
586 return true;
587 }
588
rtw_hal_rf_watchdog(struct hal_info_t * hal_info)589 enum rtw_hal_status rtw_hal_rf_watchdog(struct hal_info_t *hal_info)
590 {
591
592 halrf_watchdog(hal_info->rf);
593
594 return RTW_HAL_STATUS_SUCCESS;
595 }
596
597 enum rtw_hal_status
rtw_hal_rf_set_power(struct hal_info_t * hal_info,enum phl_phy_idx phy,enum phl_pwr_table pwr_table)598 rtw_hal_rf_set_power(struct hal_info_t *hal_info, enum phl_phy_idx phy,
599 enum phl_pwr_table pwr_table)
600 {
601 enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
602
603 if(halrf_set_power(hal_info->rf, phy, pwr_table))
604 {
605 hal_status = RTW_HAL_STATUS_SUCCESS;
606 }
607 else
608 {
609 hal_status = RTW_HAL_STATUS_FAILURE;
610 }
611
612 return hal_status;
613 }
614
rtw_hal_rf_set_gain_offset(struct hal_info_t * hal_info,u8 cur_phy_idx,s8 offset,u8 rf_path)615 enum rtw_hal_status rtw_hal_rf_set_gain_offset(struct hal_info_t *hal_info, u8 cur_phy_idx,
616 s8 offset, u8 rf_path)
617 {
618
619 enum rtw_hal_status ret=RTW_HAL_STATUS_SUCCESS;
620 PHL_INFO("[MP HAL API]%s\n", __FUNCTION__);
621
622 halrf_set_rx_gain_offset_for_rx_verify(hal_info->rf, cur_phy_idx, offset, rf_path);
623
624 return ret;
625 }
626
rtw_hal_rf_trigger_dpk_tracking(struct hal_info_t * hal_info)627 enum rtw_hal_status rtw_hal_rf_trigger_dpk_tracking(struct hal_info_t *hal_info)
628 {
629 enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
630
631 hal_status = halrf_dpk_tracking(hal_info->rf);
632
633 if (hal_status != RTW_HAL_STATUS_SUCCESS)
634 PHL_ERR("[MP HAL API] %s failed status(%d)\n",__FUNCTION__, hal_status);
635
636 return hal_status;
637 }
638
639 enum rtw_hal_status
rtw_hal_rf_get_default_rfe_type(struct rtw_hal_com_t * hal_com)640 rtw_hal_rf_get_default_rfe_type(struct rtw_hal_com_t *hal_com)
641 {
642 struct hal_info_t *hal_info = hal_com->hal_priv;
643
644 hal_com->dev_hw_cap.rfe_type = halrf_get_default_rfe_type(hal_info->rf);
645 return RTW_HAL_STATUS_SUCCESS;
646 }
647
648 enum rtw_hal_status
rtw_hal_rf_get_default_xtal(struct rtw_hal_com_t * hal_com)649 rtw_hal_rf_get_default_xtal(struct rtw_hal_com_t *hal_com)
650 {
651 struct hal_info_t *hal_info = hal_com->hal_priv;
652
653 hal_com->dev_hw_cap.xcap = halrf_get_default_xtal(hal_info->rf);
654 return RTW_HAL_STATUS_SUCCESS;
655 }
656
rtw_hal_rf_set_tssi_avg(struct hal_info_t * hal_info,u8 cur_phy_idx,s32 xdbm)657 enum rtw_hal_status rtw_hal_rf_set_tssi_avg(struct hal_info_t *hal_info, u8 cur_phy_idx,
658 s32 xdbm)
659 {
660 enum rtw_hal_status hal_status = RTW_HAL_STATUS_SUCCESS;
661
662 halrf_set_tssi_avg_mp(hal_info->rf, cur_phy_idx, xdbm);
663
664 return hal_status;
665 }
666
rtw_hal_rf_do_tssi_scan(struct hal_info_t * hal_info,u8 cur_phy_idx)667 void rtw_hal_rf_do_tssi_scan(struct hal_info_t *hal_info, u8 cur_phy_idx)
668 {
669 halrf_do_tssi_scan(hal_info->rf, cur_phy_idx);
670 }
671
672 enum rtw_hal_status
rtw_hal_rf_update_ext_pwr_lmt_table(struct hal_info_t * hal_info)673 rtw_hal_rf_update_ext_pwr_lmt_table(struct hal_info_t *hal_info)
674 {
675 enum rtw_hal_status hal_status = RTW_HAL_STATUS_SUCCESS;
676
677 halrf_power_limit_set_ext_pwr_limit_table(hal_info->rf, HW_PHY_0);
678 halrf_power_limit_set_ext_pwr_limit_ru_table(hal_info->rf, HW_PHY_0);
679
680 return hal_status;
681 }
682
683 enum rtw_hal_status
rtw_hal_rf_config_radio_to_fw(struct hal_info_t * hal_info)684 rtw_hal_rf_config_radio_to_fw(struct hal_info_t *hal_info)
685 {
686 halrf_config_radio_to_fw(hal_info->rf);
687
688 return RTW_HAL_STATUS_SUCCESS;
689 }
690
691 bool
rtw_hal_rf_check_efuse_data(struct rtw_hal_com_t * hal_com,enum phl_phy_idx phy_idx)692 rtw_hal_rf_check_efuse_data(struct rtw_hal_com_t *hal_com, enum phl_phy_idx phy_idx)
693 {
694 struct hal_info_t *hal_info = hal_com->hal_priv;
695
696 return halrf_tssi_check_efuse_data(hal_info->rf, phy_idx);
697 }
698
699 void
rtw_hal_rf_disconnect_notify(void * hal,struct rtw_chan_def * chandef)700 rtw_hal_rf_disconnect_notify(void *hal, struct rtw_chan_def *chandef)
701 {
702 struct hal_info_t *hal_info = (struct hal_info_t *)hal;
703 halrf_disconnect_notify(hal_info->rf, chandef);
704 }
705
706 bool
rtw_hal_rf_check_mcc_ch(void * hal,struct rtw_chan_def * chandef)707 rtw_hal_rf_check_mcc_ch(void *hal, struct rtw_chan_def *chandef)
708 {
709 struct hal_info_t *hal_info = (struct hal_info_t *)hal;
710 return halrf_check_mcc_ch(hal_info->rf, chandef);
711 }
712
713 void
rtw_hal_rf_dpk_switch(void * hal,bool enable)714 rtw_hal_rf_dpk_switch(void *hal, bool enable)
715 {
716 struct hal_info_t *hal_info = (struct hal_info_t *)hal;
717
718 PHL_TRACE(COMP_PHL_MCC, _PHL_INFO_, "rtw_hal_rf_dpk_switch(): enable(%d)\n",
719 enable);
720 halrf_dpk_switch(hal_info->rf, enable);
721 }
722
723 void
rtw_hal_rf_tssi_config(void * hal,enum phl_phy_idx phy_idx,bool enable)724 rtw_hal_rf_tssi_config(void *hal, enum phl_phy_idx phy_idx, bool enable)
725 {
726 struct hal_info_t *hal_info = (struct hal_info_t *)hal;
727
728 PHL_TRACE(COMP_PHL_MCC, _PHL_INFO_, "rtw_hal_rf_tssi_config(): enable(%d), phy_idx(%d)\n",
729 enable, phy_idx);
730 if (enable)
731 halrf_tssi_enable(hal_info->rf, phy_idx);
732 else
733 halrf_tssi_disable(hal_info->rf, phy_idx);
734 }
735
736 enum rtw_hal_status
rtw_hal_rf_set_ch_bw(struct hal_info_t * hal_info,enum phl_phy_idx phy,u8 center_ch,enum band_type band,enum channel_width bw)737 rtw_hal_rf_set_ch_bw(struct hal_info_t *hal_info, enum phl_phy_idx phy, u8 center_ch,
738 enum band_type band, enum channel_width bw)
739 {
740 enum rtw_hal_status hal_status = RTW_HAL_STATUS_SUCCESS;
741
742 halrf_ctrl_bw_ch(hal_info->rf, phy, center_ch, band, bw);
743
744 return hal_status;
745 }
746
747 void
rtw_hal_rf_get_efuse_ex(struct rtw_hal_com_t * hal_com,enum phl_phy_idx phy_idx)748 rtw_hal_rf_get_efuse_ex(struct rtw_hal_com_t *hal_com, enum phl_phy_idx phy_idx)
749 {
750 struct hal_info_t *hal_info = hal_com->hal_priv;
751
752 halrf_tssi_get_efuse_ex(hal_info->rf, phy_idx);
753
754 }
755
756
757 /* PSD */
rtw_hal_rf_psd_init(struct hal_info_t * hal_info,u8 cur_phy_idx,u8 path,u8 iq_path,u32 avg,u32 fft)758 enum rtw_hal_status rtw_hal_rf_psd_init(struct hal_info_t *hal_info, u8 cur_phy_idx,
759 u8 path, u8 iq_path, u32 avg, u32 fft)
760 {
761 enum rtw_hal_status hal_status = RTW_HAL_STATUS_SUCCESS;
762
763 halrf_psd_init(hal_info->rf, cur_phy_idx, path, iq_path, avg, fft);
764
765 return hal_status;
766 }
767
rtw_hal_rf_psd_restore(struct hal_info_t * hal_info,u8 cur_phy_idx)768 enum rtw_hal_status rtw_hal_rf_psd_restore(struct hal_info_t *hal_info, u8 cur_phy_idx)
769 {
770 enum rtw_hal_status hal_status = RTW_HAL_STATUS_SUCCESS;
771
772 halrf_psd_restore(hal_info->rf, cur_phy_idx);
773
774 return hal_status;
775 }
776
rtw_hal_rf_psd_get_point_data(struct hal_info_t * hal_info,u8 cur_phy_idx,s32 point,u32 * value)777 enum rtw_hal_status rtw_hal_rf_psd_get_point_data(struct hal_info_t *hal_info, u8 cur_phy_idx,
778 s32 point, u32 *value)
779 {
780 enum rtw_hal_status hal_status = RTW_HAL_STATUS_SUCCESS;
781
782 *value = halrf_psd_get_point_data(hal_info->rf, cur_phy_idx, point);
783
784 return hal_status;
785 }
786
rtw_hal_rf_psd_query(struct hal_info_t * hal_info,u8 cur_phy_idx,u32 point,u32 start_point,u32 stop_point,u32 * outbuf)787 enum rtw_hal_status rtw_hal_rf_psd_query(struct hal_info_t *hal_info, u8 cur_phy_idx,
788 u32 point, u32 start_point, u32 stop_point, u32 *outbuf)
789 {
790 enum rtw_hal_status hal_status = RTW_HAL_STATUS_SUCCESS;
791
792 halrf_psd_query(hal_info->rf, cur_phy_idx, point, start_point, stop_point, outbuf);
793
794 return hal_status;
795 }
796
rtw_hal_rf_rx_ant(struct hal_info_t * hal_info,u8 ant)797 void rtw_hal_rf_rx_ant(struct hal_info_t *hal_info, /*enum halrf_ant*/u8 ant)
798 {
799 halrf_2g_rxant(hal_info->rf, ant);
800 }
801
802 enum halrf_thermal_status
rtw_hal_rf_get_ther_protected_threshold(struct hal_info_t * hal_info)803 rtw_hal_rf_get_ther_protected_threshold(
804 struct hal_info_t *hal_info
805 )
806 {
807 s8 val = 0;
808 enum halrf_thermal_status status = HALRF_THERMAL_STATUS_UNKNOWN;
809
810 val = halrf_get_ther_protected_threshold(hal_info->rf);
811
812 if(val == -1){
813 status = HALRF_THERMAL_STATUS_ABOVE_THRESHOLD;
814 PHL_TRACE(COMP_PHL_RF, _PHL_INFO_, "[HALRF] Thermal above threshold!\n");
815 }
816 else if(val == 0){
817 status = HALRF_THERMAL_STATUS_STAY_THRESHOLD;
818 PHL_TRACE(COMP_PHL_RF, _PHL_INFO_, "[HALRF] Thermal stay at threshold!\n");
819 }
820 else if(val == 1){
821 status = HALRF_THERMAL_STATUS_BELOW_THRESHOLD;
822 PHL_TRACE(COMP_PHL_RF, _PHL_INFO_, "[HALRF] Thermal below threshold!\n");
823 }
824 else{
825 status = HALRF_THERMAL_STATUS_UNKNOWN;
826 PHL_TRACE(COMP_PHL_RF, _PHL_WARNING_, "[HALRF] Thermal unknown status!\n");
827 }
828 return status;
829 }
830
rtw_hal_rf_notification(struct hal_info_t * hal_info,enum phl_msg_evt_id event,enum phl_phy_idx phy_idx)831 void rtw_hal_rf_notification(struct hal_info_t *hal_info,
832 enum phl_msg_evt_id event,
833 enum phl_phy_idx phy_idx)
834 {
835 halrf_wifi_event_notify(hal_info->rf, event, phy_idx);
836 }
837
838 void
rtw_hal_rf_tssi_scan_ch(struct rtw_hal_com_t * hal_com,enum phl_phy_idx phy_idx,enum rf_path path)839 rtw_hal_rf_tssi_scan_ch(struct rtw_hal_com_t *hal_com,
840 enum phl_phy_idx phy_idx, enum rf_path path)
841 {
842 struct hal_info_t *hal_info = hal_com->hal_priv;
843
844 halrf_tssi_scan_ch(hal_info->rf, path);
845
846 halrf_tssi_set_efuse_to_de(hal_info->rf, phy_idx);
847 }
848
rtw_hal_rf_get_power_limit(void * hal,enum phl_phy_idx phy,u16 rate,u8 bandwidth,u8 beamforming,u8 tx_num,u8 channel)849 s8 rtw_hal_rf_get_power_limit(void *hal, enum phl_phy_idx phy,
850 u16 rate, u8 bandwidth, u8 beamforming, u8 tx_num, u8 channel)
851 {
852 struct hal_info_t *hal_info = (struct hal_info_t *)hal;
853
854 return halrf_get_power_limit(hal_info->rf, phy, RF_PATH_A, rate,
855 bandwidth, beamforming, tx_num, channel);
856 }
857
rtw_hal_rf_cmd_notification(struct hal_info_t * hal_info,void * hal_cmd,enum phl_phy_idx phy_idx)858 void rtw_hal_rf_cmd_notification(struct hal_info_t *hal_info,
859 void *hal_cmd,
860 enum phl_phy_idx phy_idx)
861 {
862 /*to do*/
863 }
864
865 #else /*ifdef USE_TRUE_PHY*/
866 enum rtw_hal_status
rtw_hal_rf_init(struct rtw_phl_com_t * phl_com,struct hal_info_t * hal_info)867 rtw_hal_rf_init(struct rtw_phl_com_t *phl_com, struct hal_info_t *hal_info)
868 {
869 return RTW_HAL_STATUS_SUCCESS;
870 }
rtw_hal_rf_deinit(struct rtw_phl_com_t * phl_com,struct hal_info_t * hal_info)871 void rtw_hal_rf_deinit(struct rtw_phl_com_t *phl_com,
872 struct hal_info_t *hal_info)
873 {
874 }
875
rtw_hal_init_rf_reg(struct rtw_phl_com_t * phl_com,void * hal)876 void rtw_hal_init_rf_reg(struct rtw_phl_com_t *phl_com, void *hal)
877 {
878 }
879
rtw_hal_rf_dm_init(struct hal_info_t * hal_info)880 void rtw_hal_rf_dm_init(struct hal_info_t *hal_info)
881 {
882 }
883
884 enum rtw_hal_status
rtw_hal_rf_get_efuse_info(struct rtw_hal_com_t * hal_com,u8 * efuse_map,enum rtw_efuse_info info_type,void * value,u8 size,u8 map_valid)885 rtw_hal_rf_get_efuse_info(struct rtw_hal_com_t *hal_com, u8 *efuse_map,
886 enum rtw_efuse_info info_type, void *value,
887 u8 size, u8 map_valid)
888 {
889 return RTW_HAL_STATUS_SUCCESS;
890 }
891
892 enum rtw_hal_status
rtw_hal_rf_read_pwr_table(struct rtw_hal_com_t * hal_com,u8 rf_path,u16 rate,u8 bandwidth,u8 channel,u8 offset,u8 dcm,u8 beamforming,s16 * get_item)893 rtw_hal_rf_read_pwr_table(struct rtw_hal_com_t *hal_com, u8 rf_path, u16 rate,
894 u8 bandwidth, u8 channel, u8 offset, u8 dcm,
895 u8 beamforming, s16 *get_item)
896 {
897 return RTW_HAL_STATUS_SUCCESS;
898 }
899
900 enum rtw_hal_status
rtw_hal_rf_wl_tx_power_control(struct rtw_hal_com_t * hal_com,u32 tx_power_val)901 rtw_hal_rf_wl_tx_power_control(struct rtw_hal_com_t *hal_com,
902 u32 tx_power_val)
903 {
904 return RTW_HAL_STATUS_SUCCESS;
905 }
906
rtw_hal_rf_get_pwrtrack(struct hal_info_t * hal_info,u8 * txpwr_track_status)907 enum rtw_hal_status rtw_hal_rf_get_pwrtrack(struct hal_info_t *hal_info,
908 u8 *txpwr_track_status)
909 {
910 return RTW_HAL_STATUS_SUCCESS;
911 }
912
rtw_hal_rf_set_pwrtrack(struct hal_info_t * hal_info,u8 phy_idx,u8 txpwr_track_status)913 enum rtw_hal_status rtw_hal_rf_set_pwrtrack(struct hal_info_t *hal_info,
914 u8 phy_idx, u8 txpwr_track_status)
915 {
916 return RTW_HAL_STATUS_SUCCESS;
917 }
918
rtw_hal_rf_get_thermal(struct hal_info_t * hal_info,u8 rf_path,u8 * thermal)919 enum rtw_hal_status rtw_hal_rf_get_thermal(struct hal_info_t *hal_info,
920 u8 rf_path, u8 *thermal)
921 {
922 return RTW_HAL_STATUS_SUCCESS;
923 }
924
925 enum rtw_hal_status
rtw_hal_rf_get_default_xtal(struct rtw_hal_com_t * hal_com)926 rtw_hal_rf_get_default_xtal(struct rtw_hal_com_t *hal_com)
927 {
928 return RTW_HAL_STATUS_SUCCESS;
929 }
930
931 enum rtw_hal_status
rtw_hal_rf_get_default_rfe_type(struct rtw_hal_com_t * hal_com)932 rtw_hal_rf_get_default_rfe_type(struct rtw_hal_com_t *hal_com)
933 {
934 return RTW_HAL_STATUS_SUCCESS;
935 }
936
rtw_hal_rf_set_tssi(struct hal_info_t * hal_info,u8 phy_idx,u8 rf_path,u32 tssi_de)937 enum rtw_hal_status rtw_hal_rf_set_tssi(struct hal_info_t *hal_info,
938 u8 phy_idx, u8 rf_path, u32 tssi_de)
939 {
940 return RTW_HAL_STATUS_SUCCESS;
941 }
rtw_hal_rf_set_tssi_offset(struct hal_info_t * hal_info,u8 phy_idx,u32 tssi_de_offset,u8 rf_path)942 enum rtw_hal_status rtw_hal_rf_set_tssi_offset(struct hal_info_t *hal_info, u8 phy_idx, u32 tssi_de_offset, u8 rf_path)
943 {
944 return RTW_HAL_STATUS_SUCCESS;
945 }
rtw_hal_rf_get_tssi(struct hal_info_t * hal_info,u8 phy_idx,u8 rf_path,u32 * tssi_de)946 enum rtw_hal_status rtw_hal_rf_get_tssi(struct hal_info_t *hal_info,
947 u8 phy_idx, u8 rf_path, u32 *tssi_de)
948 {
949 return RTW_HAL_STATUS_SUCCESS;
950 }
951
rtw_hal_rf_get_online_tssi_de(struct hal_info_t * hal_info,u8 phy_idx,u8 rf_path,s32 dbm,s32 pout,s32 * tssi_de)952 enum rtw_hal_status rtw_hal_rf_get_online_tssi_de(
953 struct hal_info_t *hal_info, u8 phy_idx, u8 rf_path,
954 s32 dbm, s32 pout, s32 *tssi_de)
955 {
956 return RTW_HAL_STATUS_SUCCESS;
957 }
958
959 enum rtw_hal_status
rtw_hal_rf_set_continuous_tx(struct hal_info_t * hal_info)960 rtw_hal_rf_set_continuous_tx(struct hal_info_t *hal_info)
961 {
962 return RTW_HAL_STATUS_SUCCESS;
963 }
964
965 enum rtw_hal_status
rtw_hal_rf_set_singletone_tx(struct hal_info_t * hal_info,u8 is_on,enum rf_path path)966 rtw_hal_rf_set_singletone_tx(struct hal_info_t *hal_info,
967 u8 is_on,enum rf_path path)
968 {
969 return RTW_HAL_STATUS_SUCCESS;
970 }
971
972 enum rtw_hal_status
rtw_hal_rf_set_suppression_tx(struct hal_info_t * hal_info)973 rtw_hal_rf_set_suppression_tx(struct hal_info_t *hal_info)
974 {
975 return RTW_HAL_STATUS_SUCCESS;
976 }
977
rtw_hal_rf_ctrl_dbcc(struct rtw_hal_com_t * hal_com,bool dbcc_en)978 enum rtw_hal_status rtw_hal_rf_ctrl_dbcc(struct rtw_hal_com_t *hal_com,
979 bool dbcc_en)
980 {
981 return RTW_HAL_STATUS_SUCCESS;
982 }
983
984 enum rtw_hal_status
rtw_hal_rf_chl_rfk_trigger(void * hal,u8 phy_idx,u8 force)985 rtw_hal_rf_chl_rfk_trigger(void *hal, u8 phy_idx, u8 force)
986 {
987 return RTW_HAL_STATUS_SUCCESS;
988 }
989
rtw_hal_rf_dack_trigger(struct hal_info_t * hal_info,u8 force)990 enum rtw_hal_status rtw_hal_rf_dack_trigger(struct hal_info_t *hal_info,
991 u8 force)
992 {
993 return RTW_HAL_STATUS_SUCCESS;
994 }
995
rtw_hal_rf_iqk_trigger(struct hal_info_t * hal_info,u8 phy_idx,u8 force)996 enum rtw_hal_status rtw_hal_rf_iqk_trigger(struct hal_info_t *hal_info,
997 u8 phy_idx, u8 force)
998 {
999 return RTW_HAL_STATUS_SUCCESS;
1000 }
1001
rtw_hal_rf_lck_trigger(struct hal_info_t * hal_info)1002 enum rtw_hal_status rtw_hal_rf_lck_trigger(struct hal_info_t *hal_info)
1003 {
1004 return RTW_HAL_STATUS_SUCCESS;
1005 }
1006
rtw_hal_rf_dpk_trigger(struct hal_info_t * hal_info,u8 phy_idx,u8 force)1007 enum rtw_hal_status rtw_hal_rf_dpk_trigger(struct hal_info_t *hal_info,
1008 u8 phy_idx, u8 force)
1009 {
1010 return RTW_HAL_STATUS_SUCCESS;
1011 }
1012
rtw_hal_rf_tssi_trigger(struct hal_info_t * hal_info,u8 phy_idx)1013 enum rtw_hal_status rtw_hal_rf_tssi_trigger(struct hal_info_t *hal_info,
1014 u8 phy_idx)
1015 {
1016 return RTW_HAL_STATUS_SUCCESS;
1017 }
1018
rtw_hal_rf_gapk_trigger(struct hal_info_t * hal_info,u8 phy_idx,u8 force)1019 enum rtw_hal_status rtw_hal_rf_gapk_trigger(struct hal_info_t *hal_info,
1020 u8 phy_idx, u8 force)
1021 {
1022 return RTW_HAL_STATUS_SUCCESS;
1023 }
1024
1025
rtw_hal_rf_set_capability_dack(struct hal_info_t * hal_info,u8 enable)1026 enum rtw_hal_status rtw_hal_rf_set_capability_dack(struct hal_info_t *hal_info,
1027 u8 enable)
1028 {
1029 return RTW_HAL_STATUS_SUCCESS;
1030 }
1031
rtw_hal_rf_set_capability_iqk(struct hal_info_t * hal_info,u8 enable)1032 enum rtw_hal_status rtw_hal_rf_set_capability_iqk(struct hal_info_t *hal_info,
1033 u8 enable)
1034 {
1035 return RTW_HAL_STATUS_SUCCESS;
1036 }
1037
rtw_hal_rf_set_capability_dpk(struct hal_info_t * hal_info,u8 enable)1038 enum rtw_hal_status rtw_hal_rf_set_capability_dpk(struct hal_info_t *hal_info,
1039 u8 enable)
1040 {
1041 return RTW_HAL_STATUS_SUCCESS;
1042 }
1043
1044 enum rtw_hal_status
rtw_hal_rf_set_capability_dpk_track(struct hal_info_t * hal_info,u8 enable)1045 rtw_hal_rf_set_capability_dpk_track(struct hal_info_t *hal_info, u8 enable)
1046 {
1047 return RTW_HAL_STATUS_SUCCESS;
1048 }
1049
1050
1051 enum rtw_hal_status
rtw_hal_rf_set_capability_tssi(struct hal_info_t * hal_info,u8 enable)1052 rtw_hal_rf_set_capability_tssi(struct hal_info_t *hal_info, u8 enable)
1053 {
1054 return RTW_HAL_STATUS_SUCCESS;
1055 }
1056
rtw_hal_rf_set_capability_gapk(struct hal_info_t * hal_info,u8 enable)1057 enum rtw_hal_status rtw_hal_rf_set_capability_gapk(struct hal_info_t *hal_info,
1058 u8 enable)
1059 {
1060 return RTW_HAL_STATUS_SUCCESS;
1061 }
1062
1063
rtw_hal_rf_get_capability_dack(struct hal_info_t * hal_info,u8 * enable)1064 enum rtw_hal_status rtw_hal_rf_get_capability_dack(struct hal_info_t *hal_info,
1065 u8 *enable)
1066 {
1067 return RTW_HAL_STATUS_SUCCESS;
1068 }
1069
rtw_hal_rf_get_capability_iqk(struct hal_info_t * hal_info,u8 * enable)1070 enum rtw_hal_status rtw_hal_rf_get_capability_iqk(struct hal_info_t *hal_info,
1071 u8 *enable)
1072 {
1073 return RTW_HAL_STATUS_SUCCESS;
1074 }
1075
rtw_hal_rf_get_capability_dpk(struct hal_info_t * hal_info,u8 * enable)1076 enum rtw_hal_status rtw_hal_rf_get_capability_dpk(struct hal_info_t *hal_info,
1077 u8 *enable)
1078 {
1079 return RTW_HAL_STATUS_SUCCESS;
1080 }
1081
1082 enum rtw_hal_status
rtw_hal_rf_get_capability_dpk_track(struct hal_info_t * hal_info,u8 * enable)1083 rtw_hal_rf_get_capability_dpk_track(struct hal_info_t *hal_info, u8 *enable)
1084 {
1085 return RTW_HAL_STATUS_SUCCESS;
1086 }
1087
rtw_hal_rf_get_capability_tssi(struct hal_info_t * hal_info,u8 * enable)1088 enum rtw_hal_status rtw_hal_rf_get_capability_tssi(struct hal_info_t *hal_info,
1089 u8 *enable)
1090 {
1091 return RTW_HAL_STATUS_SUCCESS;
1092 }
1093
rtw_hal_rf_get_capability_gapk(struct hal_info_t * hal_info,u8 * enable)1094 enum rtw_hal_status rtw_hal_rf_get_capability_gapk(struct hal_info_t *hal_info,
1095 u8 *enable)
1096 {
1097 return RTW_HAL_STATUS_SUCCESS;
1098 }
1099
1100
rtw_hal_rf_get_tssi_de_value(struct hal_info_t * hal_info)1101 enum rtw_hal_status rtw_hal_rf_get_tssi_de_value(struct hal_info_t *hal_info)
1102 {
1103 return RTW_HAL_STATUS_SUCCESS;
1104 }
1105
rtw_hal_rf_set_tssi_de_tx_verify(struct hal_info_t * hal_info)1106 enum rtw_hal_status rtw_hal_rf_set_tssi_de_tx_verify(struct hal_info_t *hal_info)
1107 {
1108 return RTW_HAL_STATUS_SUCCESS;
1109 }
1110
rtw_hal_rf_get_txpwr_final_abs(struct hal_info_t * hal_info)1111 enum rtw_hal_status rtw_hal_rf_get_txpwr_final_abs(struct hal_info_t *hal_info)
1112 {
1113 return RTW_HAL_STATUS_SUCCESS;
1114 }
1115
rtw_hal_rf_proc_cmd(struct hal_info_t * hal_info,struct rtw_proc_cmd * incmd,char * output,u32 out_len)1116 bool rtw_hal_rf_proc_cmd(struct hal_info_t *hal_info,
1117 struct rtw_proc_cmd *incmd,
1118 char *output, u32 out_len)
1119 {
1120 return true;
1121 }
1122
rtw_hal_rf_watchdog(struct hal_info_t * hal_info)1123 enum rtw_hal_status rtw_hal_rf_watchdog(struct hal_info_t *hal_info)
1124 {
1125 return RTW_HAL_STATUS_SUCCESS;
1126 }
1127 enum rtw_hal_status
rtw_hal_rf_set_power(struct hal_info_t * hal_info,enum phl_phy_idx phy,enum phl_pwr_table pwr_table)1128 rtw_hal_rf_set_power(struct hal_info_t *hal_info, enum phl_phy_idx phy,
1129 enum phl_pwr_table pwr_table)
1130 {
1131 return RTW_HAL_STATUS_SUCCESS;
1132 }
1133
rtw_hal_rf_set_gain_offset(struct hal_info_t * hal_info,u8 cur_phy_idx,s8 offset,u8 rf_path)1134 enum rtw_hal_status rtw_hal_rf_set_gain_offset(struct hal_info_t *hal_info, u8 cur_phy_idx,
1135 s8 offset, u8 rf_path)
1136 {
1137 return RTW_HAL_STATUS_SUCCESS;
1138 }
1139
rtw_hal_rf_trigger_dpk_tracking(struct hal_info_t * hal_info)1140 enum rtw_hal_status rtw_hal_rf_trigger_dpk_tracking(struct hal_info_t *hal_info)
1141 {
1142 return RTW_HAL_STATUS_SUCCESS;
1143 }
1144
rtw_hal_rf_do_tssi_scan(struct hal_info_t * hal_info,u8 cur_phy_idx)1145 void rtw_hal_rf_do_tssi_scan(struct hal_info_t *hal_info, u8 cur_phy_idx)
1146 {
1147
1148 }
1149
1150 enum rtw_hal_status
rtw_hal_rf_config_radio_to_fw(struct hal_info_t * hal_info)1151 rtw_hal_rf_config_radio_to_fw(struct hal_info_t *hal_info)
1152 {
1153 return RTW_HAL_STATUS_SUCCESS;
1154 }
1155
1156
rtw_hal_rf_set_tssi_avg(struct hal_info_t * hal_info,u8 cur_phy_idx,s32 xdbm)1157 enum rtw_hal_status rtw_hal_rf_set_tssi_avg(struct hal_info_t *hal_info, u8 cur_phy_idx,
1158 s32 xdbm)
1159 {
1160 return RTW_HAL_STATUS_SUCCESS;
1161 }
1162
1163 bool
rtw_hal_rf_check_efuse_data(struct rtw_hal_com_t * hal_com,enum phl_phy_idx phy_idx)1164 rtw_hal_rf_check_efuse_data(struct rtw_hal_com_t *hal_com, enum phl_phy_idx phy_idx)
1165 {
1166 return true;
1167 }
1168
1169 enum rtw_hal_status
rtw_hal_rf_set_ch_bw(struct hal_info_t * hal_info,enum phl_phy_idx phy,u8 center_ch,enum band_type band,enum channel_width bw)1170 rtw_hal_rf_set_ch_bw(struct hal_info_t *hal_info, enum phl_phy_idx phy, u8 center_ch,
1171 enum band_type band, enum channel_width bw)
1172
1173 {
1174 return RTW_HAL_STATUS_SUCCESS;
1175 }
1176
1177 /* PSD */
rtw_hal_rf_psd_init(struct hal_info_t * hal_info,u8 cur_phy_idx,u8 path,u8 iq_path,u32 avg,u32 fft)1178 enum rtw_hal_status rtw_hal_rf_psd_init(struct hal_info_t *hal_info, u8 cur_phy_idx,
1179 u8 path, u8 iq_path, u32 avg, u32 fft)
1180 {
1181 return RTW_HAL_STATUS_SUCCESS;
1182 }
1183
rtw_hal_rf_psd_restore(struct hal_info_t * hal_info,u8 cur_phy_idx)1184 enum rtw_hal_status rtw_hal_rf_psd_restore(struct hal_info_t *hal_info, u8 cur_phy_idx)
1185 {
1186 return RTW_HAL_STATUS_SUCCESS;
1187 }
1188
rtw_hal_rf_psd_get_point_data(struct hal_info_t * hal_info,u8 cur_phy_idx,s32 point,u32 * value)1189 enum rtw_hal_status rtw_hal_rf_psd_get_point_data(struct hal_info_t *hal_info, u8 cur_phy_idx,
1190 s32 point, u32 *value)
1191 {
1192 return RTW_HAL_STATUS_SUCCESS;
1193 }
1194
rtw_hal_rf_psd_query(struct hal_info_t * hal_info,u8 cur_phy_idx,u32 point,u32 start_point,u32 stop_point,u32 * outbuf)1195 enum rtw_hal_status rtw_hal_rf_psd_query(struct hal_info_t *hal_info, u8 cur_phy_idx,
1196 u32 point, u32 start_point, u32 stop_point, u32 *outbuf)
1197 {
1198 return RTW_HAL_STATUS_SUCCESS;
1199 }
1200
1201 void
rtw_hal_rf_disconnect_notify(void * hal,struct rtw_chan_def * chandef)1202 rtw_hal_rf_disconnect_notify(void *hal, struct rtw_chan_def *chandef)
1203 {
1204 }
1205
1206 bool
rtw_hal_rf_check_mcc_ch(void * hal,struct rtw_chan_def * chandef)1207 rtw_hal_rf_check_mcc_ch(void *hal, struct rtw_chan_def *chandef)
1208 {
1209 return false;
1210 }
1211
1212 void
rtw_hal_rf_dpk_switch(void * hal,bool enable)1213 rtw_hal_rf_dpk_switch(void *hal, bool enable)
1214 {
1215
1216 }
1217
1218 void
rtw_hal_rf_tssi_config(void * hal,enum phl_phy_idx phy_idx,bool enable)1219 rtw_hal_rf_tssi_config(void *hal, enum phl_phy_idx phy_idx, bool enable)
1220 {
1221
1222 }
1223
1224 void
rtw_hal_rf_get_efuse_ex(struct rtw_hal_com_t * hal_com,enum phl_phy_idx phy_idx)1225 rtw_hal_rf_get_efuse_ex(struct rtw_hal_com_t *hal_com, enum phl_phy_idx phy_idx)
1226 {
1227 }
1228
1229 void
rtw_hal_rf_set_power_table_switch(struct rtw_hal_com_t * hal_com,enum phl_phy_idx phy_idx,u8 pwrbyrate_type,u8 pwrlmt_type)1230 rtw_hal_rf_set_power_table_switch(struct rtw_hal_com_t *hal_com,
1231 enum phl_phy_idx phy_idx,
1232 u8 pwrbyrate_type, u8 pwrlmt_type)
1233 {
1234 return;
1235 }
1236
rtw_hal_rf_get_predefined_pw_lmt_regu_type_from_str(const char * str)1237 int rtw_hal_rf_get_predefined_pw_lmt_regu_type_from_str(const char *str)
1238 {
1239 return -1;
1240 }
1241
rtw_hal_rf_get_predefined_pw_lmt_regu_type_str_array(u8 * num)1242 const char * const *rtw_hal_rf_get_predefined_pw_lmt_regu_type_str_array(u8 *num)
1243 {
1244 return NULL;
1245 }
1246
rtw_hal_rf_get_pw_lmt_regu_type_str(struct hal_info_t * hal_info,enum band_type band)1247 const char *rtw_hal_rf_get_pw_lmt_regu_type_str(struct hal_info_t *hal_info, enum band_type band)
1248 {
1249 return NULL;
1250 }
1251
rtw_hal_rf_rx_ant(struct hal_info_t * hal_info,u8 ant)1252 void rtw_hal_rf_rx_ant(struct hal_info_t *hal_info, /*enum halrf_ant*/u8 ant)
1253 {
1254
1255 }
1256
1257 enum halrf_thermal_status
rtw_hal_rf_get_ther_protected_threshold(struct hal_info_t * hal_info)1258 rtw_hal_rf_get_ther_protected_threshold(
1259 struct hal_info_t *hal_info
1260 )
1261 {
1262 return HALRF_THERMAL_STATUS_BELOW_THRESHOLD;
1263 }
1264
rtw_hal_rf_notification(struct hal_info_t * hal_info,enum phl_msg_evt_id event,enum phl_phy_idx phy_idx)1265 void rtw_hal_rf_notification(struct hal_info_t *hal_info,
1266 enum phl_msg_evt_id event,
1267 enum phl_phy_idx phy_idx)
1268 {
1269 return;
1270 }
1271
1272 void
rtw_hal_rf_tssi_scan_ch(struct rtw_hal_com_t * hal_com,enum phl_phy_idx phy_idx,enum rf_path path)1273 rtw_hal_rf_tssi_scan_ch(struct rtw_hal_com_t *hal_com,
1274 enum phl_phy_idx phy_idx, enum rf_path path)
1275
1276 {
1277 return;
1278 }
1279
rtw_hal_rf_get_power_limit(void * hal,enum phl_phy_idx phy,u16 rate,u8 bandwidth,u8 beamforming,u8 tx_num,u8 channel)1280 s8 rtw_hal_rf_get_power_limit(void *hal, enum phl_phy_idx phy,
1281 u16 rate, u8 bandwidth, u8 beamforming, u8 tx_num, u8 channel)
1282 {
1283 return 0;
1284 }
1285
rtw_hal_rf_cmd_notification(struct hal_info_t * hal_info,void * hal_cmd,enum phl_phy_idx phy_idx)1286 void rtw_hal_rf_cmd_notification(struct hal_info_t *hal_info,
1287 void *hal_cmd,
1288 enum phl_phy_idx phy_idx)
1289 {
1290
1291 }
1292 #endif /*ifdef USE_TRUE_PHY*/
1293