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 ******************************************************************************/
15 #ifndef __HAL_INTF_H__
16 #define __HAL_INTF_H__
18 #include <osdep_service.h>
19 #include <drv_types.h>
21 enum RTL871X_HCI_TYPE {
30 RTL8712_8188S_8191S_8192S,
38 enum hal_def_variable {
39 HAL_DEF_UNDERCORATEDSMOOTHEDPWDB,
40 HAL_DEF_IS_SUPPORT_ANT_DIV,
41 HAL_DEF_CURRENT_ANTENNA,
43 HAL_DEF_MAX_RECVBUF_SZ,
44 HAL_DEF_RX_PACKET_OFFSET,
45 HAL_DEF_DBG_DUMP_RXPKT,/* for dbg */
46 HAL_DEF_DBG_DM_FUNC,/* for dbg */
47 HAL_DEF_RA_DECISION_RATE,
49 HAL_DEF_PT_PWR_STATUS,
50 HW_VAR_MAX_RX_AMPDU_FACTOR,
52 HAL_DEF_DBG_DUMP_TXPKT,
57 enum hal_odm_variable {
60 HAL_ODM_WIFI_DISPLAY_STATE,
64 u32 (*hal_power_on)(struct rtw_adapter *padapter);
66 void (*InitSwLeds)(struct rtw_adapter *padapter);
67 void (*DeInitSwLeds)(struct rtw_adapter *padapter);
69 void (*enable_interrupt)(struct rtw_adapter *padapter);
70 void (*disable_interrupt)(struct rtw_adapter *padapter);
71 s32 (*interrupt_handler)(struct rtw_adapter *padapter);
73 u8 (*GetHalDefVarHandler)(struct rtw_adapter *padapter,
74 enum hal_def_variable eVariable,
76 u8 (*SetHalDefVarHandler)(struct rtw_adapter *padapter,
77 enum hal_def_variable eVariable,
80 void (*UpdateRAMaskHandler)(struct rtw_adapter *padapter,
81 u32 mac_id, u8 rssi_level);
83 s32 (*hal_xmit)(struct rtw_adapter *padapter,
84 struct xmit_frame *pxmitframe);
85 s32 (*mgnt_xmit)(struct rtw_adapter *padapter,
86 struct xmit_frame *pmgntframe);
87 s32 (*hal_xmitframe_enqueue)(struct rtw_adapter *padapter,
88 struct xmit_frame *pxmitframe);
99 #define RF_CHANGE_BY_INIT 0
100 #define RF_CHANGE_BY_IPS BIT(28)
101 #define RF_CHANGE_BY_PS BIT(29)
102 #define RF_CHANGE_BY_HW BIT(30)
103 #define RF_CHANGE_BY_SW BIT(31)
106 HARDWARE_TYPE_RTL8180,
107 HARDWARE_TYPE_RTL8185,
108 HARDWARE_TYPE_RTL8187,
109 HARDWARE_TYPE_RTL8188,
110 HARDWARE_TYPE_RTL8190P,
111 HARDWARE_TYPE_RTL8192E,
112 HARDWARE_TYPE_RTL819xU,
113 HARDWARE_TYPE_RTL8192SE,
114 HARDWARE_TYPE_RTL8192SU,
115 HARDWARE_TYPE_RTL8192CE,
116 HARDWARE_TYPE_RTL8192CU,
117 HARDWARE_TYPE_RTL8192DE,
118 HARDWARE_TYPE_RTL8192DU,
119 HARDWARE_TYPE_RTL8723AE,
120 HARDWARE_TYPE_RTL8723AU,
121 HARDWARE_TYPE_RTL8723AS,
122 HARDWARE_TYPE_RTL8188EE,
123 HARDWARE_TYPE_RTL8188EU,
124 HARDWARE_TYPE_RTL8188ES,
128 #define GET_EEPROM_EFUSE_PRIV(adapter) (&adapter->eeprompriv)
130 void rtw_hal_def_value_init23a(struct rtw_adapter *padapter);
131 int pm_netdev_open23a(struct net_device *pnetdev, u8 bnormal);
132 int rtw_resume_process23a(struct rtw_adapter *padapter);
134 void rtw_hal_sw_led_init23a(struct rtw_adapter *padapter);
135 void rtw_hal_sw_led_deinit23a(struct rtw_adapter *padapter);
137 u32 rtw_hal_power_on23a(struct rtw_adapter *padapter);
138 int rtw_hal_init23a(struct rtw_adapter *padapter);
139 int rtw_hal_deinit23a(struct rtw_adapter *padapter);
140 void rtw_hal_stop(struct rtw_adapter *padapter);
142 u8 rtw_hal_set_def_var23a(struct rtw_adapter *padapter,
143 enum hal_def_variable eVariable,
145 u8 rtw_hal_get_def_var23a(struct rtw_adapter *padapter,
146 enum hal_def_variable eVariable,
149 void rtw_hal_enable_interrupt23a(struct rtw_adapter *padapter);
150 void rtw_hal_disable_interrupt23a(struct rtw_adapter *padapter);
152 s32 rtw_hal_xmit23aframe_enqueue(struct rtw_adapter *padapter,
153 struct xmit_frame *pxmitframe);
154 s32 rtw_hal_xmit23a(struct rtw_adapter *padapter,
155 struct xmit_frame *pxmitframe);
156 s32 rtw_hal_mgnt_xmit23a(struct rtw_adapter *padapter,
157 struct xmit_frame *pmgntframe);
159 void rtw_hal_update_ra_mask23a(struct sta_info *psta, u8 rssi_level);
160 void rtw_hal_clone_data(struct rtw_adapter *dst_padapter, struct rtw_adapter *src_padapter);
162 s32 rtw_hal_interrupt_handler23a(struct rtw_adapter *padapter);
164 void hw_var_set_correct_tsf(struct rtw_adapter *padapter);
165 void hw_var_set_mlme_disconnect(struct rtw_adapter *padapter);
166 void hw_var_set_opmode(struct rtw_adapter *padapter, u8 mode);
167 void hw_var_set_macaddr(struct rtw_adapter *padapter, u8 *val);
168 void hw_var_set_bssid(struct rtw_adapter *padapter, u8 *val);
169 void hw_var_set_mlme_join(struct rtw_adapter *padapter, u8 type);
171 #endif /* __HAL_INTF_H__ */