1 /******************************************************************************
3 * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
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.
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
14 * You should have received a copy of the GNU General Public License along with
15 * this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
19 ******************************************************************************/
20 #ifndef __HAL_INTF_H__
21 #define __HAL_INTF_H__
24 enum RTL871X_HCI_TYPE {
46 typedef enum _HW_VARIABLES{
58 HW_VAR_MLME_DISCONNECT,
59 HW_VAR_MLME_SITESURVEY,
63 HW_VAR_BEACON_INTERVAL,
74 HW_VAR_CAM_EMPTY_ENTRY,
75 HW_VAR_CAM_INVALID_ALL,
83 HW_VAR_AMPDU_MIN_SPACE,
85 HW_VAR_RXDMA_AGG_PG_TH,
88 HW_VAR_H2C_FW_PWRMODE,
89 HW_VAR_H2C_PS_TUNE_PARAM,
90 HW_VAR_H2C_FW_JOINBSSRPT,
92 HW_VAR_H2C_FW_P2P_PS_OFFLOAD,
94 HW_VAR_TDLS_INIT_CH_SEN,
96 HW_VAR_TDLS_DONE_CH_SEN,
98 HW_VAR_TRIGGER_GPIO_0,
99 HW_VAR_BT_SET_COEXIST,
100 HW_VAR_BT_ISSUE_DELBA,
101 HW_VAR_CURRENT_ANTENNA,
102 HW_VAR_ANTENNA_DIVERSITY_LINK,
103 HW_VAR_ANTENNA_DIVERSITY_SELECT,
104 HW_VAR_SWITCH_EPHY_WoWLAN,
107 HW_VAR_EFUSE_BT_USAGE,
108 HW_VAR_EFUSE_BT_BYTES,
109 HW_VAR_FIFO_CLEARN_UP,
111 HW_VAR_PCIE_STOP_TX_DMA,
112 HW_VAR_APFM_ON_MAC, //Auto FSM to Turn On, include clock, isolation, power control for MAC only
113 // The valid upper nav range for the HW updating, if the true value is larger than the upper range, the HW won't update it.
114 // Unit in microsecond. 0 means disable this function.
117 HW_VAR_WAKEUP_REASON,
120 #ifdef CONFIG_AP_WOWLAN
126 HW_VAR_RPT_TIMER_SETTING,
127 HW_VAR_TX_RPT_MAX_MACID,
128 HW_VAR_H2C_MEDIA_STATUS_RPT,
129 HW_VAR_CHK_HI_QUEUE_EMPTY,
131 HW_VAR_AMPDU_MAX_TIME,
132 HW_VAR_WIRELESS_MODE,
137 HW_VAR_SET_REQ_FW_PS,
139 HW_VAR_SOUNDING_ENTER,
140 HW_VAR_SOUNDING_LEAVE,
141 HW_VAR_SOUNDING_RATE,
142 HW_VAR_SOUNDING_STATUS,
143 HW_VAR_SOUNDING_FW_NDPA,
150 typedef enum _HAL_DEF_VARIABLE{
151 HAL_DEF_UNDERCORATEDSMOOTHEDPWDB,
152 HAL_DEF_IS_SUPPORT_ANT_DIV,
153 HAL_DEF_CURRENT_ANTENNA,
155 HAL_DEF_MAX_RECVBUF_SZ,
156 HAL_DEF_RX_PACKET_OFFSET,
157 HAL_DEF_DBG_DUMP_RXPKT,//for dbg
158 HAL_DEF_DBG_DM_FUNC,//for dbg
159 HAL_DEF_RA_DECISION_RATE,
161 HAL_DEF_PT_PWR_STATUS,
162 HAL_DEF_TX_LDPC, // LDPC support
163 HAL_DEF_RX_LDPC, // LDPC support
164 HAL_DEF_TX_STBC, // TX STBC support
165 HAL_DEF_RX_STBC, // RX STBC support
166 HAL_DEF_EXPLICIT_BEAMFORMER,// Explicit Compressed Steering Capable
167 HAL_DEF_EXPLICIT_BEAMFORMEE,// Explicit Compressed Beamforming Feedback Capable
168 HW_VAR_MAX_RX_AMPDU_FACTOR,
170 HAL_DEF_DBG_DUMP_TXPKT,
173 HW_DEF_ODM_DBG_LEVEL,
174 HAL_DEF_TX_PAGE_BOUNDARY,
175 HAL_DEF_TX_PAGE_BOUNDARY_WOWLAN,
176 HAL_DEF_ANT_DETECT,//to do for 8723a
177 HAL_DEF_PCI_SUUPORT_L1_BACKDOOR, // Determine if the L1 Backdoor setting is turned on.
178 HAL_DEF_PCI_AMD_L1_SUPPORT,
179 HAL_DEF_PCI_ASPM_OSC, // Support for ASPM OSC, added by Roger, 2013.03.27.
180 HAL_DEF_MACID_SLEEP, // Support for MACID sleep
183 typedef enum _HAL_ODM_VARIABLE{
186 HAL_ODM_WIFI_DISPLAY_STATE,
189 typedef enum _HAL_INTF_PS_FUNC{
190 HAL_USB_SELECT_SUSPEND,
194 typedef s32 (*c2h_id_filter)(u8 *c2h_evt);
197 u32 (*hal_power_on)(_adapter *padapter);
198 void (*hal_power_off)(_adapter *padapter);
199 u32 (*hal_init)(_adapter *padapter);
200 u32 (*hal_deinit)(_adapter *padapter);
202 void (*free_hal_data)(_adapter *padapter);
204 u32 (*inirp_init)(_adapter *padapter);
205 u32 (*inirp_deinit)(_adapter *padapter);
206 void (*irp_reset)(_adapter *padapter);
208 s32 (*init_xmit_priv)(_adapter *padapter);
209 void (*free_xmit_priv)(_adapter *padapter);
211 s32 (*init_recv_priv)(_adapter *padapter);
212 void (*free_recv_priv)(_adapter *padapter);
214 void (*InitSwLeds)(_adapter *padapter);
215 void (*DeInitSwLeds)(_adapter *padapter);
217 void (*dm_init)(_adapter *padapter);
218 void (*dm_deinit)(_adapter *padapter);
219 void (*read_chip_version)(_adapter *padapter);
221 void (*init_default_value)(_adapter *padapter);
223 void (*intf_chip_configure)(_adapter *padapter);
225 void (*read_adapter_info)(_adapter *padapter);
227 void (*enable_interrupt)(_adapter *padapter);
228 void (*disable_interrupt)(_adapter *padapter);
229 u8 (*check_ips_status)(_adapter *padapter);
230 s32 (*interrupt_handler)(_adapter *padapter);
231 void (*clear_interrupt)(_adapter *padapter);
232 void (*set_bwmode_handler)(_adapter *padapter, CHANNEL_WIDTH Bandwidth, u8 Offset);
233 void (*set_channel_handler)(_adapter *padapter, u8 channel);
234 void (*set_chnl_bw_handler)(_adapter *padapter, u8 channel, CHANNEL_WIDTH Bandwidth, u8 Offset40, u8 Offset80);
236 void (*set_tx_power_level_handler)(_adapter *padapter, u8 channel);
237 void (*get_tx_power_level_handler)(_adapter *padapter, s32 *powerlevel);
239 void (*hal_dm_watchdog)(_adapter *padapter);
240 void (*hal_dm_watchdog_in_lps)(_adapter *padapter);
243 void (*SetHwRegHandler)(_adapter *padapter, u8 variable,u8* val);
244 void (*GetHwRegHandler)(_adapter *padapter, u8 variable,u8* val);
246 #ifdef CONFIG_C2H_PACKET_EN
247 void (*SetHwRegHandlerWithBuf)(_adapter *padapter, u8 variable, u8* pbuf, int len);
250 u8 (*GetHalDefVarHandler)(_adapter *padapter, HAL_DEF_VARIABLE eVariable, PVOID pValue);
251 u8 (*SetHalDefVarHandler)(_adapter *padapter, HAL_DEF_VARIABLE eVariable, PVOID pValue);
253 void (*GetHalODMVarHandler)(_adapter *padapter, HAL_ODM_VARIABLE eVariable, PVOID pValue1,BOOLEAN bSet);
254 void (*SetHalODMVarHandler)(_adapter *padapter, HAL_ODM_VARIABLE eVariable, PVOID pValue1,BOOLEAN bSet);
256 void (*UpdateRAMaskHandler)(_adapter *padapter, u32 mac_id, u8 rssi_level);
257 void (*SetBeaconRelatedRegistersHandler)(_adapter *padapter);
259 void (*Add_RateATid)(_adapter *padapter, u32 bitmap, u8* arg, u8 rssi_level);
261 void (*run_thread)(_adapter *padapter);
262 void (*cancel_thread)(_adapter *padapter);
264 #ifdef CONFIG_ANTENNA_DIVERSITY
265 u8 (*AntDivBeforeLinkHandler)(_adapter *padapter);
266 void (*AntDivCompareHandler)(_adapter *padapter, WLAN_BSSID_EX *dst, WLAN_BSSID_EX *src);
268 u8 (*interface_ps_func)(_adapter *padapter,HAL_INTF_PS_FUNC efunc_id, u8* val);
270 s32 (*hal_xmit)(_adapter *padapter, struct xmit_frame *pxmitframe);
272 * mgnt_xmit should be implemented to run in interrupt context
274 s32 (*mgnt_xmit)(_adapter *padapter, struct xmit_frame *pmgntframe);
275 s32 (*hal_xmitframe_enqueue)(_adapter *padapter, struct xmit_frame *pxmitframe);
277 u32 (*read_bbreg)(_adapter *padapter, u32 RegAddr, u32 BitMask);
278 void (*write_bbreg)(_adapter *padapter, u32 RegAddr, u32 BitMask, u32 Data);
279 u32 (*read_rfreg)(_adapter *padapter, u8 eRFPath, u32 RegAddr, u32 BitMask);
280 void (*write_rfreg)(_adapter *padapter, u8 eRFPath, u32 RegAddr, u32 BitMask, u32 Data);
282 #ifdef CONFIG_HOSTAPD_MLME
283 s32 (*hostap_mgnt_xmit_entry)(_adapter *padapter, _pkt *pkt);
286 void (*EfusePowerSwitch)(_adapter *padapter, u8 bWrite, u8 PwrState);
287 void (*BTEfusePowerSwitch)(_adapter *padapter, u8 bWrite, u8 PwrState);
288 void (*ReadEFuse)(_adapter *padapter, u8 efuseType, u16 _offset, u16 _size_byte, u8 *pbuf, BOOLEAN bPseudoTest);
289 void (*EFUSEGetEfuseDefinition)(_adapter *padapter, u8 efuseType, u8 type, void *pOut, BOOLEAN bPseudoTest);
290 u16 (*EfuseGetCurrentSize)(_adapter *padapter, u8 efuseType, BOOLEAN bPseudoTest);
291 int (*Efuse_PgPacketRead)(_adapter *padapter, u8 offset, u8 *data, BOOLEAN bPseudoTest);
292 int (*Efuse_PgPacketWrite)(_adapter *padapter, u8 offset, u8 word_en, u8 *data, BOOLEAN bPseudoTest);
293 u8 (*Efuse_WordEnableDataWrite)(_adapter *padapter, u16 efuse_addr, u8 word_en, u8 *data, BOOLEAN bPseudoTest);
294 BOOLEAN (*Efuse_PgPacketWrite_BT)(_adapter *padapter, u8 offset, u8 word_en, u8 *data, BOOLEAN bPseudoTest);
296 #ifdef DBG_CONFIG_ERROR_DETECT
297 void (*sreset_init_value)(_adapter *padapter);
298 void (*sreset_reset_value)(_adapter *padapter);
299 void (*silentreset)(_adapter *padapter);
300 void (*sreset_xmit_status_check)(_adapter *padapter);
301 void (*sreset_linked_status_check) (_adapter *padapter);
302 u8 (*sreset_get_wifi_status)(_adapter *padapter);
303 bool (*sreset_inprogress)(_adapter *padapter);
307 int (*IOL_exec_cmds_sync)(_adapter *padapter, struct xmit_frame *xmit_frame, u32 max_wating_ms, u32 bndy_cnt);
310 #ifdef CONFIG_XMIT_THREAD_MODE
311 s32 (*xmit_thread_handler)(_adapter *padapter);
313 void (*hal_notch_filter)(_adapter * adapter, bool enable);
314 void (*hal_reset_security_engine)(_adapter * adapter);
315 s32 (*c2h_handler)(_adapter *padapter, u8 *c2h_evt);
316 c2h_id_filter c2h_id_filter_ccx;
318 #ifdef CONFIG_BT_COEXIST
319 s32 (*fill_h2c_cmd)(PADAPTER, u8 ElementID, u32 CmdLen, u8 *pCmdBuffer);
320 #endif // CONFIG_BT_COEXIST
323 typedef enum _RT_EEPROM_TYPE{
327 }RT_EEPROM_TYPE,*PRT_EEPROM_TYPE;
331 #define RF_CHANGE_BY_INIT 0
332 #define RF_CHANGE_BY_IPS BIT28
333 #define RF_CHANGE_BY_PS BIT29
334 #define RF_CHANGE_BY_HW BIT30
335 #define RF_CHANGE_BY_SW BIT31
337 typedef enum _HARDWARE_TYPE{
338 HARDWARE_TYPE_RTL8180,
339 HARDWARE_TYPE_RTL8185,
340 HARDWARE_TYPE_RTL8187,
341 HARDWARE_TYPE_RTL8188,
342 HARDWARE_TYPE_RTL8190P,
343 HARDWARE_TYPE_RTL8192E,
344 HARDWARE_TYPE_RTL819xU,
345 HARDWARE_TYPE_RTL8192SE,
346 HARDWARE_TYPE_RTL8192SU,
347 HARDWARE_TYPE_RTL8192CE,
348 HARDWARE_TYPE_RTL8192CU,
349 HARDWARE_TYPE_RTL8192DE,
350 HARDWARE_TYPE_RTL8192DU,
351 HARDWARE_TYPE_RTL8723AE,
352 HARDWARE_TYPE_RTL8723AU,
353 HARDWARE_TYPE_RTL8723AS,
354 HARDWARE_TYPE_RTL8188EE,
355 HARDWARE_TYPE_RTL8188EU,
356 HARDWARE_TYPE_RTL8188ES,
358 HARDWARE_TYPE_RTL8192EE,
359 HARDWARE_TYPE_RTL8192EU,
360 HARDWARE_TYPE_RTL8192ES,
361 HARDWARE_TYPE_RTL8812E,
362 HARDWARE_TYPE_RTL8812AU,
363 HARDWARE_TYPE_RTL8811AU,
364 HARDWARE_TYPE_RTL8821E,
365 HARDWARE_TYPE_RTL8821U,
366 HARDWARE_TYPE_RTL8821S,
367 HARDWARE_TYPE_RTL8723BE,
368 HARDWARE_TYPE_RTL8723BU,
369 HARDWARE_TYPE_RTL8723BS,
370 HARDWARE_TYPE_RTL8813AE,
371 HARDWARE_TYPE_RTL8813AU,
372 HARDWARE_TYPE_RTL8813AS,
377 #define IS_NEW_GENERATION_IC(_Adapter) (((PADAPTER)_Adapter)->HardwareType >=HARDWARE_TYPE_RTL8192EE)
381 #define IS_HARDWARE_TYPE_8192CE(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8192CE)
382 #define IS_HARDWARE_TYPE_8192CU(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8192CU)
383 #define IS_HARDWARE_TYPE_8192C(_Adapter) \
384 (IS_HARDWARE_TYPE_8192CE(_Adapter) || IS_HARDWARE_TYPE_8192CU(_Adapter))
389 #define IS_HARDWARE_TYPE_8192DE(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8192DE)
390 #define IS_HARDWARE_TYPE_8192DU(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8192DU)
391 #define IS_HARDWARE_TYPE_8192D(_Adapter) \
392 (IS_HARDWARE_TYPE_8192DE(_Adapter) || IS_HARDWARE_TYPE_8192DU(_Adapter))
397 #define IS_HARDWARE_TYPE_8723AE(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8723AE)
398 #define IS_HARDWARE_TYPE_8723AU(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8723AU)
399 #define IS_HARDWARE_TYPE_8723AS(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8723AS)
400 #define IS_HARDWARE_TYPE_8723A(_Adapter) \
401 (IS_HARDWARE_TYPE_8723AE(_Adapter) || IS_HARDWARE_TYPE_8723AU(_Adapter) || IS_HARDWARE_TYPE_8723AS(_Adapter))
406 #define IS_HARDWARE_TYPE_8188EE(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8188EE)
407 #define IS_HARDWARE_TYPE_8188EU(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8188EU)
408 #define IS_HARDWARE_TYPE_8188ES(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8188ES)
409 #define IS_HARDWARE_TYPE_8188E(_Adapter) \
410 (IS_HARDWARE_TYPE_8188EE(_Adapter) || IS_HARDWARE_TYPE_8188EU(_Adapter) || IS_HARDWARE_TYPE_8188ES(_Adapter))
412 #define IS_HARDWARE_TYPE_OLDER_THAN_8812A(_Adapter) \
413 (IS_HARDWARE_TYPE_8192D(_Adapter) || IS_HARDWARE_TYPE_8192C(_Adapter) ||\
414 IS_HARDWARE_TYPE_8723AE(_Adapter) || IS_HARDWARE_TYPE_8723AU(_Adapter) || IS_HARDWARE_TYPE_8723AS(_Adapter) ||\
415 IS_HARDWARE_TYPE_8188EE(_Adapter) || IS_HARDWARE_TYPE_8188EU(_Adapter) || IS_HARDWARE_TYPE_8188ES(_Adapter)\
419 #define IS_HARDWARE_TYPE_8812E(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8812E)
420 #define IS_HARDWARE_TYPE_8812AU(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8812AU)
421 #define IS_HARDWARE_TYPE_8812(_Adapter) \
422 (IS_HARDWARE_TYPE_8812E(_Adapter) || IS_HARDWARE_TYPE_8812AU(_Adapter))
425 #define IS_HARDWARE_TYPE_8821E(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8821E)
426 #define IS_HARDWARE_TYPE_8811AU(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8811AU)
427 #define IS_HARDWARE_TYPE_8821U(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8821U ||\
428 ((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8811AU)
429 #define IS_HARDWARE_TYPE_8821S(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8821S)
430 #define IS_HARDWARE_TYPE_8821(_Adapter) \
431 (IS_HARDWARE_TYPE_8821E(_Adapter) || IS_HARDWARE_TYPE_8821U(_Adapter)|| IS_HARDWARE_TYPE_8821S(_Adapter))
433 #define IS_HARDWARE_TYPE_JAGUAR(_Adapter) \
434 (IS_HARDWARE_TYPE_8812(_Adapter) || IS_HARDWARE_TYPE_8821(_Adapter))
437 #define IS_HARDWARE_TYPE_8192EE(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8192EE)
438 #define IS_HARDWARE_TYPE_8192EU(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8192EU)
439 #define IS_HARDWARE_TYPE_8192ES(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8192ES)
441 #define IS_HARDWARE_TYPE_8192E(_Adapter) \
442 (IS_HARDWARE_TYPE_8192EE(_Adapter) || IS_HARDWARE_TYPE_8192EU(_Adapter) ||IS_HARDWARE_TYPE_8192ES(_Adapter))
444 #define IS_HARDWARE_TYPE_8723BE(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8723BE)
445 #define IS_HARDWARE_TYPE_8723BU(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8723BU)
446 #define IS_HARDWARE_TYPE_8723BS(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8723BS)
449 #define IS_HARDWARE_TYPE_8723B(_Adapter) \
450 (IS_HARDWARE_TYPE_8723BE(_Adapter) || IS_HARDWARE_TYPE_8723BU(_Adapter) ||IS_HARDWARE_TYPE_8723BS(_Adapter))
453 #define IS_HARDWARE_TYPE_8813AE(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8813AE)
454 #define IS_HARDWARE_TYPE_8813AU(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8813AU)
455 #define IS_HARDWARE_TYPE_8813AS(_Adapter) (((PADAPTER)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8813AS)
457 #define IS_HARDWARE_TYPE_8813A(_Adapter) \
458 (IS_HARDWARE_TYPE_8813AE(_Adapter) || IS_HARDWARE_TYPE_8813AU(_Adapter) ||IS_HARDWARE_TYPE_8813AS(_Adapter))
461 typedef struct eeprom_priv EEPROM_EFUSE_PRIV, *PEEPROM_EFUSE_PRIV;
462 #define GET_EEPROM_EFUSE_PRIV(adapter) (&adapter->eeprompriv)
463 #define is_boot_from_eeprom(adapter) (adapter->eeprompriv.EepromOrEfuse)
465 typedef enum _wowlan_subcode{
466 WOWLAN_PATTERN_MATCH = 1,
467 WOWLAN_MAGIC_PACKET = 2,
469 WOWLAN_SET_PATTERN = 4,
474 WOWLAN_DEBUG_RELOAD_FW = 9,
477 WOWLAN_AP_ENABLE =12,
478 WOWLAN_AP_DISABLE =13
481 struct wowlan_ioctl_param{
482 unsigned int subcode;
483 unsigned int subcode_value;
484 unsigned int wakeup_reason;
486 unsigned char pattern[0];
489 #define Rx_Pairwisekey 0x01
491 #define Rx_DisAssoc 0x04
492 #define Rx_DeAuth 0x08
493 #define Rx_ARPReq 0x09
494 #define FWDecisionDisconnect 0x10
495 #define Rx_MagicPkt 0x21
496 #define Rx_UnicastPkt 0x22
497 #define Rx_PatternPkt 0x23
498 #define RX_PNOWakeUp 0x55
499 #define AP_WakeUp 0x66
501 void rtw_hal_def_value_init(_adapter *padapter);
503 void rtw_hal_free_data(_adapter *padapter);
505 void rtw_hal_dm_init(_adapter *padapter);
506 void rtw_hal_dm_deinit(_adapter *padapter);
507 void rtw_hal_sw_led_init(_adapter *padapter);
508 void rtw_hal_sw_led_deinit(_adapter *padapter);
510 u32 rtw_hal_power_on(_adapter *padapter);
511 void rtw_hal_power_off(_adapter *padapter);
512 uint rtw_hal_init(_adapter *padapter);
513 uint rtw_hal_deinit(_adapter *padapter);
514 void rtw_hal_stop(_adapter *padapter);
515 void rtw_hal_set_hwreg(PADAPTER padapter, u8 variable, u8 *val);
516 void rtw_hal_get_hwreg(PADAPTER padapter, u8 variable, u8 *val);
518 #ifdef CONFIG_C2H_PACKET_EN
519 void rtw_hal_set_hwreg_with_buf(_adapter *padapter, u8 variable, u8 *pbuf, int len);
522 void rtw_hal_chip_configure(_adapter *padapter);
523 void rtw_hal_read_chip_info(_adapter *padapter);
524 void rtw_hal_read_chip_version(_adapter *padapter);
526 u8 rtw_hal_set_def_var(_adapter *padapter, HAL_DEF_VARIABLE eVariable, PVOID pValue);
527 u8 rtw_hal_get_def_var(_adapter *padapter, HAL_DEF_VARIABLE eVariable, PVOID pValue);
529 void rtw_hal_set_odm_var(_adapter *padapter, HAL_ODM_VARIABLE eVariable, PVOID pValue1,BOOLEAN bSet);
530 void rtw_hal_get_odm_var(_adapter *padapter, HAL_ODM_VARIABLE eVariable, PVOID pValue1,BOOLEAN bSet);
532 void rtw_hal_enable_interrupt(_adapter *padapter);
533 void rtw_hal_disable_interrupt(_adapter *padapter);
535 u8 rtw_hal_check_ips_status(_adapter *padapter);
537 u32 rtw_hal_inirp_init(_adapter *padapter);
538 u32 rtw_hal_inirp_deinit(_adapter *padapter);
540 void rtw_hal_irp_reset(_adapter *padapter);
542 u8 rtw_hal_intf_ps_func(_adapter *padapter,HAL_INTF_PS_FUNC efunc_id, u8* val);
544 s32 rtw_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe);
545 s32 rtw_hal_xmit(_adapter *padapter, struct xmit_frame *pxmitframe);
546 s32 rtw_hal_mgnt_xmit(_adapter *padapter, struct xmit_frame *pmgntframe);
548 s32 rtw_hal_init_xmit_priv(_adapter *padapter);
549 void rtw_hal_free_xmit_priv(_adapter *padapter);
551 s32 rtw_hal_init_recv_priv(_adapter *padapter);
552 void rtw_hal_free_recv_priv(_adapter *padapter);
554 void rtw_hal_update_ra_mask(struct sta_info *psta, u8 rssi_level);
555 void rtw_hal_add_ra_tid(_adapter *padapter, u32 bitmap, u8* arg, u8 rssi_level);
557 void rtw_hal_start_thread(_adapter *padapter);
558 void rtw_hal_stop_thread(_adapter *padapter);
560 void rtw_hal_bcn_related_reg_setting(_adapter *padapter);
562 u32 rtw_hal_read_bbreg(_adapter *padapter, u32 RegAddr, u32 BitMask);
563 void rtw_hal_write_bbreg(_adapter *padapter, u32 RegAddr, u32 BitMask, u32 Data);
564 u32 rtw_hal_read_rfreg(_adapter *padapter, u32 eRFPath, u32 RegAddr, u32 BitMask);
565 void rtw_hal_write_rfreg(_adapter *padapter, u32 eRFPath, u32 RegAddr, u32 BitMask, u32 Data);
567 #define PHY_QueryBBReg(Adapter, RegAddr, BitMask) rtw_hal_read_bbreg((Adapter), (RegAddr), (BitMask))
568 #define PHY_SetBBReg(Adapter, RegAddr, BitMask, Data) rtw_hal_write_bbreg((Adapter), (RegAddr), (BitMask), (Data))
569 #define PHY_QueryRFReg(Adapter, eRFPath, RegAddr, BitMask) rtw_hal_read_rfreg((Adapter), (eRFPath), (RegAddr), (BitMask))
570 #define PHY_SetRFReg(Adapter, eRFPath, RegAddr, BitMask, Data) rtw_hal_write_rfreg((Adapter), (eRFPath), (RegAddr), (BitMask), (Data))
572 #define PHY_SetMacReg PHY_SetBBReg
573 #define PHY_QueryMacReg PHY_QueryBBReg
575 s32 rtw_hal_interrupt_handler(_adapter *padapter);
577 void rtw_hal_set_bwmode(_adapter *padapter, CHANNEL_WIDTH Bandwidth, u8 Offset);
578 void rtw_hal_set_chan(_adapter *padapter, u8 channel);
579 void rtw_hal_set_chnl_bw(_adapter *padapter, u8 channel, CHANNEL_WIDTH Bandwidth, u8 Offset40, u8 Offset80);
580 void rtw_hal_dm_watchdog(_adapter *padapter);
581 void rtw_hal_dm_watchdog_in_lps(_adapter *padapter);
583 void rtw_hal_set_tx_power_level(_adapter *padapter, u8 channel);
584 void rtw_hal_get_tx_power_level(_adapter *padapter, s32 *powerlevel);
586 #ifdef CONFIG_ANTENNA_DIVERSITY
587 u8 rtw_hal_antdiv_before_linked(_adapter *padapter);
588 void rtw_hal_antdiv_rssi_compared(_adapter *padapter, WLAN_BSSID_EX *dst, WLAN_BSSID_EX *src);
591 #ifdef CONFIG_HOSTAPD_MLME
592 s32 rtw_hal_hostap_mgnt_xmit_entry(_adapter *padapter, _pkt *pkt);
595 #ifdef DBG_CONFIG_ERROR_DETECT
596 void rtw_hal_sreset_init(_adapter *padapter);
597 void rtw_hal_sreset_reset(_adapter *padapter);
598 void rtw_hal_sreset_reset_value(_adapter *padapter);
599 void rtw_hal_sreset_xmit_status_check(_adapter *padapter);
600 void rtw_hal_sreset_linked_status_check (_adapter *padapter);
601 u8 rtw_hal_sreset_get_wifi_status(_adapter *padapter);
602 bool rtw_hal_sreset_inprogress(_adapter *padapter);
606 int rtw_hal_iol_cmd(ADAPTER *adapter, struct xmit_frame *xmit_frame, u32 max_wating_ms, u32 bndy_cnt);
609 #ifdef CONFIG_XMIT_THREAD_MODE
610 s32 rtw_hal_xmit_thread_handler(_adapter *padapter);
613 void rtw_hal_notch_filter(_adapter * adapter, bool enable);
614 void rtw_hal_reset_security_engine(_adapter * adapter);
616 bool rtw_hal_c2h_valid(_adapter *adapter, u8 *buf);
617 s32 rtw_hal_c2h_evt_read(_adapter *adapter, u8 *buf);
618 s32 rtw_hal_c2h_handler(_adapter *adapter, u8 *c2h_evt);
619 c2h_id_filter rtw_hal_c2h_id_filter_ccx(_adapter *adapter);
621 s32 rtw_hal_is_disable_sw_channel_plan(PADAPTER padapter);
623 s32 rtw_hal_macid_sleep(PADAPTER padapter, u32 macid);
624 s32 rtw_hal_macid_wakeup(PADAPTER padapter, u32 macid);
626 #ifdef CONFIG_BT_COEXIST
627 s32 rtw_hal_fill_h2c_cmd(PADAPTER, u8 ElementID, u32 CmdLen, u8 *pCmdBuffer);
628 #endif // CONFIG_BT_COEXIST
630 #endif //__HAL_INTF_H__