rtl8188eu: Fix chackpatch errors in include/*.h - part 2

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
This commit is contained in:
Larry Finger 2013-08-14 22:03:17 -05:00
parent 2db42a3fbf
commit 7120e63109
38 changed files with 2302 additions and 2664 deletions

View file

@ -148,7 +148,7 @@
#define rCCK0_RxHP 0xa14 #define rCCK0_RxHP 0xa14
/* Timing recovery & Channel estimation threshold */ /* Timing recovery & Channel estimation threshold */
#define rCCK0_DSPParameter1 0xa18i #define rCCK0_DSPParameter1 0xa18
#define rCCK0_DSPParameter2 0xa1c /* SQ threshold */ #define rCCK0_DSPParameter2 0xa1c /* SQ threshold */
#define rCCK0_TxFilter1 0xa20 #define rCCK0_TxFilter1 0xa20
@ -192,7 +192,7 @@
#define rOFDM0_XDRxAFE 0xc28 #define rOFDM0_XDRxAFE 0xc28
#define rOFDM0_XDRxIQImbalance 0xc2c #define rOFDM0_XDRxIQImbalance 0xc2c
#define rOFDM0_RxDetector1 0xc30 /* PD,BW & SBD DM tune init gain */ #define rOFDM0_RxDetector1 0xc30 /*PD,BW & SBD DM tune init gain*/
#define rOFDM0_RxDetector2 0xc34 /* SBD & Fame Sync. */ #define rOFDM0_RxDetector2 0xc34 /* SBD & Fame Sync. */
#define rOFDM0_RxDetector3 0xc38 /* Frame Sync. */ #define rOFDM0_RxDetector3 0xc38 /* Frame Sync. */
#define rOFDM0_RxDetector4 0xc3c /* PD, SBD, Frame Sync & Short-GI */ #define rOFDM0_RxDetector4 0xc3c /* PD, SBD, Frame Sync & Short-GI */

View file

@ -25,26 +25,26 @@ Major Change History:
/* TX report 2 format in Rx desc */ /* TX report 2 format in Rx desc */
/* */ /* */
#define GET_TX_RPT2_DESC_PKT_LEN_88E(__pRxStatusDesc) \ #define GET_TX_RPT2_DESC_PKT_LEN_88E(__pRxStatusDesc) \
LE_BITS_TO_4BYTE( __pRxStatusDesc, 0, 9) LE_BITS_TO_4BYTE(__pRxStatusDesc, 0, 9)
#define GET_TX_RPT2_DESC_MACID_VALID_1_88E(__pRxStatusDesc) \ #define GET_TX_RPT2_DESC_MACID_VALID_1_88E(__pRxStatusDesc) \
LE_BITS_TO_4BYTE( __pRxStatusDesc+16, 0, 32) LE_BITS_TO_4BYTE(__pRxStatusDesc+16, 0, 32)
#define GET_TX_RPT2_DESC_MACID_VALID_2_88E(__pRxStatusDesc) \ #define GET_TX_RPT2_DESC_MACID_VALID_2_88E(__pRxStatusDesc) \
LE_BITS_TO_4BYTE( __pRxStatusDesc+20, 0, 32) LE_BITS_TO_4BYTE(__pRxStatusDesc+20, 0, 32)
#define GET_TX_REPORT_TYPE1_RERTY_0(__pAddr) \ #define GET_TX_REPORT_TYPE1_RERTY_0(__pAddr) \
LE_BITS_TO_4BYTE( __pAddr, 0, 16) LE_BITS_TO_4BYTE(__pAddr, 0, 16)
#define GET_TX_REPORT_TYPE1_RERTY_1(__pAddr) \ #define GET_TX_REPORT_TYPE1_RERTY_1(__pAddr) \
LE_BITS_TO_1BYTE( __pAddr+2, 0, 8) LE_BITS_TO_1BYTE(__pAddr+2, 0, 8)
#define GET_TX_REPORT_TYPE1_RERTY_2(__pAddr) \ #define GET_TX_REPORT_TYPE1_RERTY_2(__pAddr) \
LE_BITS_TO_1BYTE( __pAddr+3, 0, 8) LE_BITS_TO_1BYTE(__pAddr+3, 0, 8)
#define GET_TX_REPORT_TYPE1_RERTY_3(__pAddr) \ #define GET_TX_REPORT_TYPE1_RERTY_3(__pAddr) \
LE_BITS_TO_1BYTE( __pAddr+4, 0, 8) LE_BITS_TO_1BYTE(__pAddr+4, 0, 8)
#define GET_TX_REPORT_TYPE1_RERTY_4(__pAddr) \ #define GET_TX_REPORT_TYPE1_RERTY_4(__pAddr) \
LE_BITS_TO_1BYTE( __pAddr+4+1, 0, 8) LE_BITS_TO_1BYTE(__pAddr+4+1, 0, 8)
#define GET_TX_REPORT_TYPE1_DROP_0(__pAddr) \ #define GET_TX_REPORT_TYPE1_DROP_0(__pAddr) \
LE_BITS_TO_1BYTE( __pAddr+4+2, 0, 8) LE_BITS_TO_1BYTE(__pAddr+4+2, 0, 8)
#define GET_TX_REPORT_TYPE1_DROP_1(__pAddr) \ #define GET_TX_REPORT_TYPE1_DROP_1(__pAddr) \
LE_BITS_TO_1BYTE( __pAddr+4+3, 0, 8) LE_BITS_TO_1BYTE(__pAddr+4+3, 0, 8)
/* End rate adaptive define */ /* End rate adaptive define */

View file

@ -138,20 +138,20 @@ struct HAL_VERSION {
((IS_81XXC(version) && IS_2T2R(version)) ? true : false) ((IS_81XXC(version) && IS_2T2R(version)) ? true : false)
#define IS_81xxC_VENDOR_UMC_A_CUT(version) \ #define IS_81xxC_VENDOR_UMC_A_CUT(version) \
(IS_81XXC(version) ? (IS_CHIP_VENDOR_UMC(version) ? \ (IS_81XXC(version) ? (IS_CHIP_VENDOR_UMC(version) ? \
(IS_A_CUT(version) ? true : false) : false): false) (IS_A_CUT(version) ? true : false) : false) : false)
#define IS_81xxC_VENDOR_UMC_B_CUT(version) \ #define IS_81xxC_VENDOR_UMC_B_CUT(version) \
(IS_81XXC(version) ? (IS_CHIP_VENDOR_UMC(version) ? \ (IS_81XXC(version) ? (IS_CHIP_VENDOR_UMC(version) ? \
(IS_B_CUT(version) ? true : false) : false): false) (IS_B_CUT(version) ? true : false) : false) : false)
#define IS_81xxC_VENDOR_UMC_C_CUT(version) \ #define IS_81xxC_VENDOR_UMC_C_CUT(version) \
(IS_81XXC(version) ? (IS_CHIP_VENDOR_UMC(version) ? \ (IS_81XXC(version) ? (IS_CHIP_VENDOR_UMC(version) ? \
(IS_C_CUT(version) ? true : false) : false): false) (IS_C_CUT(version) ? true : false) : false) : false)
#define IS_NORMAL_CHIP92D(version) \ #define IS_NORMAL_CHIP92D(version) \
(( IS_92D(version)) ? \ ((IS_92D(version)) ? \
((GET_CVID_CHIP_TYPE(version) == NORMAL_CHIP)? true : false) : false) ((GET_CVID_CHIP_TYPE(version) == NORMAL_CHIP) ? true : false) : false)
#define IS_92D_SINGLEPHY(version) \ #define IS_92D_SINGLEPHY(version) \
((IS_92D(version)) ? (IS_2T2R(version) ? true: false) : false) ((IS_92D(version)) ? (IS_2T2R(version) ? true : false) : false)
#define IS_92D_C_CUT(version) \ #define IS_92D_C_CUT(version) \
((IS_92D(version)) ? (IS_C_CUT(version) ? true : false) : false) ((IS_92D(version)) ? (IS_C_CUT(version) ? true : false) : false)
#define IS_92D_D_CUT(version) \ #define IS_92D_D_CUT(version) \
@ -160,8 +160,8 @@ struct HAL_VERSION {
((IS_92D(version)) ? (IS_E_CUT(version) ? true : false) : false) ((IS_92D(version)) ? (IS_E_CUT(version) ? true : false) : false)
#define IS_8723A_A_CUT(version) \ #define IS_8723A_A_CUT(version) \
((IS_8723_SERIES(version)) ? ( IS_A_CUT(version)?true : false) : false) ((IS_8723_SERIES(version)) ? (IS_A_CUT(version) ? true : false) : false)
#define IS_8723A_B_CUT(version) \ #define IS_8723A_B_CUT(version) \
((IS_8723_SERIES(version)) ? ( IS_B_CUT(version)?true : false) : false) ((IS_8723_SERIES(version)) ? (IS_B_CUT(version) ? true : false) : false)
#endif #endif

View file

@ -157,31 +157,25 @@ value to host byte ordering.*/
* Set subfield of little-endian 4-byte value to specified value. * Set subfield of little-endian 4-byte value to specified value.
*/ */
#define SET_BITS_TO_LE_4BYTE(__pstart, __bitoffset, __bitlen, __val) \ #define SET_BITS_TO_LE_4BYTE(__pstart, __bitoffset, __bitlen, __val) \
do { \
*((u32 *)(__pstart)) = \ *((u32 *)(__pstart)) = \
( \ ( \
LE_BITS_CLEARED_TO_4BYTE(__pstart, __bitoffset, __bitlen) | \ LE_BITS_CLEARED_TO_4BYTE(__pstart, __bitoffset, __bitlen) | \
((((u32)__val) & BIT_LEN_MASK_32(__bitlen)) << (__bitoffset)) \ ((((u32)__val) & BIT_LEN_MASK_32(__bitlen)) << (__bitoffset)) \
); \ )
} while (0)
#define SET_BITS_TO_LE_2BYTE(__pstart, __bitoffset, __bitlen, __val) \ #define SET_BITS_TO_LE_2BYTE(__pstart, __bitoffset, __bitlen, __val) \
do { \
*((u16 *)(__pstart)) = \ *((u16 *)(__pstart)) = \
( \ ( \
LE_BITS_CLEARED_TO_2BYTE(__pstart, __bitoffset, __bitlen) | \ LE_BITS_CLEARED_TO_2BYTE(__pstart, __bitoffset, __bitlen) | \
((((u16)__val) & BIT_LEN_MASK_16(__bitlen)) << (__bitoffset)) \ ((((u16)__val) & BIT_LEN_MASK_16(__bitlen)) << (__bitoffset)) \
); \ );
} while (0)
#define SET_BITS_TO_LE_1BYTE(__pstart, __bitoffset, __bitlen, __val) \ #define SET_BITS_TO_LE_1BYTE(__pstart, __bitoffset, __bitlen, __val) \
do { \
*((u8 *)(__pstart)) = EF1BYTE \ *((u8 *)(__pstart)) = EF1BYTE \
( \ ( \
LE_BITS_CLEARED_TO_1BYTE(__pstart, __bitoffset, __bitlen) | \ LE_BITS_CLEARED_TO_1BYTE(__pstart, __bitoffset, __bitlen) | \
((((u8)__val) & BIT_LEN_MASK_8(__bitlen)) << (__bitoffset)) \ ((((u8)__val) & BIT_LEN_MASK_8(__bitlen)) << (__bitoffset)) \
); \ )
} while (0)
/* Get the N-bytes aligment offset from the current length */ /* Get the N-bytes aligment offset from the current length */
#define N_BYTE_ALIGMENT(__value, __aligment) ((__aligment == 1) ? \ #define N_BYTE_ALIGMENT(__value, __aligment) ((__aligment == 1) ? \

View file

@ -20,8 +20,5 @@
#ifndef __CIRC_BUF_H_ #ifndef __CIRC_BUF_H_
#define __CIRC_BUF_H_ 1 #define __CIRC_BUF_H_ 1
//#define CIRC_CNT(head, tail, size) (((head) - (tail)) & ((size)-1))
//#define CIRC_SPACE(head, tail, size) CIRC_CNT((tail), ((head)+1), (size))
#endif /* _CIRC_BUF_H_ */ #endif /* _CIRC_BUF_H_ */

View file

@ -269,8 +269,8 @@ struct hal_ops {
struct xmit_frame *frame, u32 max_wait, struct xmit_frame *frame, u32 max_wait,
u32 bndy_cnt); u32 bndy_cnt);
void (*hal_notch_filter)(struct adapter * adapter, bool enable); void (*hal_notch_filter)(struct adapter *adapter, bool enable);
void (*hal_reset_security_engine)(struct adapter * adapter); void (*hal_reset_security_engine)(struct adapter *adapter);
s32 (*c2h_handler)(struct adapter *padapter, s32 (*c2h_handler)(struct adapter *padapter,
struct c2h_evt_hdr *c2h_evt); struct c2h_evt_hdr *c2h_evt);
c2h_id_filter c2h_id_filter_ccx; c2h_id_filter c2h_id_filter_ccx;
@ -313,38 +313,38 @@ enum hardware_type {
/* RTL8192C Series */ /* RTL8192C Series */
#define IS_HARDWARE_TYPE_8192CE(_Adapter) \ #define IS_HARDWARE_TYPE_8192CE(_Adapter) \
(((struct adapter *)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8192CE) (((struct adapter *)_Adapter)->HardwareType == HARDWARE_TYPE_RTL8192CE)
#define IS_HARDWARE_TYPE_8192CU(_Adapter) \ #define IS_HARDWARE_TYPE_8192CU(_Adapter) \
(((struct adapter *)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8192CU) (((struct adapter *)_Adapter)->HardwareType == HARDWARE_TYPE_RTL8192CU)
#define IS_HARDWARE_TYPE_8192C(_Adapter) \ #define IS_HARDWARE_TYPE_8192C(_Adapter) \
(IS_HARDWARE_TYPE_8192CE(_Adapter) || IS_HARDWARE_TYPE_8192CU(_Adapter)) (IS_HARDWARE_TYPE_8192CE(_Adapter) || IS_HARDWARE_TYPE_8192CU(_Adapter))
/* RTL8192D Series */ /* RTL8192D Series */
#define IS_HARDWARE_TYPE_8192DE(_Adapter) \ #define IS_HARDWARE_TYPE_8192DE(_Adapter) \
(((struct adapter *)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8192DE) (((struct adapter *)_Adapter)->HardwareType == HARDWARE_TYPE_RTL8192DE)
#define IS_HARDWARE_TYPE_8192DU(_Adapter) \ #define IS_HARDWARE_TYPE_8192DU(_Adapter) \
(((struct adapter *)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8192DU) (((struct adapter *)_Adapter)->HardwareType == HARDWARE_TYPE_RTL8192DU)
#define IS_HARDWARE_TYPE_8192D(_Adapter) \ #define IS_HARDWARE_TYPE_8192D(_Adapter) \
(IS_HARDWARE_TYPE_8192DE(_Adapter) || IS_HARDWARE_TYPE_8192DU(_Adapter)) (IS_HARDWARE_TYPE_8192DE(_Adapter) || IS_HARDWARE_TYPE_8192DU(_Adapter))
/* RTL8723A Series */ /* RTL8723A Series */
#define IS_HARDWARE_TYPE_8723AE(_Adapter) \ #define IS_HARDWARE_TYPE_8723AE(_Adapter) \
(((struct adapter *)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8723AE) (((struct adapter *)_Adapter)->HardwareType == HARDWARE_TYPE_RTL8723AE)
#define IS_HARDWARE_TYPE_8723AU(_Adapter) \ #define IS_HARDWARE_TYPE_8723AU(_Adapter) \
(((struct adapter *)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8723AU) (((struct adapter *)_Adapter)->HardwareType == HARDWARE_TYPE_RTL8723AU)
#define IS_HARDWARE_TYPE_8723AS(_Adapter) \ #define IS_HARDWARE_TYPE_8723AS(_Adapter) \
(((struct adapter *)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8723AS) (((struct adapter *)_Adapter)->HardwareType == HARDWARE_TYPE_RTL8723AS)
#define IS_HARDWARE_TYPE_8723A(_Adapter) \ #define IS_HARDWARE_TYPE_8723A(_Adapter) \
(IS_HARDWARE_TYPE_8723AE(_Adapter) || IS_HARDWARE_TYPE_8723AU(_Adapter) || \ (IS_HARDWARE_TYPE_8723AE(_Adapter) || IS_HARDWARE_TYPE_8723AU(_Adapter) || \
IS_HARDWARE_TYPE_8723AS(_Adapter)) IS_HARDWARE_TYPE_8723AS(_Adapter))
/* RTL8188E Series */ /* RTL8188E Series */
#define IS_HARDWARE_TYPE_8188EE(_Adapter) \ #define IS_HARDWARE_TYPE_8188EE(_Adapter) \
(((struct adapter *)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8188EE) (((struct adapter *)_Adapter)->HardwareType == HARDWARE_TYPE_RTL8188EE)
#define IS_HARDWARE_TYPE_8188EU(_Adapter) \ #define IS_HARDWARE_TYPE_8188EU(_Adapter) \
(((struct adapter *)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8188EU) (((struct adapter *)_Adapter)->HardwareType == HARDWARE_TYPE_RTL8188EU)
#define IS_HARDWARE_TYPE_8188ES(_Adapter) \ #define IS_HARDWARE_TYPE_8188ES(_Adapter) \
(((struct adapter *)_Adapter)->HardwareType==HARDWARE_TYPE_RTL8188ES) (((struct adapter *)_Adapter)->HardwareType == HARDWARE_TYPE_RTL8188ES)
#define IS_HARDWARE_TYPE_8188E(_Adapter) \ #define IS_HARDWARE_TYPE_8188E(_Adapter) \
(IS_HARDWARE_TYPE_8188EE(_Adapter) || IS_HARDWARE_TYPE_8188EU(_Adapter) || \ (IS_HARDWARE_TYPE_8188EE(_Adapter) || IS_HARDWARE_TYPE_8188EU(_Adapter) || \
IS_HARDWARE_TYPE_8188ES(_Adapter)) IS_HARDWARE_TYPE_8188ES(_Adapter))
@ -368,7 +368,7 @@ enum wowlan_subcode {
WOWLAN_DEBUG_2 = 11 WOWLAN_DEBUG_2 = 11
}; };
struct wowlan_ioctl_param{ struct wowlan_ioctl_param {
unsigned int subcode; unsigned int subcode;
unsigned int subcode_value; unsigned int subcode_value;
unsigned int wakeup_reason; unsigned int wakeup_reason;
@ -399,8 +399,8 @@ u32 rtw_hal_power_on(struct adapter *padapter);
uint rtw_hal_init(struct adapter *padapter); uint rtw_hal_init(struct adapter *padapter);
uint rtw_hal_deinit(struct adapter *padapter); uint rtw_hal_deinit(struct adapter *padapter);
void rtw_hal_stop(struct adapter *padapter); void rtw_hal_stop(struct adapter *padapter);
void rtw_hal_set_hwreg(struct adapter * padapter, u8 variable, u8 *val); void rtw_hal_set_hwreg(struct adapter *padapter, u8 variable, u8 *val);
void rtw_hal_get_hwreg(struct adapter * padapter, u8 variable, u8 *val); void rtw_hal_get_hwreg(struct adapter *padapter, u8 variable, u8 *val);
void rtw_hal_chip_configure(struct adapter *padapter); void rtw_hal_chip_configure(struct adapter *padapter);
void rtw_hal_read_chip_info(struct adapter *padapter); void rtw_hal_read_chip_info(struct adapter *padapter);
@ -471,14 +471,14 @@ void rtw_hal_sreset_init(struct adapter *padapter);
void rtw_hal_sreset_reset(struct adapter *padapter); void rtw_hal_sreset_reset(struct adapter *padapter);
void rtw_hal_sreset_reset_value(struct adapter *padapter); void rtw_hal_sreset_reset_value(struct adapter *padapter);
void rtw_hal_sreset_xmit_status_check(struct adapter *padapter); void rtw_hal_sreset_xmit_status_check(struct adapter *padapter);
void rtw_hal_sreset_linked_status_check (struct adapter *padapter); void rtw_hal_sreset_linked_status_check(struct adapter *padapter);
u8 rtw_hal_sreset_get_wifi_status(struct adapter *padapter); u8 rtw_hal_sreset_get_wifi_status(struct adapter *padapter);
int rtw_hal_iol_cmd(struct adapter *adapter, struct xmit_frame *xmit_frame, int rtw_hal_iol_cmd(struct adapter *adapter, struct xmit_frame *xmit_frame,
u32 max_wating_ms, u32 bndy_cnt); u32 max_wating_ms, u32 bndy_cnt);
void rtw_hal_notch_filter(struct adapter * adapter, bool enable); void rtw_hal_notch_filter(struct adapter *adapter, bool enable);
void rtw_hal_reset_security_engine(struct adapter * adapter); void rtw_hal_reset_security_engine(struct adapter *adapter);
s32 rtw_hal_c2h_handler(struct adapter *adapter, s32 rtw_hal_c2h_handler(struct adapter *adapter,
struct c2h_evt_hdr *c2h_evt); struct c2h_evt_hdr *c2h_evt);

View file

@ -162,21 +162,27 @@ enum ratr_table_mode {
enum NETWORK_TYPE { enum NETWORK_TYPE {
WIRELESS_INVALID = 0, WIRELESS_INVALID = 0,
/* Sub-Element */ /* Sub-Element */
WIRELESS_11B = BIT(0), /* tx: cck only, rx: cck only, hw: cck */ WIRELESS_11B = BIT(0), /* tx:cck only, rx:cck only, hw: cck */
WIRELESS_11G = BIT(1), /* tx: ofdm only, rx: ofdm & cck, hw: cck & ofdm */ WIRELESS_11G = BIT(1), /* tx:ofdm only, rx:ofdm & cck, hw:cck & ofdm*/
WIRELESS_11A = BIT(2), /* tx: ofdm only, rx: ofdm only, hw: ofdm only */ WIRELESS_11A = BIT(2), /* tx:ofdm only, rx: ofdm only, hw:ofdm only */
WIRELESS_11_24N = BIT(3), /* tx: MCS only, rx: MCS & cck, hw: MCS & cck */ WIRELESS_11_24N = BIT(3), /* tx:MCS only, rx:MCS & cck, hw:MCS & cck */
WIRELESS_11_5N = BIT(4), /* tx: MCS only, rx: MCS & ofdm, hw: ofdm only */ WIRELESS_11_5N = BIT(4), /* tx:MCS only, rx:MCS & ofdm, hw:ofdm only */
/* WIRELESS_AUTO = BIT(5), */
WIRELESS_AC = BIT(6), WIRELESS_AC = BIT(6),
/* Combination */ /* Combination */
WIRELESS_11BG = (WIRELESS_11B|WIRELESS_11G), /* tx: cck & ofdm, rx: cck & ofdm & MCS, hw: cck & ofdm */ /* tx: cck & ofdm, rx: cck & ofdm & MCS, hw: cck & ofdm */
WIRELESS_11G_24N = (WIRELESS_11G|WIRELESS_11_24N), /* tx: ofdm & MCS, rx: ofdm & cck & MCS, hw: cck & ofdm */ WIRELESS_11BG = (WIRELESS_11B | WIRELESS_11G),
WIRELESS_11A_5N = (WIRELESS_11A|WIRELESS_11_5N), /* tx: ofdm & MCS, rx: ofdm & MCS, hw: ofdm only */ /* tx: ofdm & MCS, rx: ofdm & cck & MCS, hw: cck & ofdm */
WIRELESS_11BG_24N = (WIRELESS_11B|WIRELESS_11G|WIRELESS_11_24N), /* tx: ofdm & cck & MCS, rx: ofdm & cck & MCS, hw: ofdm & cck */ WIRELESS_11G_24N = (WIRELESS_11G | WIRELESS_11_24N),
WIRELESS_11AGN = (WIRELESS_11A|WIRELESS_11G|WIRELESS_11_24N|WIRELESS_11_5N), /* tx: ofdm & MCS, rx: ofdm & MCS, hw: ofdm only */ /* tx: ofdm & MCS, rx: ofdm & MCS, hw: ofdm only */
WIRELESS_11ABGN = (WIRELESS_11A|WIRELESS_11B|WIRELESS_11G|WIRELESS_11_24N|WIRELESS_11_5N), WIRELESS_11A_5N = (WIRELESS_11A | WIRELESS_11_5N),
/* tx: ofdm & cck & MCS, rx: ofdm & cck & MCS, hw: ofdm & cck */
WIRELESS_11BG_24N = (WIRELESS_11B | WIRELESS_11G | WIRELESS_11_24N),
/* tx: ofdm & MCS, rx: ofdm & MCS, hw: ofdm only */
WIRELESS_11AGN = (WIRELESS_11A | WIRELESS_11G | WIRELESS_11_24N |
WIRELESS_11_5N),
WIRELESS_11ABGN = (WIRELESS_11A | WIRELESS_11B | WIRELESS_11G |
WIRELESS_11_24N | WIRELESS_11_5N),
}; };
#define SUPPORTED_24G_NETTYPE_MSK \ #define SUPPORTED_24G_NETTYPE_MSK \
@ -257,7 +263,7 @@ struct ieee_param_ex {
u8 data[0]; u8 data[0];
}; };
struct sta_data{ struct sta_data {
u16 aid; u16 aid;
u16 capability; u16 capability;
int flags; int flags;
@ -618,7 +624,8 @@ struct ieee80211_snap_hdr {
#define IEEE80211_CCK_RATES_MASK 0x0000000F #define IEEE80211_CCK_RATES_MASK 0x0000000F
#define IEEE80211_CCK_BASIC_RATES_MASK (IEEE80211_CCK_RATE_1MB_MASK | \ #define IEEE80211_CCK_BASIC_RATES_MASK (IEEE80211_CCK_RATE_1MB_MASK | \
IEEE80211_CCK_RATE_2MB_MASK) IEEE80211_CCK_RATE_2MB_MASK)
#define IEEE80211_CCK_DEFAULT_RATES_MASK (IEEE80211_CCK_BASIC_RATES_MASK | \ #define IEEE80211_CCK_DEFAULT_RATES_MASK \
(IEEE80211_CCK_BASIC_RATES_MASK | \
IEEE80211_CCK_RATE_5MB_MASK | \ IEEE80211_CCK_RATE_5MB_MASK | \
IEEE80211_CCK_RATE_11MB_MASK) IEEE80211_CCK_RATE_11MB_MASK)
@ -626,13 +633,15 @@ struct ieee80211_snap_hdr {
#define IEEE80211_OFDM_BASIC_RATES_MASK (IEEE80211_OFDM_RATE_6MB_MASK | \ #define IEEE80211_OFDM_BASIC_RATES_MASK (IEEE80211_OFDM_RATE_6MB_MASK | \
IEEE80211_OFDM_RATE_12MB_MASK | \ IEEE80211_OFDM_RATE_12MB_MASK | \
IEEE80211_OFDM_RATE_24MB_MASK) IEEE80211_OFDM_RATE_24MB_MASK)
#define IEEE80211_OFDM_DEFAULT_RATES_MASK (IEEE80211_OFDM_BASIC_RATES_MASK | \ #define IEEE80211_OFDM_DEFAULT_RATES_MASK \
(IEEE80211_OFDM_BASIC_RATES_MASK | \
IEEE80211_OFDM_RATE_9MB_MASK | \ IEEE80211_OFDM_RATE_9MB_MASK | \
IEEE80211_OFDM_RATE_18MB_MASK | \ IEEE80211_OFDM_RATE_18MB_MASK | \
IEEE80211_OFDM_RATE_36MB_MASK | \ IEEE80211_OFDM_RATE_36MB_MASK | \
IEEE80211_OFDM_RATE_48MB_MASK | \ IEEE80211_OFDM_RATE_48MB_MASK | \
IEEE80211_OFDM_RATE_54MB_MASK) IEEE80211_OFDM_RATE_54MB_MASK)
#define IEEE80211_DEFAULT_RATES_MASK (IEEE80211_OFDM_DEFAULT_RATES_MASK | \ #define IEEE80211_DEFAULT_RATES_MASK \
(IEEE80211_OFDM_DEFAULT_RATES_MASK | \
IEEE80211_CCK_DEFAULT_RATES_MASK) IEEE80211_CCK_DEFAULT_RATES_MASK)
#define IEEE80211_NUM_OFDM_RATES 8 #define IEEE80211_NUM_OFDM_RATES 8
@ -952,7 +961,7 @@ static inline int is_multicast_mac_addr(const u8 *addr)
static inline int is_broadcast_mac_addr(const u8 *addr) static inline int is_broadcast_mac_addr(const u8 *addr)
{ {
return (addr[0] == 0xff) && (addr[1] == 0xff) && (addr[2] == 0xff) && \ return (addr[0] == 0xff) && (addr[1] == 0xff) && (addr[2] == 0xff) &&
(addr[3] == 0xff) && (addr[4] == 0xff) && (addr[5] == 0xff); (addr[3] == 0xff) && (addr[4] == 0xff) && (addr[5] == 0xff);
} }
@ -1001,7 +1010,7 @@ enum rtw_ieee80211_spectrum_mgmt_actioncode {
RTW_WLAN_ACTION_SPCT_EXT_CHL_SWITCH = 5, RTW_WLAN_ACTION_SPCT_EXT_CHL_SWITCH = 5,
}; };
enum _PUBLIC_ACTION{ enum _PUBLIC_ACTION {
ACT_PUBLIC_BSSCOEXIST = 0, /* 20/40 BSS Coexistence */ ACT_PUBLIC_BSSCOEXIST = 0, /* 20/40 BSS Coexistence */
ACT_PUBLIC_DSE_ENABLE = 1, ACT_PUBLIC_DSE_ENABLE = 1,
ACT_PUBLIC_DSE_DEENABLE = 2, ACT_PUBLIC_DSE_DEENABLE = 2,
@ -1192,7 +1201,7 @@ u8 *rtw_set_ie_secondary_ch_offset(u8 *buf, u32 *buf_len,
u8 *rtw_set_ie_mesh_ch_switch_parm(u8 *buf, u32 *buf_len, u8 ttl, u8 *rtw_set_ie_mesh_ch_switch_parm(u8 *buf, u32 *buf_len, u8 ttl,
u8 flags, u16 reason, u16 precedence); u8 flags, u16 reason, u16 precedence);
u8 *rtw_get_ie(u8*pbuf, int index, int *len, int limit); u8 *rtw_get_ie(u8 *pbuf, int index, int *len, int limit);
u8 *rtw_get_ie_ex(u8 *in_ie, uint in_len, u8 eid, u8 *oui, u8 *rtw_get_ie_ex(u8 *in_ie, uint in_len, u8 eid, u8 *oui,
u8 oui_len, u8 *ie, uint *ielen); u8 oui_len, u8 *ie, uint *ielen);
int rtw_ies_remove_ie(u8 *ies, uint *ies_len, uint offset, int rtw_ies_remove_ie(u8 *ies, uint *ies_len, uint offset,
@ -1205,9 +1214,9 @@ unsigned char *rtw_get_wpa2_ie(unsigned char *pie, int *rsn_ie_len, int limit);
int rtw_get_wpa_cipher_suite(u8 *s); int rtw_get_wpa_cipher_suite(u8 *s);
int rtw_get_wpa2_cipher_suite(u8 *s); int rtw_get_wpa2_cipher_suite(u8 *s);
int rtw_get_wapi_ie(u8 *in_ie, uint in_len, u8 *wapi_ie, u16 *wapi_len); int rtw_get_wapi_ie(u8 *in_ie, uint in_len, u8 *wapi_ie, u16 *wapi_len);
int rtw_parse_wpa_ie(u8* wpa_ie, int wpa_ie_len, int *group_cipher, int rtw_parse_wpa_ie(u8 *wpa_ie, int wpa_ie_len, int *group_cipher,
int *pairwise_cipher, int *is_8021x); int *pairwise_cipher, int *is_8021x);
int rtw_parse_wpa2_ie(u8* wpa_ie, int wpa_ie_len, int *group_cipher, int rtw_parse_wpa2_ie(u8 *wpa_ie, int wpa_ie_len, int *group_cipher,
int *pairwise_cipher, int *is_8021x); int *pairwise_cipher, int *is_8021x);
int rtw_get_sec_ie(u8 *in_ie, uint in_len, u8 *rsn_ie, u16 *rsn_len, int rtw_get_sec_ie(u8 *in_ie, uint in_len, u8 *rsn_ie, u16 *rsn_len,
@ -1227,8 +1236,8 @@ u8 *rtw_get_wps_attr_content(u8 *wps_ie, uint wps_ielen, u16 target_attr_id,
* @buf_len: * @buf_len:
*/ */
#define for_each_ie(ie, buf, buf_len) \ #define for_each_ie(ie, buf, buf_len) \
for (ie = (void*)buf; (((u8*)ie) - ((u8*)buf) + 1) < buf_len; \ for (ie = (void *)buf; (((u8 *)ie) - ((u8 *)buf) + 1) < buf_len; \
ie = (void*)(((u8*)ie) + *(((u8*)ie)+1) + 2)) ie = (void *)(((u8 *)ie) + *(((u8 *)ie)+1) + 2))
void dump_ies(u8 *buf, u32 buf_len); void dump_ies(u8 *buf, u32 buf_len);
void dump_wps_ie(u8 *ie, u32 ie_len); void dump_wps_ie(u8 *ie, u32 ie_len);
@ -1267,7 +1276,7 @@ void rtw_macaddr_cfg(u8 *mac_addr);
u16 rtw_mcs_rate(u8 rf_type, u8 bw_40MHz, u8 short_GI_20, u8 short_GI_40, u16 rtw_mcs_rate(u8 rf_type, u8 bw_40MHz, u8 short_GI_20, u8 short_GI_40,
unsigned char *MCS_rate); unsigned char *MCS_rate);
int rtw_action_frame_parse(const u8 *frame, u32 frame_len, u8* category, int rtw_action_frame_parse(const u8 *frame, u32 frame_len, u8 *category,
u8 *action); u8 *action);
const char *action_public_str(u8 action); const char *action_public_str(u8 action);

View file

@ -284,6 +284,7 @@ struct ieee80211_mgmt {
} __packed; } __packed;
/* mgmt header + 1 byte category code */ /* mgmt header + 1 byte category code */
#define IEEE80211_MIN_ACTION_SIZE FIELD_OFFSET(struct ieee80211_mgmt, u.action.u) #define IEEE80211_MIN_ACTION_SIZE \
FIELD_OFFSET(struct ieee80211_mgmt, u.action.u)
#endif #endif

View file

@ -90,8 +90,7 @@
* This is an Ethernet frame header. * This is an Ethernet frame header.
*/ */
struct ethhdr struct ethhdr {
{
unsigned char h_dest[ETH_ALEN]; /* destination eth addr */ unsigned char h_dest[ETH_ALEN]; /* destination eth addr */
unsigned char h_source[ETH_ALEN]; /* source ether addr */ unsigned char h_source[ETH_ALEN]; /* source ether addr */
unsigned short h_proto; /* packet type ID field */ unsigned short h_proto; /* packet type ID field */
@ -103,9 +102,9 @@ struct _vlan {
}; };
#define get_vlan_id(pvlan) \ #define get_vlan_id(pvlan) \
((ntohs((unsigned short )pvlan->h_vlan_TCI)) & 0xfff) ((ntohs((unsigned short)pvlan->h_vlan_TCI)) & 0xfff)
#define get_vlan_priority(pvlan) \ #define get_vlan_priority(pvlan) \
((ntohs((unsigned short )pvlan->h_vlan_TCI))>>13) ((ntohs((unsigned short)pvlan->h_vlan_TCI))>>13)
#define get_vlan_encap_proto(pvlan) \ #define get_vlan_encap_proto(pvlan) \
(ntohs((unsigned short)pvlan->h_vlan_encapsulated_proto)) (ntohs((unsigned short)pvlan->h_vlan_encapsulated_proto))

View file

@ -61,9 +61,6 @@ struct rtw_wdev_priv {
#define wdev_to_priv(w) ((struct rtw_wdev_priv *)(wdev_priv(w))) #define wdev_to_priv(w) ((struct rtw_wdev_priv *)(wdev_priv(w)))
#define wiphy_tostruct adapter(x) \
((struct adapter *)(((struct rtw_wdev_priv *)wiphy_priv(x))->padapter))
#define wiphy_to_wdev(x) \ #define wiphy_to_wdev(x) \
((struct wireless_dev *)(((struct rtw_wdev_priv *)wiphy_priv(x))->rtw_wdev)) ((struct wireless_dev *)(((struct rtw_wdev_priv *)wiphy_priv(x))->rtw_wdev))
@ -102,7 +99,7 @@ int rtw_cfg80211_set_mgnt_wpsp2pie(struct net_device *net,
bool rtw_cfg80211_pwr_mgmt(struct adapter *adapter); bool rtw_cfg80211_pwr_mgmt(struct adapter *adapter);
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)) && \ #if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 4, 0)) && \
!defined(COMPAT_KERNEL_RELEASE) !defined(COMPAT_KERNEL_RELEASE)
#define rtw_cfg80211_rx_mgmt(dev, freq, sig_dbm, buf, len, gfp) \ #define rtw_cfg80211_rx_mgmt(dev, freq, sig_dbm, buf, len, gfp) \
cfg80211_rx_mgmt(dev, freq, buf, len, gfp) cfg80211_rx_mgmt(dev, freq, buf, len, gfp)

View file

@ -107,7 +107,7 @@ struct iphdr {
#if defined(__LITTLE_ENDIAN_BITFIELD) #if defined(__LITTLE_ENDIAN_BITFIELD)
__u8 ihl:4, __u8 ihl:4,
version:4; version:4;
#elif defined (__BIG_ENDIAN_BITFIELD) #elif defined(__BIG_ENDIAN_BITFIELD)
__u8 version:4, __u8 version:4,
ihl:4; ihl:4;
#endif #endif

View file

@ -23,13 +23,13 @@
#include <osdep_service.h> #include <osdep_service.h>
#include <drv_types.h> #include <drv_types.h>
extern void rtw_init_mlme_timer(struct adapter *padapter); void rtw_init_mlme_timer(struct adapter *padapter);
extern void rtw_os_indicate_disconnect( struct adapter *adapter ); void rtw_os_indicate_disconnect(struct adapter *adapter);
extern void rtw_os_indicate_connect( struct adapter *adapter ); void rtw_os_indicate_connect(struct adapter *adapter);
void rtw_os_indicate_scan_done( struct adapter *padapter, bool aborted); void rtw_os_indicate_scan_done(struct adapter *padapter, bool aborted);
extern void rtw_report_sec_ie(struct adapter *adapter,u8 authmode,u8 *sec_ie); void rtw_report_sec_ie(struct adapter *adapter, u8 authmode, u8 *sec_ie);
void rtw_reset_securitypriv( struct adapter *adapter ); void rtw_reset_securitypriv(struct adapter *adapter);
void indicate_wx_scan_complete_event(struct adapter *padapter); void indicate_wx_scan_complete_event(struct adapter *padapter);
#endif /* _MLME_OSDEP_H_ */ #endif /* _MLME_OSDEP_H_ */

View file

@ -103,7 +103,8 @@
#define OID_RT_UTILITY_SELECT_SUBCARRIER_NUMBER 0xFF818582 #define OID_RT_UTILITY_SELECT_SUBCARRIER_NUMBER 0xFF818582
#define OID_RT_UTILITY_GET_RSSI_STATUS 0xFF818583 #define OID_RT_UTILITY_GET_RSSI_STATUS 0xFF818583
#define OID_RT_UTILITY_GET_FRAME_DETECTION_STATUS 0xFF818584 #define OID_RT_UTILITY_GET_FRAME_DETECTION_STATUS 0xFF818584
#define OID_RT_UTILITY_GET_AGC_AND_FREQUENCY_OFFSET_ESTIMATION_STATUS 0xFF818585 #define OID_RT_UTILITY_GET_AGC_AND_FREQUENCY_OFFSET_ESTIMATION_STATUS \
0xFF818585
#define OID_RT_UTILITY_GET_CHANNEL_ESTIMATION_STATUS 0xFF818586 #define OID_RT_UTILITY_GET_CHANNEL_ESTIMATION_STATUS 0xFF818586
/* */ /* */
@ -199,13 +200,9 @@
/* Vincent 8185MP */ /* Vincent 8185MP */
#define OID_RT_PRO_RX_FILTER 0xFF0111C0 #define OID_RT_PRO_RX_FILTER 0xFF0111C0
/* Andy TEST */
/* define OID_RT_PRO_WRITE_REGISTRY 0xFF0111C1 */
/* define OID_RT_PRO_READ_REGISTRY 0xFF0111C2 */
#define OID_CE_USB_WRITE_REGISTRY 0xFF0111C1 #define OID_CE_USB_WRITE_REGISTRY 0xFF0111C1
#define OID_CE_USB_READ_REGISTRY 0xFF0111C2 #define OID_CE_USB_READ_REGISTRY 0xFF0111C2
#define OID_RT_PRO_SET_INITIAL_GA 0xFF0111C3 #define OID_RT_PRO_SET_INITIAL_GA 0xFF0111C3
#define OID_RT_PRO_SET_BB_RF_STANDBY_MODE 0xFF0111C4 #define OID_RT_PRO_SET_BB_RF_STANDBY_MODE 0xFF0111C4
#define OID_RT_PRO_SET_BB_RF_SHUTDOWN_MODE 0xFF0111C5 #define OID_RT_PRO_SET_BB_RF_SHUTDOWN_MODE 0xFF0111C5
@ -220,8 +217,10 @@
#define OID_RT_AP_GET_CURRENT_TIME_STAMP 0xFF010301 #define OID_RT_AP_GET_CURRENT_TIME_STAMP 0xFF010301
#define OID_RT_AP_SWITCH_INTO_AP_MODE 0xFF010302 #define OID_RT_AP_SWITCH_INTO_AP_MODE 0xFF010302
#define OID_RT_AP_SET_DTIM_PERIOD 0xFF010303 #define OID_RT_AP_SET_DTIM_PERIOD 0xFF010303
#define OID_RT_AP_SUPPORTED 0xFF010304 /* Determine if driver supports AP mode. 2004.08.27, by rcnjko. */ /* Determine if driver supports AP mode. */
#define OID_RT_AP_SET_PASSPHRASE 0xFF010305 /* Set WPA-PSK passphrase into authenticator. 2005.07.08, byrcnjko. */ #define OID_RT_AP_SUPPORTED 0xFF010304
/* Set WPA-PSK passphrase into authenticator. */
#define OID_RT_AP_SET_PASSPHRASE 0xFF010305
/* 8187MP. 2004.09.06, by rcnjko. */ /* 8187MP. 2004.09.06, by rcnjko. */
#define OID_RT_PRO8187_WI_POLL 0xFF818780 #define OID_RT_PRO8187_WI_POLL 0xFF818780

View file

@ -22,46 +22,32 @@
#ifndef __HALDMOUTSRC_H__ #ifndef __HALDMOUTSRC_H__
#define __HALDMOUTSRC_H__ #define __HALDMOUTSRC_H__
/* */
/* Definition */ /* Definition */
/* */ /* Define all team support ability. */
/* */
/* 2011/09/22 MH Define all team supprt ability. */ /* Define for all teams. Please Define the constant in your precomp header. */
/* */
/* */
/* 2011/09/22 MH Define for all teams. Please Define the constan in your precomp header. */
/* */
/* define DM_ODM_SUPPORT_AP 0 */ /* define DM_ODM_SUPPORT_AP 0 */
/* define DM_ODM_SUPPORT_ADSL 0 */ /* define DM_ODM_SUPPORT_ADSL 0 */
/* define DM_ODM_SUPPORT_CE 0 */ /* define DM_ODM_SUPPORT_CE 0 */
/* define DM_ODM_SUPPORT_MP 1 */ /* define DM_ODM_SUPPORT_MP 1 */
/* */ /* Define ODM SW team support flag. */
/* 2011/09/28 MH Define ODM SW team support flag. */
/* */
/* */
/* Antenna Switch Relative Definition. */ /* Antenna Switch Relative Definition. */
/* */
/* */
/* 20100503 Joseph: */
/* Add new function SwAntDivCheck8192C(). */ /* Add new function SwAntDivCheck8192C(). */
/* This is the main function of Antenna diversity function before link. */ /* This is the main function of Antenna diversity function before link. */
/* Mainly, it just retains last scan result and scan again. */ /* Mainly, it just retains last scan result and scan again. */
/* After that, it compares the scan result to see which one gets better RSSI. */ /* After that, it compares the scan result to see which one gets better
/* It selects antenna with better receiving power and returns better scan result. */ * RSSI. It selects antenna with better receiving power and returns better
/* */ * scan result. */
#define TP_MODE 0 #define TP_MODE 0
#define RSSI_MODE 1 #define RSSI_MODE 1
#define TRAFFIC_LOW 0 #define TRAFFIC_LOW 0
#define TRAFFIC_HIGH 1 #define TRAFFIC_HIGH 1
/* */
/* 3 Tx Power Tracking */ /* 3 Tx Power Tracking */
/* 3============================================================ */ /* 3============================================================ */
#define DPK_DELTA_MAPPING_NUM 13 #define DPK_DELTA_MAPPING_NUM 13
@ -104,15 +90,10 @@
#define ANTTESTA 0x01 /* Ant A will be Testing */ #define ANTTESTA 0x01 /* Ant A will be Testing */
#define ANTTESTB 0x02 /* Ant B will be testing */ #define ANTTESTB 0x02 /* Ant B will be testing */
/* */
/* structure and define */ /* structure and define */
/* */
/* */ /* Add for AP/ADSLpseudo DM structuer requirement. */
/* 2011/09/20 MH Add for AP/ADSLpseudo DM structuer requirement. */
/* We need to remove to other position??? */ /* We need to remove to other position??? */
/* */
struct rtl8192cd_priv { struct rtl8192cd_priv {
u8 temp; u8 temp;
}; };
@ -216,10 +197,13 @@ struct rx_hpc {
#define ASSOCIATE_ENTRY_NUM 32 /* Max size of AsocEntry[]. */ #define ASSOCIATE_ENTRY_NUM 32 /* Max size of AsocEntry[]. */
#define ODM_ASSOCIATE_ENTRY_NUM ASSOCIATE_ENTRY_NUM #define ODM_ASSOCIATE_ENTRY_NUM ASSOCIATE_ENTRY_NUM
/* This indicates two different the steps. */ /* This indicates two different steps. */
/* In SWAW_STEP_PEAK, driver needs to switch antenna and listen to the signal on the air. */ /* In SWAW_STEP_PEAK, driver needs to switch antenna and listen to
/* In SWAW_STEP_DETERMINE, driver just compares the signal captured in SWAW_STEP_PEAK */ * the signal on the air. */
/* with original RSSI to determine if it is necessary to switch antenna. */ /* In SWAW_STEP_DETERMINE, driver just compares the signal captured in
* SWAW_STEP_PEAK with original RSSI to determine if it is necessary to
* switch antenna. */
#define SWAW_STEP_PEAK 0 #define SWAW_STEP_PEAK 0
#define SWAW_STEP_DETERMINE 1 #define SWAW_STEP_DETERMINE 1
@ -249,7 +233,6 @@ struct sw_ant_switch {
s32 RSSI_sum_B; s32 RSSI_sum_B;
s32 RSSI_cnt_A; s32 RSSI_cnt_A;
s32 RSSI_cnt_B; s32 RSSI_cnt_B;
u64 lastTxOkCnt; u64 lastTxOkCnt;
u64 lastRxOkCnt; u64 lastRxOkCnt;
u64 TXByteCnt_A; u64 TXByteCnt_A;
@ -283,7 +266,6 @@ struct odm_rate_adapt {
u8 LowRSSIThresh; /* if RSSI <= LowRSSIThresh => RATRState is DM_RATR_STA_LOW */ u8 LowRSSIThresh; /* if RSSI <= LowRSSIThresh => RATRState is DM_RATR_STA_LOW */
u8 RATRState; /* Current RSSI level, DM_RATR_STA_HIGH/DM_RATR_STA_MIDDLE/DM_RATR_STA_LOW */ u8 RATRState; /* Current RSSI level, DM_RATR_STA_HIGH/DM_RATR_STA_MIDDLE/DM_RATR_STA_LOW */
u32 LastRATR; /* RATR Register Content */ u32 LastRATR; /* RATR Register Content */
}; };
#define IQK_MAC_REG_NUM 4 #define IQK_MAC_REG_NUM 4
@ -296,14 +278,11 @@ struct odm_rate_adapt {
#define IQK_Matrix_REG_NUM 8 #define IQK_Matrix_REG_NUM 8
#define IQK_Matrix_Settings_NUM 1+24+21 #define IQK_Matrix_Settings_NUM 1+24+21
#define DM_Type_ByFW 0 #define DM_Type_ByFWi 0
#define DM_Type_ByDriver 1 #define DM_Type_ByDriver 1
/* */
/* Declare for common info */ /* Declare for common info */
/* */
/* Declare for common info */
/* */
#define MAX_PATH_NUM_92CS 2 #define MAX_PATH_NUM_92CS 2
struct odm_phy_status_info { struct odm_phy_status_info {
@ -312,14 +291,15 @@ struct odm_phy_status_info {
u8 RxMIMOSignalQuality[MAX_PATH_NUM_92CS]; /* EVM */ u8 RxMIMOSignalQuality[MAX_PATH_NUM_92CS]; /* EVM */
u8 RxMIMOSignalStrength[MAX_PATH_NUM_92CS];/* in 0~100 index */ u8 RxMIMOSignalStrength[MAX_PATH_NUM_92CS];/* in 0~100 index */
s8 RxPower; /* in dBm Translate from PWdB */ s8 RxPower; /* in dBm Translate from PWdB */
s8 RecvSignalPower;/* Real power in dBm for this packet, no beautification and aggregation. Keep this raw info to be used for the other procedures. */ s8 RecvSignalPower;/* Real power in dBm for this packet, no
* beautification and aggregation. Keep this raw
* info to be used for the other procedures. */
u8 BTRxRSSIPercentage; u8 BTRxRSSIPercentage;
u8 SignalStrength; /* in 0-100 index. */ u8 SignalStrength; /* in 0-100 index. */
u8 RxPwr[MAX_PATH_NUM_92CS];/* per-path's pwdb */ u8 RxPwr[MAX_PATH_NUM_92CS];/* per-path's pwdb */
u8 RxSNR[MAX_PATH_NUM_92CS];/* per-path's SNR */ u8 RxSNR[MAX_PATH_NUM_92CS];/* per-path's SNR */
}; };
struct odm_phy_dbg_info { struct odm_phy_dbg_info {
/* ODM Write,debug info */ /* ODM Write,debug info */
s8 RxSNRdB[MAX_PATH_NUM_92CS]; s8 RxSNRdB[MAX_PATH_NUM_92CS];
@ -328,7 +308,6 @@ struct odm_phy_dbg_info {
u64 NumQryPhyStatusOFDM; u64 NumQryPhyStatusOFDM;
/* Others */ /* Others */
s32 RxEVM[MAX_PATH_NUM_92CS]; s32 RxEVM[MAX_PATH_NUM_92CS];
}; };
struct odm_per_pkt_info { struct odm_per_pkt_info {
@ -341,7 +320,6 @@ struct odm_per_pkt_info {
struct odm_mac_status_info { struct odm_mac_status_info {
u8 test; u8 test;
}; };
enum odm_ability { enum odm_ability {
@ -360,10 +338,9 @@ enum odm_ability {
ODM_PSD2AFH = 0x00000800 ODM_PSD2AFH = 0x00000800
}; };
/* */
/* 2011/20/20 MH For MP driver RT_WLAN_STA = struct sta_info */ /* 2011/20/20 MH For MP driver RT_WLAN_STA = struct sta_info */
/* Please declare below ODM relative info in your STA info structure. */ /* Please declare below ODM relative info in your STA info structure. */
/* */
struct odm_sta_info { struct odm_sta_info {
/* Driver Write */ /* Driver Write */
bool bUsed; /* record the sta status link or not? */ bool bUsed; /* record the sta status link or not? */
@ -375,23 +352,12 @@ struct odm_sta_info {
u8 RSSI_Ave; u8 RSSI_Ave;
u8 RXEVM[4]; u8 RXEVM[4];
u8 RXSNR[4]; u8 RXSNR[4];
/* */
/* Please use compile flag to disable the struictrue for other IC except 88E. */
/* Move To lower layer. */
/* */
/* ODM Write Wilson will handle this part(said by Luke.Lee) */
}; };
/* */
/* 2011/10/20 MH Define Common info enum for all team. */ /* 2011/10/20 MH Define Common info enum for all team. */
/* */
enum odm_common_info_def {
/* */ enum odm_common_info_def {
/* Fixed value: */ /* Fixed value: */
/* */
/* HOOK BEFORE REG INIT----------- */ /* HOOK BEFORE REG INIT----------- */
ODM_CMNINFO_PLATFORM = 0, ODM_CMNINFO_PLATFORM = 0,
@ -412,9 +378,7 @@ enum odm_common_info_def {
ODM_CMNINFO_SMART_CONCURRENT, ODM_CMNINFO_SMART_CONCURRENT,
/* HOOK BEFORE REG INIT----------- */ /* HOOK BEFORE REG INIT----------- */
/* */
/* Dynamic value: */ /* Dynamic value: */
/* */
/* POINTER REFERENCE----------- */ /* POINTER REFERENCE----------- */
ODM_CMNINFO_MAC_PHY_MODE, /* ODM_MAC_PHY_MODE_E */ ODM_CMNINFO_MAC_PHY_MODE, /* ODM_MAC_PHY_MODE_E */
ODM_CMNINFO_TX_UNI, ODM_CMNINFO_TX_UNI,
@ -457,23 +421,17 @@ enum odm_common_info_def {
ODM_CMNINFO_BT_DISABLE_EDCA, ODM_CMNINFO_BT_DISABLE_EDCA,
/* CALL BY VALUE-------------*/ /* CALL BY VALUE-------------*/
/* */
/* Dynamic ptr array hook itms. */ /* Dynamic ptr array hook itms. */
/* */
ODM_CMNINFO_STA_STATUS, ODM_CMNINFO_STA_STATUS,
ODM_CMNINFO_PHY_STATUS, ODM_CMNINFO_PHY_STATUS,
ODM_CMNINFO_MAC_STATUS, ODM_CMNINFO_MAC_STATUS,
ODM_CMNINFO_MAX, ODM_CMNINFO_MAX,
}; };
/* */
/* 2011/10/20 MH Define ODM support ability. ODM_CMNINFO_ABILITY */ /* 2011/10/20 MH Define ODM support ability. ODM_CMNINFO_ABILITY */
/* */
enum odm_ability_def { enum odm_ability_def {
/* */
/* BB ODM section BIT 0-15 */ /* BB ODM section BIT 0-15 */
/* */
ODM_BB_DIG = BIT0, ODM_BB_DIG = BIT0,
ODM_BB_RA_MASK = BIT1, ODM_BB_RA_MASK = BIT1,
ODM_BB_DYNAMIC_TXPWR = BIT2, ODM_BB_DYNAMIC_TXPWR = BIT2,
@ -488,19 +446,14 @@ enum odm_ability_def {
ODM_BB_PSD = BIT11, ODM_BB_PSD = BIT11,
ODM_BB_RXHP = BIT12, ODM_BB_RXHP = BIT12,
/* */
/* MAC DM section BIT 16-23 */ /* MAC DM section BIT 16-23 */
/* */
ODM_MAC_EDCA_TURBO = BIT16, ODM_MAC_EDCA_TURBO = BIT16,
ODM_MAC_EARLY_MODE = BIT17, ODM_MAC_EARLY_MODE = BIT17,
/* */
/* RF ODM section BIT 24-31 */ /* RF ODM section BIT 24-31 */
/* */
ODM_RF_TX_PWR_TRACK = BIT24, ODM_RF_TX_PWR_TRACK = BIT24,
ODM_RF_RX_GAIN_TRACK = BIT25, ODM_RF_RX_GAIN_TRACK = BIT25,
ODM_RF_CALIBRATION = BIT26, ODM_RF_CALIBRATION = BIT26,
}; };
/* ODM_CMNINFO_INTERFACE */ /* ODM_CMNINFO_INTERFACE */
@ -522,7 +475,9 @@ enum odm_ic_type {
ODM_RTL8821 = BIT6, ODM_RTL8821 = BIT6,
}; };
#define ODM_IC_11N_SERIES (ODM_RTL8192S|ODM_RTL8192C|ODM_RTL8192D|ODM_RTL8723A|ODM_RTL8188E) #define ODM_IC_11N_SERIES \
(ODM_RTL8192S | ODM_RTL8192C | ODM_RTL8192D | \
ODM_RTL8723A | ODM_RTL8188E)
#define ODM_IC_11AC_SERIES (ODM_RTL8812) #define ODM_IC_11AC_SERIES (ODM_RTL8812)
/* ODM_CMNINFO_CUT_VER */ /* ODM_CMNINFO_CUT_VER */
@ -543,9 +498,7 @@ enum odm_fab_Version {
}; };
/* ODM_CMNINFO_RF_TYPE */ /* ODM_CMNINFO_RF_TYPE */
/* */
/* For example 1T2R (A+AB = BIT0|BIT4|BIT5) */ /* For example 1T2R (A+AB = BIT0|BIT4|BIT5) */
/* */
enum odm_rf_path { enum odm_rf_path {
ODM_RF_TX_A = BIT0, ODM_RF_TX_A = BIT0,
ODM_RF_TX_B = BIT1, ODM_RF_TX_B = BIT1,
@ -686,7 +639,8 @@ struct odm_ra_info {
u8 PTPreRate; /* if rate change do PT */ u8 PTPreRate; /* if rate change do PT */
u8 PTPreRssi; /* if RSSI change 5% do PT */ u8 PTPreRssi; /* if RSSI change 5% do PT */
u8 PTModeSS; /* decide whitch rate should do PT */ u8 PTModeSS; /* decide whitch rate should do PT */
u8 RAstage; /* StageRA, decide how many times RA will be done between PT */ u8 RAstage; /* StageRA, decide how many times RA will be done
* between PT */
u8 PTSmoothFactor; u8 PTSmoothFactor;
}; };
@ -697,22 +651,22 @@ struct ijk_matrix_regs_set {
struct odm_rf_cal { struct odm_rf_cal {
/* for tx power tracking */ /* for tx power tracking */
u32 RegA24; /* for TempCCK */ u32 RegA24; /* for TempCCK */
s32 RegE94; s32 RegE94;
s32 RegE9C; s32 RegE9C;
s32 RegEB4; s32 RegEB4;
s32 RegEBC; s32 RegEBC;
/* u8 bTXPowerTracking; */
u8 TXPowercount; u8 TXPowercount;
bool bTXPowerTrackingInit; bool bTXPowerTrackingInit;
bool bTXPowerTracking; bool bTXPowerTracking;
u8 TxPowerTrackControl; /* for mp mode, turn off txpwrtracking as default */ u8 TxPowerTrackControl; /* for mp mode, turn off txpwrtracking
* as default */
u8 TM_Trigger; u8 TM_Trigger;
u8 InternalPA5G[2]; /* pathA / pathB */ u8 InternalPA5G[2]; /* pathA / pathB */
u8 ThermalMeter[2]; /* ThermalMeter, index 0 for RFIC0, and 1 for RFIC1 */ u8 ThermalMeter[2]; /* ThermalMeter, index 0 for RFIC0,
* and 1 for RFIC1 */
u8 ThermalValue; u8 ThermalValue;
u8 ThermalValue_LCK; u8 ThermalValue_LCK;
u8 ThermalValue_IQK; u8 ThermalValue_IQK;
@ -806,12 +760,12 @@ enum ant_div_type {
CGCS_RX_SW_ANTDIV = 0x05, CGCS_RX_SW_ANTDIV = 0x05,
}; };
/* 2011/09/22 MH Copy from SD4 defined structure. We use to support PHY DM integration. */ /* Copy from SD4 defined structure. We use to support PHY DM integration. */
struct odm_dm_struct { struct odm_dm_struct {
/* Add for different team use temporarily */ /* Add for different team use temporarily */
struct adapter * Adapter; /* For CE/NIC team */ struct adapter *Adapter; /* For CE/NIC team */
struct rtl8192cd_priv *priv; /* For AP/ADSL team */ struct rtl8192cd_priv *priv; /* For AP/ADSL team */
/* WHen you use Adapter or priv pointer, you must make sure the pointer is ready. */ /* WHen you use above pointers, they must be initialized. */
bool odm_ready; bool odm_ready;
struct rtl8192cd_priv *fake_priv; struct rtl8192cd_priv *fake_priv;
@ -833,7 +787,8 @@ struct odm_dm_struct {
u32 SupportAbility; u32 SupportAbility;
/* ODM PCIE/USB/SDIO/GSPI = 0/1/2/3 */ /* ODM PCIE/USB/SDIO/GSPI = 0/1/2/3 */
u8 SupportInterface; u8 SupportInterface;
/* ODM composite or independent. Bit oriented/ 92C+92D+ .... or any other type = 1/2/3/... */ /* ODM composite or independent. Bit oriented/ 92C+92D+ .... or any
* other type = 1/2/3/... */
u32 SupportICType; u32 SupportICType;
/* Cut Version TestChip/A-cut/B-cut... = 0/1/2/3/... */ /* Cut Version TestChip/A-cut/B-cut... = 0/1/2/3/... */
u8 CutVersion; u8 CutVersion;
@ -841,7 +796,7 @@ struct odm_dm_struct {
u8 FabVersion; u8 FabVersion;
/* RF Type 4T4R/3T3R/2T2R/1T2R/1T1R/... */ /* RF Type 4T4R/3T3R/2T2R/1T2R/1T1R/... */
u8 RFType; u8 RFType;
/* Board Type Normal/HighPower/MiniCard/SLIM/Combo/... = 0/1/2/3/4/... */ /* Board Type Normal/HighPower/MiniCard/SLIM/Combo/. = 0/1/2/3/4/. */
u8 BoardType; u8 BoardType;
/* with external LNA NO/Yes = 0/1 */ /* with external LNA NO/Yes = 0/1 */
u8 ExtLNA; u8 ExtLNA;
@ -858,9 +813,7 @@ struct odm_dm_struct {
u8 AntDivType; u8 AntDivType;
/* HOOK BEFORE REG INIT----------- */ /* HOOK BEFORE REG INIT----------- */
/* */
/* Dynamic Value */ /* Dynamic Value */
/* */
/* POINTER REFERENCE----------- */ /* POINTER REFERENCE----------- */
u8 u8_temp; u8 u8_temp;
@ -912,17 +865,20 @@ struct odm_dm_struct {
bool bBtDisabled; /* BT is disabled */ bool bBtDisabled; /* BT is disabled */
bool bBtHsOperation; /* BT HS mode is under progress */ bool bBtHsOperation; /* BT HS mode is under progress */
u8 btHsDigVal; /* use BT rssi to decide the DIG value */ u8 btHsDigVal; /* use BT rssi to decide the DIG value */
bool bBtDisableEdcaTurbo; /* Under some condition, don't enable the EDCA Turbo */ bool bBtDisableEdcaTurbo;/* Under some condition, don't enable the
* EDCA Turbo */
bool bBtBusy; /* BT is busy. */ bool bBtBusy; /* BT is busy. */
/* CALL BY VALUE------------- */ /* CALL BY VALUE------------- */
/* 2 Define STA info. */ /* 2 Define STA info. */
/* _ODM_STA_INFO */ /* _ODM_STA_INFO */
/* 2012/01/12 MH For MP, we need to reduce one array pointer for default port.?? */ /* For MP, we need to reduce one array pointer for default port.?? */
struct sta_info *pODM_StaInfo[ODM_ASSOCIATE_ENTRY_NUM]; struct sta_info *pODM_StaInfo[ODM_ASSOCIATE_ENTRY_NUM];
u16 CurrminRptTime; u16 CurrminRptTime;
struct odm_ra_info RAInfo[ODM_ASSOCIATE_ENTRY_NUM]; /* Use MacID as array index. STA MacID=0, VWiFi Client MacID={1, ODM_ASSOCIATE_ENTRY_NUM-1} */ struct odm_ra_info RAInfo[ODM_ASSOCIATE_ENTRY_NUM]; /* Use MacID as
* array index. STA MacID=0,
* VWiFi Client MacID={1, ODM_ASSOCIATE_ENTRY_NUM-1} */
/* */ /* */
/* 2012/02/14 MH Add to share 88E ra with other SW team. */ /* 2012/02/14 MH Add to share 88E ra with other SW team. */
/* We need to colelct all support abilit to a proper area. */ /* We need to colelct all support abilit to a proper area. */
@ -973,12 +929,9 @@ struct odm_dm_struct {
struct odm_rate_adapt RateAdaptive; struct odm_rate_adapt RateAdaptive;
struct odm_rf_cal RFCalibrateInfo; struct odm_rf_cal RFCalibrateInfo;
/* */
/* TX power tracking */ /* TX power tracking */
/* */
u8 BbSwingIdxOfdm; u8 BbSwingIdxOfdm;
u8 BbSwingIdxOfdmCurrent; u8 BbSwingIdxOfdmCurrent;
u8 BbSwingIdxOfdmBase; u8 BbSwingIdxOfdmBase;
@ -988,9 +941,7 @@ struct odm_dm_struct {
u8 BbSwingIdxCckBase; u8 BbSwingIdxCckBase;
bool BbSwingFlagCck; bool BbSwingFlagCck;
u8 *mp_mode; u8 *mp_mode;
/* */
/* ODM system resource. */ /* ODM system resource. */
/* */
/* ODM relative time. */ /* ODM relative time. */
struct timer_list PathDivSwitchTimer; struct timer_list PathDivSwitchTimer;
@ -1135,13 +1086,13 @@ enum dm_dig_op {
enum dm_1r_cca { enum dm_1r_cca {
CCA_1R =0, CCA_1R = 0,
CCA_2R = 1, CCA_2R = 1,
CCA_MAX = 2, CCA_MAX = 2,
}; };
enum dm_rf { enum dm_rf {
RF_Save =0, RF_Save = 0,
RF_Normal = 1, RF_Normal = 1,
RF_MAX = 2, RF_MAX = 2,
}; };
@ -1155,13 +1106,10 @@ enum dm_swas {
Antenna_MAX = 3, Antenna_MAX = 3,
}; };
/* Maximal number of antenna detection mechanism needs to perform. */
/* Maximal number of antenna detection mechanism needs to perform, added by Roger, 2011.12.28. */
#define MAX_ANTENNA_DETECTION_CNT 10 #define MAX_ANTENNA_DETECTION_CNT 10
/* */
/* Extern Global Variables. */ /* Extern Global Variables. */
/* */
#define OFDM_TABLE_SIZE_92C 37 #define OFDM_TABLE_SIZE_92C 37
#define OFDM_TABLE_SIZE_92D 43 #define OFDM_TABLE_SIZE_92D 43
#define CCK_TABLE_SIZE 33 #define CCK_TABLE_SIZE 33
@ -1170,16 +1118,14 @@ extern u32 OFDMSwingTable[OFDM_TABLE_SIZE_92D];
extern u8 CCKSwingTable_Ch1_Ch13[CCK_TABLE_SIZE][8]; extern u8 CCKSwingTable_Ch1_Ch13[CCK_TABLE_SIZE][8];
extern u8 CCKSwingTable_Ch14 [CCK_TABLE_SIZE][8]; extern u8 CCKSwingTable_Ch14 [CCK_TABLE_SIZE][8];
/* */
/* check Sta pointer valid or not */ /* check Sta pointer valid or not */
/* */
#define IS_STA_VALID(pSta) (pSta) #define IS_STA_VALID(pSta) (pSta)
/* 20100514 Joseph: Add definition for antenna switching test after link. */ /* 20100514 Joseph: Add definition for antenna switching test after link. */
/* This indicates two different the steps. */ /* This indicates two different the steps. */
/* In SWAW_STEP_PEAK, driver needs to switch antenna and listen to the signal on the air. */ /* In SWAW_STEP_PEAK, driver needs to switch antenna and listen to the
/* In SWAW_STEP_DETERMINE, driver just compares the signal captured in SWAW_STEP_PEAK */ * signal on the air. */
/* In SWAW_STEP_DETERMINE, driver just compares the signal captured in
* SWAW_STEP_PEAK */
/* with original RSSI to determine if it is necessary to switch antenna. */ /* with original RSSI to determine if it is necessary to switch antenna. */
#define SWAW_STEP_PEAK 0 #define SWAW_STEP_PEAK 0
#define SWAW_STEP_DETERMINE 1 #define SWAW_STEP_DETERMINE 1
@ -1187,124 +1133,65 @@ extern u8 CCKSwingTable_Ch14 [CCK_TABLE_SIZE][8];
void ODM_Write_DIG(struct odm_dm_struct *pDM_Odm, u8 CurrentIGI); void ODM_Write_DIG(struct odm_dm_struct *pDM_Odm, u8 CurrentIGI);
void ODM_Write_CCK_CCA_Thres(struct odm_dm_struct *pDM_Odm, u8 CurCCK_CCAThres); void ODM_Write_CCK_CCA_Thres(struct odm_dm_struct *pDM_Odm, u8 CurCCK_CCAThres);
void void ODM_SetAntenna(struct odm_dm_struct *pDM_Odm, u8 Antenna);
ODM_SetAntenna(
struct odm_dm_struct *pDM_Odm,
u8 Antenna);
#define dm_RF_Saving ODM_RF_Saving #define dm_RF_Saving ODM_RF_Saving
void ODM_RF_Saving( struct odm_dm_struct *pDM_Odm, void ODM_RF_Saving(struct odm_dm_struct *pDM_Odm, u8 bForceInNormal);
u8 bForceInNormal );
#define SwAntDivRestAfterLink ODM_SwAntDivRestAfterLink #define SwAntDivRestAfterLink ODM_SwAntDivRestAfterLink
void ODM_SwAntDivRestAfterLink( struct odm_dm_struct *pDM_Odm); void ODM_SwAntDivRestAfterLink(struct odm_dm_struct *pDM_Odm);
#define dm_CheckTXPowerTracking ODM_TXPowerTrackingCheck #define dm_CheckTXPowerTracking ODM_TXPowerTrackingCheck
void void ODM_TXPowerTrackingCheck(struct odm_dm_struct *pDM_Odm);
ODM_TXPowerTrackingCheck(
struct odm_dm_struct *pDM_Odm
);
bool ODM_RAStateCheck(struct odm_dm_struct *pDM_Odm, s32 RSSI, bool ODM_RAStateCheck(struct odm_dm_struct *pDM_Odm, s32 RSSI,
bool bForceUpdate, u8 *pRATRState); bool bForceUpdate, u8 *pRATRState);
#define dm_SWAW_RSSI_Check ODM_SwAntDivChkPerPktRssi #define dm_SWAW_RSSI_Check ODM_SwAntDivChkPerPktRssi
void ODM_SwAntDivChkPerPktRssi(struct odm_dm_struct *pDM_Odm, u8 StationID, struct odm_phy_status_info *pPhyInfo); void ODM_SwAntDivChkPerPktRssi(struct odm_dm_struct *pDM_Odm, u8 StationID,
struct odm_phy_status_info *pPhyInfo);
u32 ConvertTo_dB(u32 Value); u32 ConvertTo_dB(u32 Value);
u32 u32 GetPSDData(struct odm_dm_struct *pDM_Odm, unsigned int point,
GetPSDData(
struct odm_dm_struct *pDM_Odm,
unsigned int point,
u8 initial_gain_psd); u8 initial_gain_psd);
void void odm_DIGbyRSSI_LPS(struct odm_dm_struct *pDM_Odm);
odm_DIGbyRSSI_LPS(
struct odm_dm_struct *pDM_Odm
);
u32 ODM_Get_Rate_Bitmap( u32 ODM_Get_Rate_Bitmap(struct odm_dm_struct *pDM_Odm, u32 macid,
struct odm_dm_struct *pDM_Odm, u32 ra_mask, u8 rssi_level);
u32 macid,
u32 ra_mask,
u8 rssi_level);
void ODM_DMInit( struct odm_dm_struct *pDM_Odm); void ODM_DMInit(struct odm_dm_struct *pDM_Odm);
void void ODM_DMWatchdog(struct odm_dm_struct *pDM_Odm);
ODM_DMWatchdog(
struct odm_dm_struct *pDM_Odm /* For common use in the future */
);
void void ODM_CmnInfoInit(struct odm_dm_struct *pDM_Odm,
ODM_CmnInfoInit( enum odm_common_info_def CmnInfo, u32 Value);
struct odm_dm_struct *pDM_Odm,
void ODM_CmnInfoHook(struct odm_dm_struct *pDM_Odm,
enum odm_common_info_def CmnInfo, void *pValue);
void ODM_CmnInfoPtrArrayHook(struct odm_dm_struct *pDM_Odm,
enum odm_common_info_def CmnInfo, enum odm_common_info_def CmnInfo,
u32 Value u16 Index, void *pValue);
);
void void ODM_CmnInfoUpdate(struct odm_dm_struct *pDM_Odm, u32 CmnInfo, u64 Value);
ODM_CmnInfoHook(
struct odm_dm_struct *pDM_Odm,
enum odm_common_info_def CmnInfo,
void * pValue
);
void void ODM_InitAllTimers(struct odm_dm_struct *pDM_Odm);
ODM_CmnInfoPtrArrayHook(
struct odm_dm_struct *pDM_Odm,
enum odm_common_info_def CmnInfo,
u16 Index,
void * pValue
);
void void ODM_CancelAllTimers(struct odm_dm_struct *pDM_Odm);
ODM_CmnInfoUpdate(
struct odm_dm_struct *pDM_Odm,
u32 CmnInfo,
u64 Value
);
void void ODM_ReleaseAllTimers(struct odm_dm_struct *pDM_Odm);
ODM_InitAllTimers(
struct odm_dm_struct *pDM_Odm
);
void void ODM_ResetIQKResult(struct odm_dm_struct *pDM_Odm);
ODM_CancelAllTimers(
struct odm_dm_struct *pDM_Odm
);
void void ODM_AntselStatistics_88C(struct odm_dm_struct *pDM_Odm, u8 MacId,
ODM_ReleaseAllTimers( u32 PWDBAll, bool isCCKrate);
struct odm_dm_struct *pDM_Odm
);
void void ODM_SingleDualAntennaDefaultSetting(struct odm_dm_struct *pDM_Odm);
ODM_ResetIQKResult(
struct odm_dm_struct *pDM_Odm
);
void bool ODM_SingleDualAntennaDetection(struct odm_dm_struct *pDM_Odm, u8 mode);
ODM_AntselStatistics_88C(
struct odm_dm_struct *pDM_Odm,
u8 MacId,
u32 PWDBAll,
bool isCCKrate
);
void
ODM_SingleDualAntennaDefaultSetting(
struct odm_dm_struct *pDM_Odm
);
bool
ODM_SingleDualAntennaDetection(
struct odm_dm_struct *pDM_Odm,
u8 mode
);
void odm_dtc(struct odm_dm_struct *pDM_Odm); void odm_dtc(struct odm_dm_struct *pDM_Odm);

View file

@ -18,15 +18,10 @@
* *
******************************************************************************/ ******************************************************************************/
#ifndef __HALHWOUTSRC_H__ #ifndef __HALHWOUTSRC_H__
#define __HALHWOUTSRC_H__ #define __HALHWOUTSRC_H__
/* */
/* Definition */ /* Definition */
/* */
/* */
/* */
/* CCK Rates, TxHT = 0 */ /* CCK Rates, TxHT = 0 */
#define DESC92C_RATE1M 0x00 #define DESC92C_RATE1M 0x00
#define DESC92C_RATE2M 0x01 #define DESC92C_RATE2M 0x01
@ -63,16 +58,13 @@
#define DESC92C_RATEMCS15_SG 0x1c #define DESC92C_RATEMCS15_SG 0x1c
#define DESC92C_RATEMCS32 0x20 #define DESC92C_RATEMCS32 0x20
/* */
/* structure and define */ /* structure and define */
/* */
struct phy_rx_agc_info { struct phy_rx_agc_info {
#ifdef __LITTLE_ENDIAN #ifdef __LITTLE_ENDIAN
u8 gain:7,trsw:1; u8 gain:7, trsw:1;
#else #else
u8 trsw:1,gain:7; u8 trsw:1, gain:7;
#endif #endif
}; };
@ -114,45 +106,27 @@ struct phy_status_rpt {
#endif #endif
}; };
void void odm_Init_RSSIForDM(struct odm_dm_struct *pDM_Odm);
odm_Init_RSSIForDM(
struct odm_dm_struct *pDM_Odm
);
void void ODM_PhyStatusQuery(struct odm_dm_struct *pDM_Odm,
ODM_PhyStatusQuery(
struct odm_dm_struct * pDM_Odm,
struct odm_phy_status_info *pPhyInfo, struct odm_phy_status_info *pPhyInfo,
u8 *pPhyStatus, u8 *pPhyStatus,
struct odm_per_pkt_info *pPktinfo struct odm_per_pkt_info *pPktinfo);
);
void void ODM_MacStatusQuery(struct odm_dm_struct *pDM_Odm,
ODM_MacStatusQuery(
struct odm_dm_struct * pDM_Odm,
u8 *pMacStatus, u8 *pMacStatus,
u8 MacID, u8 MacID,
bool bPacketMatchBSSID, bool bPacketMatchBSSID,
bool bPacketToSelf, bool bPacketToSelf,
bool bPacketBeacon bool bPacketBeacon);
);
enum HAL_STATUS enum HAL_STATUS ODM_ConfigRFWithHeaderFile(struct odm_dm_struct *pDM_Odm,
ODM_ConfigRFWithHeaderFile(
struct odm_dm_struct * pDM_Odm,
enum ODM_RF_RADIO_PATH Content, enum ODM_RF_RADIO_PATH Content,
enum ODM_RF_RADIO_PATH eRFPath enum ODM_RF_RADIO_PATH eRFPath);
);
enum HAL_STATUS enum HAL_STATUS ODM_ConfigBBWithHeaderFile(struct odm_dm_struct *pDM_Odm,
ODM_ConfigBBWithHeaderFile( enum odm_bb_config_type ConfigType);
struct odm_dm_struct * pDM_Odm,
enum odm_bb_config_type ConfigType
);
enum HAL_STATUS enum HAL_STATUS ODM_ConfigMACWithHeaderFile(struct odm_dm_struct *pDM_Odm);
ODM_ConfigMACWithHeaderFile(
struct odm_dm_struct *pDM_Odm
);
#endif #endif

View file

@ -33,41 +33,24 @@ void ODM_AntennaDiversityInit_88E(struct odm_dm_struct *pDM_Odm);
void ODM_AntennaDiversity_88E(struct odm_dm_struct *pDM_Odm); void ODM_AntennaDiversity_88E(struct odm_dm_struct *pDM_Odm);
void ODM_SetTxAntByTxInfo_88E(struct odm_dm_struct *pDM_Odm, u8 *pDesc, u8 macId); void ODM_SetTxAntByTxInfo_88E(struct odm_dm_struct *pDM_Odm, u8 *pDesc,
u8 macId);
void ODM_UpdateRxIdleAnt_88E(struct odm_dm_struct *pDM_Odm, u8 Ant); void ODM_UpdateRxIdleAnt_88E(struct odm_dm_struct *pDM_Odm, u8 Ant);
void ODM_AntselStatistics_88E(struct odm_dm_struct *pDM_Odm, void ODM_AntselStatistics_88E(struct odm_dm_struct *pDM_Odm, u8 antsel_tr_mux,
u8 antsel_tr_mux, u32 MacId, u8 RxPWDBAll);
u32 MacId,
u8 RxPWDBAll
);
void void odm_FastAntTraining(struct odm_dm_struct *pDM_Odm);
odm_FastAntTraining(
struct odm_dm_struct *pDM_Odm
);
void void odm_FastAntTrainingCallback(struct odm_dm_struct *pDM_Odm);
odm_FastAntTrainingCallback(
struct odm_dm_struct *pDM_Odm
);
void void odm_FastAntTrainingWorkItemCallback(struct odm_dm_struct *pDM_Odm);
odm_FastAntTrainingWorkItemCallback(
struct odm_dm_struct *pDM_Odm
);
void void odm_PrimaryCCA_Init(struct odm_dm_struct *pDM_Odm);
odm_PrimaryCCA_Init(
struct odm_dm_struct *pDM_Odm);
bool bool ODM_DynamicPrimaryCCA_DupRTS(struct odm_dm_struct *pDM_Odm);
ODM_DynamicPrimaryCCA_DupRTS(
struct odm_dm_struct *pDM_Odm);
void void odm_DynamicPrimaryCCA(struct odm_dm_struct *pDM_Odm);
odm_DynamicPrimaryCCA(
struct odm_dm_struct *pDM_Odm);
#endif #endif

View file

@ -23,48 +23,21 @@
void odm_ConfigRFReg_8188E(struct odm_dm_struct *pDM_Odm, u32 Addr, u32 Data, void odm_ConfigRFReg_8188E(struct odm_dm_struct *pDM_Odm, u32 Addr, u32 Data,
enum ODM_RF_RADIO_PATH RF_PATH, u32 RegAddr); enum ODM_RF_RADIO_PATH RF_PATH, u32 RegAddr);
void void odm_ConfigRF_RadioA_8188E(struct odm_dm_struct *pDM_Odm,
odm_ConfigRF_RadioA_8188E( u32 Addr, u32 Data);
struct odm_dm_struct *pDM_Odm,
u32 Addr,
u32 Data
);
void void odm_ConfigRF_RadioB_8188E(struct odm_dm_struct *pDM_Odm,
odm_ConfigRF_RadioB_8188E( u32 Addr, u32 Data);
struct odm_dm_struct *pDM_Odm,
u32 Addr,
u32 Data
);
void void odm_ConfigMAC_8188E(struct odm_dm_struct *pDM_Odm, u32 Addr, u8 Data);
odm_ConfigMAC_8188E(
struct odm_dm_struct *pDM_Odm,
u32 Addr,
u8 Data
);
void void odm_ConfigBB_AGC_8188E(struct odm_dm_struct *pDM_Odm, u32 Addr,
odm_ConfigBB_AGC_8188E( u32 Bitmask, u32 Data);
struct odm_dm_struct *pDM_Odm,
u32 Addr,
u32 Bitmask,
u32 Data
);
void void odm_ConfigBB_PHY_REG_PG_8188E(struct odm_dm_struct *pDM_Odm, u32 Addr,
odm_ConfigBB_PHY_REG_PG_8188E( u32 Bitmask, u32 Data);
struct odm_dm_struct *pDM_Odm,
u32 Addr, void odm_ConfigBB_PHY_8188E(struct odm_dm_struct *pDM_Odm, u32 Addr,
u32 Bitmask, u32 Bitmask, u32 Data);
u32 Data
);
void
odm_ConfigBB_PHY_8188E(
struct odm_dm_struct *pDM_Odm,
u32 Addr,
u32 Bitmask,
u32 Data
);
#endif #endif

View file

@ -27,48 +27,35 @@
/* Define the debug levels */ /* Define the debug levels */
/* */ /* */
/* 1. DBG_TRACE and DBG_LOUD are used for normal cases. */ /* 1. DBG_TRACE and DBG_LOUD are used for normal cases. */
/* So that, they can help SW engineer to develope or trace states changed */ /* They can help SW engineer to develope or trace states changed */
/* and also help HW enginner to trace every operation to and from HW, */ /* and also help HW enginner to trace every operation to and from HW, */
/* e.g IO, Tx, Rx. */ /* e.g IO, Tx, Rx. */
/* */ /* */
/* 2. DBG_WARNNING and DBG_SERIOUS are used for unusual or error cases, */ /* 2. DBG_WARNNING and DBG_SERIOUS are used for unusual or error cases, */
/* which help us to debug SW or HW. */ /* which help us to debug SW or HW. */
/* */
/* */
/* */
/* Never used in a call to ODM_RT_TRACE()! */ /* Never used in a call to ODM_RT_TRACE()! */
/* */
#define ODM_DBG_OFF 1 #define ODM_DBG_OFF 1
/* */
/* Fatal bug. */ /* Fatal bug. */
/* For example, Tx/Rx/IO locked up, OS hangs, memory access violation, */ /* For example, Tx/Rx/IO locked up, OS hangs, memory access violation, */
/* resource allocation failed, unexpected HW behavior, HW BUG and so on. */ /* resource allocation failed, unexpected HW behavior, HW BUG and so on. */
/* */
#define ODM_DBG_SERIOUS 2 #define ODM_DBG_SERIOUS 2
/* */
/* Abnormal, rare, or unexpeted cases. */ /* Abnormal, rare, or unexpeted cases. */
/* For example, IRP/Packet/OID canceled, device suprisely unremoved and so on. */ /* For example, IRP/Packet/OID canceled, device suprisely unremoved and so on. */
/* */
#define ODM_DBG_WARNING 3 #define ODM_DBG_WARNING 3
/* */
/* Normal case with useful information about current SW or HW state. */ /* Normal case with useful information about current SW or HW state. */
/* For example, Tx/Rx descriptor to fill, Tx/Rx descriptor completed status, */ /* For example, Tx/Rx descriptor to fill, Tx/Rx descr. completed status, */
/* SW protocol state change, dynamic mechanism state change and so on. */ /* SW protocol state change, dynamic mechanism state change and so on. */
/* */ /* */
#define ODM_DBG_LOUD 4 #define ODM_DBG_LOUD 4
/* */
/* Normal case with detail execution flow or information. */ /* Normal case with detail execution flow or information. */
/* */
#define ODM_DBG_TRACE 5 #define ODM_DBG_TRACE 5
/* */
/* Define the tracing components */ /* Define the tracing components */
/* */
/* */
/* BB Functions */ /* BB Functions */
#define ODM_COMP_DIG BIT0 #define ODM_COMP_DIG BIT0
#define ODM_COMP_RA_MASK BIT1 #define ODM_COMP_RA_MASK BIT1
@ -96,8 +83,9 @@
#define ODM_COMP_INIT BIT31 #define ODM_COMP_INIT BIT31
/*------------------------Export Marco Definition---------------------------*/ /*------------------------Export Marco Definition---------------------------*/
#define DbgPrint printk #define DbgPrint pr_info
#define RT_PRINTK(fmt, args...) DbgPrint( "%s(): " fmt, __func__, ## args); #define RT_PRINTK(fmt, args...) \
DbgPrint( "%s(): " fmt, __func__, ## args);
#ifndef ASSERT #ifndef ASSERT
#define ASSERT(expr) #define ASSERT(expr)
@ -105,8 +93,8 @@
#if DBG #if DBG
#define ODM_RT_TRACE(pDM_Odm, comp, level, fmt) \ #define ODM_RT_TRACE(pDM_Odm, comp, level, fmt) \
if (((comp) & pDM_Odm->DebugComponents) && (level <= pDM_Odm->DebugLevel)) \ if (((comp) & pDM_Odm->DebugComponents) && \
{ \ (level <= pDM_Odm->DebugLevel)) { \
if (pDM_Odm->SupportICType == ODM_RTL8192C) \ if (pDM_Odm->SupportICType == ODM_RTL8192C) \
DbgPrint("[ODM-92C] "); \ DbgPrint("[ODM-92C] "); \
else if (pDM_Odm->SupportICType == ODM_RTL8192D) \ else if (pDM_Odm->SupportICType == ODM_RTL8192D) \
@ -123,15 +111,16 @@
} }
#define ODM_RT_TRACE_F(pDM_Odm, comp, level, fmt) \ #define ODM_RT_TRACE_F(pDM_Odm, comp, level, fmt) \
if (((comp) & pDM_Odm->DebugComponents) && (level <= pDM_Odm->DebugLevel)) \ if (((comp) & pDM_Odm->DebugComponents) && \
{ \ (level <= pDM_Odm->DebugLevel)) { \
RT_PRINTK fmt; \ RT_PRINTK fmt; \
} }
#define ODM_RT_ASSERT(pDM_Odm, expr, fmt) \ #define ODM_RT_ASSERT(pDM_Odm, expr, fmt) \
if (!(expr)) { \ if (!(expr)) { \
DbgPrint( "Assertion failed! %s at ......\n", #expr); \ DbgPrint( "Assertion failed! %s at ......\n", #expr); \
DbgPrint( " ......%s,%s,line=%d\n",__FILE__,__func__,__LINE__); \ DbgPrint( " ......%s,%s,line=%d\n", __FILE__, \
__func__, __LINE__); \
RT_PRINTK fmt; \ RT_PRINTK fmt; \
ASSERT(false); \ ASSERT(false); \
} }
@ -140,15 +129,15 @@
#define ODM_dbg_trace(str) { DbgPrint("%s:%s\n", __func__, str); } #define ODM_dbg_trace(str) { DbgPrint("%s:%s\n", __func__, str); }
#define ODM_PRINT_ADDR(pDM_Odm, comp, level, title_str, ptr) \ #define ODM_PRINT_ADDR(pDM_Odm, comp, level, title_str, ptr) \
if (((comp) & pDM_Odm->DebugComponents) && (level <= pDM_Odm->DebugLevel)) \ if (((comp) & pDM_Odm->DebugComponents) && \
{ \ (level <= pDM_Odm->DebugLevel)) { \
int __i; \ int __i; \
pu8 __ptr = (pu8)ptr; \ u8 *__ptr = (u8 *)ptr; \
DbgPrint("[ODM] "); \ DbgPrint("[ODM] "); \
DbgPrint(title_str); \ DbgPrint(title_str); \
DbgPrint(" "); \ DbgPrint(" "); \
for ( __i=0; __i<6; __i++ ) \ for (__i = 0; __i < 6; __i++) \
DbgPrint("%02X%s", __ptr[__i], (__i==5)?"":"-"); \ DbgPrint("%02X%s", __ptr[__i], (__i==5)?"":"-");\
DbgPrint("\n"); \ DbgPrint("\n"); \
} }
#else #else

View file

@ -51,37 +51,31 @@ ODM_REG(DIG,_pDM_Odm)
#define _cat(_name, _ic_type, _func) \ #define _cat(_name, _ic_type, _func) \
( \ ( \
((_ic_type) & ODM_IC_11N_SERIES)? _func##_11N(_name): \ ((_ic_type) & ODM_IC_11N_SERIES) ? _func##_11N(_name) : \
_func##_11AC(_name) \ _func##_11AC(_name) \
) )
/* _name: name of register or bit. */ /* _name: name of register or bit. */
/* Example: "ODM_REG(R_A_AGC_CORE1, pDM_Odm)" */ /* Example: "ODM_REG(R_A_AGC_CORE1, pDM_Odm)" */
/* gets "ODM_R_A_AGC_CORE1" or "ODM_R_A_AGC_CORE1_8192C", depends on SupportICType. */ /* gets "ODM_R_A_AGC_CORE1" or "ODM_R_A_AGC_CORE1_8192C",
* depends on SupportICType. */
#define ODM_REG(_name, _pDM_Odm) _cat(_name, _pDM_Odm->SupportICType, _reg) #define ODM_REG(_name, _pDM_Odm) _cat(_name, _pDM_Odm->SupportICType, _reg)
#define ODM_BIT(_name, _pDM_Odm) _cat(_name, _pDM_Odm->SupportICType, _bit) #define ODM_BIT(_name, _pDM_Odm) _cat(_name, _pDM_Odm->SupportICType, _bit)
enum odm_h2c_cmd { enum odm_h2c_cmd {
ODM_H2C_RSSI_REPORT = 0, ODM_H2C_RSSI_REPORT = 0,
ODM_H2C_PSD_RESULT=1, ODM_H2C_PSD_RESULT= 1,
ODM_H2C_PathDiv = 2, ODM_H2C_PathDiv = 2,
ODM_MAX_H2CCMD ODM_MAX_H2CCMD
}; };
/* */
/* 2012/02/17 MH For non-MP compile pass only. Linux does not support workitem. */ /* 2012/02/17 MH For non-MP compile pass only. Linux does not support workitem. */
/* Suggest HW team to use thread instead of workitem. Windows also support the feature. */ /* Suggest HW team to use thread instead of workitem. Windows also support the feature. */
/* */ typedef void (*RT_WORKITEM_CALL_BACK)(void *pContext);
typedef void (*RT_WORKITEM_CALL_BACK)(void * pContext);
/* */
/* =========== Extern Variable ??? It should be forbidden. */ /* =========== Extern Variable ??? It should be forbidden. */
/* */
/* */
/* =========== EXtern Function Prototype */ /* =========== EXtern Function Prototype */
/* */
u8 ODM_Read1Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr); u8 ODM_Read1Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr);
@ -95,36 +89,37 @@ void ODM_Write2Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u16 Data);
void ODM_Write4Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 Data); void ODM_Write4Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 Data);
void ODM_SetMACReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 BitMask, u32 Data); void ODM_SetMACReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr,
u32 BitMask, u32 Data);
u32 ODM_GetMACReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 BitMask); u32 ODM_GetMACReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 BitMask);
void ODM_SetBBReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 BitMask, u32 Data); void ODM_SetBBReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr,
u32 BitMask, u32 Data);
u32 ODM_GetBBReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 BitMask); u32 ODM_GetBBReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 BitMask);
void ODM_SetRFReg(struct odm_dm_struct *pDM_Odm, enum ODM_RF_RADIO_PATH eRFPath, u32 RegAddr, u32 BitMask, u32 Data); void ODM_SetRFReg(struct odm_dm_struct *pDM_Odm, enum ODM_RF_RADIO_PATH eRFPath,
u32 RegAddr, u32 BitMask, u32 Data);
u32 ODM_GetRFReg(struct odm_dm_struct *pDM_Odm, enum ODM_RF_RADIO_PATH eRFPath, u32 RegAddr, u32 BitMask); u32 ODM_GetRFReg(struct odm_dm_struct *pDM_Odm, enum ODM_RF_RADIO_PATH eRFPath,
u32 RegAddr, u32 BitMask);
/* */
/* Memory Relative Function. */ /* Memory Relative Function. */
/* */
void ODM_AllocateMemory(struct odm_dm_struct *pDM_Odm, void **pPtr, u32 length); void ODM_AllocateMemory(struct odm_dm_struct *pDM_Odm, void **pPtr, u32 length);
void ODM_FreeMemory(struct odm_dm_struct *pDM_Odm, void *pPtr, u32 length); void ODM_FreeMemory(struct odm_dm_struct *pDM_Odm, void *pPtr, u32 length);
s32 ODM_CompareMemory(struct odm_dm_struct *pDM_Odm, void *pBuf1, void *pBuf2, u32 length); s32 ODM_CompareMemory(struct odm_dm_struct *pDM_Odm, void *pBuf1, void *pBuf2,
u32 length);
/* */
/* ODM MISC-spin lock relative API. */ /* ODM MISC-spin lock relative API. */
/* */ void ODM_AcquireSpinLock(struct odm_dm_struct *pDM_Odm,
void ODM_AcquireSpinLock(struct odm_dm_struct *pDM_Odm, enum RT_SPINLOCK_TYPE type); enum RT_SPINLOCK_TYPE type);
void ODM_ReleaseSpinLock(struct odm_dm_struct *pDM_Odm, enum RT_SPINLOCK_TYPE type); void ODM_ReleaseSpinLock(struct odm_dm_struct *pDM_Odm,
enum RT_SPINLOCK_TYPE type);
/* */
/* ODM MISC-workitem relative API. */ /* ODM MISC-workitem relative API. */
/* */
void ODM_InitializeWorkItem(struct odm_dm_struct *pDM_Odm, void *pRtWorkItem, void ODM_InitializeWorkItem(struct odm_dm_struct *pDM_Odm, void *pRtWorkItem,
RT_WORKITEM_CALL_BACK RtWorkItemCallback, RT_WORKITEM_CALL_BACK RtWorkItemCallback,
void *pContext, const char *szID); void *pContext, const char *szID);
@ -139,9 +134,7 @@ void ODM_ScheduleWorkItem(void *pRtWorkItem);
void ODM_IsWorkItemScheduled(void *pRtWorkItem); void ODM_IsWorkItemScheduled(void *pRtWorkItem);
/* */
/* ODM Timer relative API. */ /* ODM Timer relative API. */
/* */
void ODM_StallExecution(u32 usDelay); void ODM_StallExecution(u32 usDelay);
void ODM_delay_ms(u32 ms); void ODM_delay_ms(u32 ms);
@ -152,17 +145,20 @@ void ODM_sleep_ms(u32 ms);
void ODM_sleep_us(u32 us); void ODM_sleep_us(u32 us);
void ODM_SetTimer(struct odm_dm_struct *pDM_Odm, struct timer_list *pTimer, u32 msDelay); void ODM_SetTimer(struct odm_dm_struct *pDM_Odm, struct timer_list *pTimer,
u32 msDelay);
void ODM_InitializeTimer(struct odm_dm_struct *pDM_Odm, struct timer_list *pTimer, void *CallBackFunc, void *pContext, const char *szID); void ODM_InitializeTimer(struct odm_dm_struct *pDM_Odm,
struct timer_list *pTimer, void *CallBackFunc,
void *pContext, const char *szID);
void ODM_CancelTimer(struct odm_dm_struct *pDM_Odm, struct timer_list *pTimer); void ODM_CancelTimer(struct odm_dm_struct *pDM_Odm, struct timer_list *pTimer);
void ODM_ReleaseTimer(struct odm_dm_struct *pDM_Odm, struct timer_list *pTimer); void ODM_ReleaseTimer(struct odm_dm_struct *pDM_Odm, struct timer_list *pTimer);
/* */
/* ODM FW relative API. */ /* ODM FW relative API. */
/* */ u32 ODM_FillH2CCmd(u8 *pH2CBuffer, u32 H2CBufferLen, u32 CmdNum,
u32 ODM_FillH2CCmd(u8 *pH2CBuffer, u32 H2CBufferLen, u32 CmdNum, u32 *pElementID, u32 *pCmdLen, u8 **pCmbBuffer, u8 *CmdStartSeq); u32 *pElementID, u32 *pCmdLen, u8 **pCmbBuffer,
u8 *CmdStartSeq);
#endif /* __ODM_INTERFACE_H__ */ #endif /* __ODM_INTERFACE_H__ */

View file

@ -38,16 +38,19 @@ enum HAL_STATUS {
}; };
enum RT_SPINLOCK_TYPE { enum RT_SPINLOCK_TYPE {
RT_TEMP =1, RT_TEMP = 1,
}; };
#include <basic_types.h> #include <basic_types.h>
#define DEV_BUS_TYPE RT_USB_INTERFACE #define DEV_BUS_TYPE RT_USB_INTERFACE
#define SET_TX_DESC_ANTSEL_A_88E(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 24, 1, __Value) #define SET_TX_DESC_ANTSEL_A_88E(__pTxDesc, __Value) \
#define SET_TX_DESC_ANTSEL_B_88E(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 25, 1, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 24, 1, __Value)
#define SET_TX_DESC_ANTSEL_C_88E(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+28, 29, 1, __Value) #define SET_TX_DESC_ANTSEL_B_88E(__pTxDesc, __Value) \
SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 25, 1, __Value)
#define SET_TX_DESC_ANTSEL_C_88E(__pTxDesc, __Value) \
SET_BITS_TO_LE_4BYTE(__pTxDesc+28, 29, 1, __Value)
/* define useless flag to avoid compile warning */ /* define useless flag to avoid compile warning */
#define USE_WORKITEM 0 #define USE_WORKITEM 0

View file

@ -25,14 +25,13 @@
#include <drv_types.h> #include <drv_types.h>
struct intf_priv { struct intf_priv {
u8 *intf_dev; u8 *intf_dev;
u32 max_iosz; /* USB2.0: 128, USB1.1: 64, SDIO:64 */ u32 max_iosz; /* USB2.0: 128, USB1.1: 64, SDIO:64 */
u32 max_xmitsz; /* USB2.0: unlimited, SDIO:512 */ u32 max_xmitsz; /* USB2.0: unlimited, SDIO:512 */
u32 max_recvsz; /* USB2.0: unlimited, SDIO:512 */ u32 max_recvsz; /* USB2.0: unlimited, SDIO:512 */
volatile u8 *io_rwmem; u8 *io_rwmem;
volatile u8 *allocated_io_rwmem; u8 *allocated_io_rwmem;
u32 io_wsz; /* unit: 4bytes */ u32 io_wsz; /* unit: 4bytes */
u32 io_rsz;/* unit: 4bytes */ u32 io_rsz;/* unit: 4bytes */
u8 intf_status; u8 intf_status;
@ -49,7 +48,7 @@ The protection mechanism is through the pending queue.
struct mutex ioctl_mutex; struct mutex ioctl_mutex;
/* when in USB, IO is through interrupt in/out endpoints */ /* when in USB, IO is through interrupt in/out endpoints */
struct usb_device *udev; struct usb_device *udev;
struct urb * piorw_urb; struct urb *piorw_urb;
u8 io_irp_cnt; u8 io_irp_cnt;
u8 bio_irp_pending; u8 bio_irp_pending;
struct semaphore io_retevt; struct semaphore io_retevt;
@ -74,9 +73,9 @@ int rtw_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
int rtw_init_netdev_name(struct net_device *pnetdev, const char *ifname); int rtw_init_netdev_name(struct net_device *pnetdev, const char *ifname);
struct net_device *rtw_init_netdev(struct adapter *padapter); struct net_device *rtw_init_netdev(struct adapter *padapter);
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,35)) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35))
u16 rtw_recv_select_queue(struct sk_buff *skb); u16 rtw_recv_select_queue(struct sk_buff *skb);
#endif /* LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,35) */ #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35) */
void rtw_proc_init_one(struct net_device *dev); void rtw_proc_init_one(struct net_device *dev);
void rtw_proc_remove_one(struct net_device *dev); void rtw_proc_remove_one(struct net_device *dev);
@ -85,7 +84,7 @@ void rtw_ips_dev_unload(struct adapter *padapter);
int rtw_ips_pwr_up(struct adapter *padapter); int rtw_ips_pwr_up(struct adapter *padapter);
void rtw_ips_pwr_down(struct adapter *padapter); void rtw_ips_pwr_down(struct adapter *padapter);
int rtw_hw_suspend(struct adapter *padapter ); int rtw_hw_suspend(struct adapter *padapter);
int rtw_hw_resume(struct adapter *padapter); int rtw_hw_resume(struct adapter *padapter);
#endif /* _OSDEP_INTF_H_ */ #endif /* _OSDEP_INTF_H_ */

View file

@ -34,21 +34,17 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/module.h> #include <linux/module.h>
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,5)) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 5))
#include <linux/kref.h> #include <linux/kref.h>
#endif #endif
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/skbuff.h> #include <linux/skbuff.h>
#include <linux/circ_buf.h> #include <linux/circ_buf.h>
#include <asm/uaccess.h> #include <linux/uaccess.h>
#include <asm/byteorder.h> #include <asm/byteorder.h>
#include <asm/atomic.h> #include <linux/atomic.h>
#include <asm/io.h> #include <linux/io.h>
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26))
#include <asm/semaphore.h>
#else
#include <linux/semaphore.h> #include <linux/semaphore.h>
#endif
#include <linux/sem.h> #include <linux/sem.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/etherdevice.h> #include <linux/etherdevice.h>
@ -63,24 +59,23 @@
#include <linux/kthread.h> #include <linux/kthread.h>
#include <linux/usb.h> #include <linux/usb.h>
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) #if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 21))
#include <linux/usb_ch9.h> #include <linux/usb_ch9.h>
#else #else
#include <linux/usb/ch9.h> #include <linux/usb/ch9.h>
#endif #endif
struct __queue {
struct __queue {
struct list_head queue; struct list_head queue;
spinlock_t lock; spinlock_t lock;
}; };
#define thread_exit() complete_and_exit(NULL, 0) #define thread_exit() complete_and_exit(NULL, 0)
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) #if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24))
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1)) #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
#endif #endif
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)) #if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 22))
/* Porting from linux kernel, for compatible with old kernel. */ /* Porting from linux kernel, for compatible with old kernel. */
static inline unsigned char *skb_tail_pointer(const struct sk_buff *skb) static inline unsigned char *skb_tail_pointer(const struct sk_buff *skb)
{ {
@ -103,12 +98,12 @@ static inline unsigned char *skb_end_pointer(const struct sk_buff *skb)
} }
#endif #endif
__inline static struct list_head *get_next(struct list_head *list) static inline struct list_head *get_next(struct list_head *list)
{ {
return list->next; return list->next;
} }
__inline static struct list_head *get_list_head(struct __queue *queue) static inline struct list_head *get_list_head(struct __queue *queue)
{ {
return (&(queue->queue)); return (&(queue->queue));
} }
@ -118,37 +113,37 @@ __inline static struct list_head *get_list_head(struct __queue *queue)
((type *)((char *)(ptr)-(size_t)(&((type *)0)->member))) ((type *)((char *)(ptr)-(size_t)(&((type *)0)->member)))
__inline static void _enter_critical(spinlock_t *plock, unsigned long *pirqL) static inline void _enter_critical(spinlock_t *plock, unsigned long *pirqL)
{ {
spin_lock_irqsave(plock, *pirqL); spin_lock_irqsave(plock, *pirqL);
} }
__inline static void _exit_critical(spinlock_t *plock, unsigned long *pirqL) static inline void _exit_critical(spinlock_t *plock, unsigned long *pirqL)
{ {
spin_unlock_irqrestore(plock, *pirqL); spin_unlock_irqrestore(plock, *pirqL);
} }
__inline static void _enter_critical_ex(spinlock_t *plock, unsigned long *pirqL) static inline void _enter_critical_ex(spinlock_t *plock, unsigned long *pirqL)
{ {
spin_lock_irqsave(plock, *pirqL); spin_lock_irqsave(plock, *pirqL);
} }
__inline static void _exit_critical_ex(spinlock_t *plock, unsigned long *pirqL) static inline void _exit_critical_ex(spinlock_t *plock, unsigned long *pirqL)
{ {
spin_unlock_irqrestore(plock, *pirqL); spin_unlock_irqrestore(plock, *pirqL);
} }
__inline static void _enter_critical_bh(spinlock_t *plock, unsigned long *pirqL) static inline void _enter_critical_bh(spinlock_t *plock, unsigned long *pirqL)
{ {
spin_lock_bh(plock); spin_lock_bh(plock);
} }
__inline static void _exit_critical_bh(spinlock_t *plock, unsigned long *pirqL) static inline void _exit_critical_bh(spinlock_t *plock, unsigned long *pirqL)
{ {
spin_unlock_bh(plock); spin_unlock_bh(plock);
} }
__inline static int _enter_critical_mutex(struct mutex *pmutex, unsigned long *pirqL) static inline int _enter_critical_mutex(struct mutex *pmutex, unsigned long *pirqL)
{ {
int ret = 0; int ret = 0;
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
@ -160,7 +155,7 @@ __inline static int _enter_critical_mutex(struct mutex *pmutex, unsigned long *p
} }
__inline static void _exit_critical_mutex(struct mutex *pmutex, unsigned long *pirqL) static inline void _exit_critical_mutex(struct mutex *pmutex, unsigned long *pirqL)
{ {
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
mutex_unlock(pmutex); mutex_unlock(pmutex);
@ -169,24 +164,24 @@ __inline static void _exit_critical_mutex(struct mutex *pmutex, unsigned long *p
#endif #endif
} }
__inline static void rtw_list_delete(struct list_head *plist) static inline void rtw_list_delete(struct list_head *plist)
{ {
list_del_init(plist); list_del_init(plist);
} }
__inline static void _init_timer(struct timer_list *ptimer,struct net_device *nic_hdl,void *pfunc,void* cntx) static inline void _init_timer(struct timer_list *ptimer,struct net_device *nic_hdl,void *pfunc,void* cntx)
{ {
ptimer->function = pfunc; ptimer->function = pfunc;
ptimer->data = (unsigned long)cntx; ptimer->data = (unsigned long)cntx;
init_timer(ptimer); init_timer(ptimer);
} }
__inline static void _set_timer(struct timer_list *ptimer,u32 delay_time) static inline void _set_timer(struct timer_list *ptimer,u32 delay_time)
{ {
mod_timer(ptimer , (jiffies+(delay_time*HZ/1000))); mod_timer(ptimer , (jiffies+(delay_time*HZ/1000)));
} }
__inline static void _cancel_timer(struct timer_list *ptimer,u8 *bcancelled) static inline void _cancel_timer(struct timer_list *ptimer,u8 *bcancelled)
{ {
del_timer_sync(ptimer); del_timer_sync(ptimer);
*bcancelled= true;/* true ==1; false==0 */ *bcancelled= true;/* true ==1; false==0 */
@ -196,7 +191,7 @@ __inline static void _cancel_timer(struct timer_list *ptimer,u8 *bcancelled)
#define RTW_TIMER_HDL_NAME(name) rtw_##name##_timer_hdl #define RTW_TIMER_HDL_NAME(name) rtw_##name##_timer_hdl
#define RTW_DECLARE_TIMER_HDL(name) void RTW_TIMER_HDL_NAME(name)(RTW_TIMER_HDL_ARGS) #define RTW_DECLARE_TIMER_HDL(name) void RTW_TIMER_HDL_NAME(name)(RTW_TIMER_HDL_ARGS)
__inline static void _init_workitem(struct work_struct *pwork, void *pfunc, void * cntx) static inline void _init_workitem(struct work_struct *pwork, void *pfunc, void * cntx)
{ {
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20))
INIT_WORK(pwork, pfunc); INIT_WORK(pwork, pfunc);
@ -205,12 +200,12 @@ __inline static void _init_workitem(struct work_struct *pwork, void *pfunc, void
#endif #endif
} }
__inline static void _set_workitem(struct work_struct *pwork) static inline void _set_workitem(struct work_struct *pwork)
{ {
schedule_work(pwork); schedule_work(pwork);
} }
__inline static void _cancel_workitem_sync(struct work_struct *pwork) static inline void _cancel_workitem_sync(struct work_struct *pwork)
{ {
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,22)) #if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,22))
cancel_work_sync(pwork); cancel_work_sync(pwork);
@ -401,7 +396,7 @@ extern void rtw_udelay_os(int us);
extern void rtw_yield_os(void); extern void rtw_yield_os(void);
__inline static unsigned char _cancel_timer_ex(struct timer_list *ptimer) static inline unsigned char _cancel_timer_ex(struct timer_list *ptimer)
{ {
return del_timer_sync(ptimer); return del_timer_sync(ptimer);
} }
@ -414,13 +409,13 @@ static __inline void thread_enter(char *name)
allow_signal(SIGTERM); allow_signal(SIGTERM);
} }
__inline static void flush_signals_thread(void) static inline void flush_signals_thread(void)
{ {
if (signal_pending (current)) if (signal_pending (current))
flush_signals(current); flush_signals(current);
} }
__inline static int res_to_status(int res) static inline int res_to_status(int res)
{ {
return res; return res;
} }
@ -428,7 +423,7 @@ __inline static int res_to_status(int res)
#define _RND(sz, r) ((((sz)+((r)-1))/(r))*(r)) #define _RND(sz, r) ((((sz)+((r)-1))/(r))*(r))
#define RND4(x) (((x >> 2) + (((x & 3) == 0) ? 0: 1)) << 2) #define RND4(x) (((x >> 2) + (((x & 3) == 0) ? 0: 1)) << 2)
__inline static u32 _RND4(u32 sz) static inline u32 _RND4(u32 sz)
{ {
u32 val; u32 val;
@ -436,7 +431,7 @@ __inline static u32 _RND4(u32 sz)
return val; return val;
} }
__inline static u32 _RND8(u32 sz) static inline u32 _RND8(u32 sz)
{ {
u32 val; u32 val;
@ -444,7 +439,7 @@ __inline static u32 _RND8(u32 sz)
return val; return val;
} }
__inline static u32 _RND128(u32 sz) static inline u32 _RND128(u32 sz)
{ {
u32 val; u32 val;
@ -452,7 +447,7 @@ __inline static u32 _RND128(u32 sz)
return val; return val;
} }
__inline static u32 _RND256(u32 sz) static inline u32 _RND256(u32 sz)
{ {
u32 val; u32 val;
@ -460,7 +455,7 @@ __inline static u32 _RND256(u32 sz)
return val; return val;
} }
__inline static u32 _RND512(u32 sz) static inline u32 _RND512(u32 sz)
{ {
u32 val; u32 val;
@ -468,7 +463,7 @@ __inline static u32 _RND512(u32 sz)
return val; return val;
} }
__inline static u32 bitshift(u32 bitmask) static inline u32 bitshift(u32 bitmask)
{ {
u32 i; u32 i;
@ -477,47 +472,47 @@ __inline static u32 bitshift(u32 bitmask)
return i; return i;
} }
#define STRUCT_PACKED __attribute__ ((packed))
/* limitation of path length */ /* limitation of path length */
#define PATH_LENGTH_MAX PATH_MAX #define PATH_LENGTH_MAX PATH_MAX
extern void rtw_suspend_lock_init(void); void rtw_suspend_lock_init(void);
extern void rtw_suspend_lock_uninit(void); void rtw_suspend_lock_uninit(void);
extern void rtw_lock_suspend(void); void rtw_lock_suspend(void);
extern void rtw_unlock_suspend(void); void rtw_unlock_suspend(void);
#ifdef CONFIG_WOWLAN #ifdef CONFIG_WOWLAN
extern void rtw_lock_suspend_timeout(long timeout); void rtw_lock_suspend_timeout(long timeout);
#endif /* CONFIG_WOWLAN */ #endif /* CONFIG_WOWLAN */
/* Atomic integer operations */ /* Atomic integer operations */
#define ATOMIC_T atomic_t #define ATOMIC_T atomic_t
extern void ATOMIC_SET(ATOMIC_T *v, int i); void ATOMIC_SET(ATOMIC_T *v, int i);
extern int ATOMIC_READ(ATOMIC_T *v); int ATOMIC_READ(ATOMIC_T *v);
extern void ATOMIC_ADD(ATOMIC_T *v, int i); void ATOMIC_ADD(ATOMIC_T *v, int i);
extern void ATOMIC_SUB(ATOMIC_T *v, int i); void ATOMIC_SUB(ATOMIC_T *v, int i);
extern void ATOMIC_INC(ATOMIC_T *v); void ATOMIC_INC(ATOMIC_T *v);
extern void ATOMIC_DEC(ATOMIC_T *v); void ATOMIC_DEC(ATOMIC_T *v);
extern int ATOMIC_ADD_RETURN(ATOMIC_T *v, int i); int ATOMIC_ADD_RETURN(ATOMIC_T *v, int i);
extern int ATOMIC_SUB_RETURN(ATOMIC_T *v, int i); int ATOMIC_SUB_RETURN(ATOMIC_T *v, int i);
extern int ATOMIC_INC_RETURN(ATOMIC_T *v); int ATOMIC_INC_RETURN(ATOMIC_T *v);
extern int ATOMIC_DEC_RETURN(ATOMIC_T *v); int ATOMIC_DEC_RETURN(ATOMIC_T *v);
/* File operation APIs, just for linux now */ /* File operation APIs, just for linux now */
extern int rtw_is_file_readable(char *path); int rtw_is_file_readable(char *path);
extern int rtw_retrive_from_file(char *path, u8 __user *buf, u32 sz); int rtw_retrive_from_file(char *path, u8 __user *buf, u32 sz);
extern int rtw_store_to_file(char *path, u8 __user *buf, u32 sz); int rtw_store_to_file(char *path, u8 __user *buf, u32 sz);
struct rtw_netdev_priv_indicator { struct rtw_netdev_priv_indicator {
void *priv; void *priv;
u32 sizeof_priv; u32 sizeof_priv;
}; };
struct net_device *rtw_alloc_etherdev_with_old_priv(int sizeof_priv, void *old_priv); struct net_device *rtw_alloc_etherdev_with_old_priv(int sizeof_priv,
extern struct net_device * rtw_alloc_etherdev(int sizeof_priv); void *old_priv);
struct net_device *rtw_alloc_etherdev(int sizeof_priv);
#define rtw_netdev_priv(netdev) ( ((struct rtw_netdev_priv_indicator *)netdev_priv(netdev))->priv ) #define rtw_netdev_priv(netdev) \
extern void rtw_free_netdev(struct net_device * netdev); (((struct rtw_netdev_priv_indicator *)netdev_priv(netdev))->priv)
void rtw_free_netdev(struct net_device *netdev);
#define NDEV_FMT "%s" #define NDEV_FMT "%s"
#define NDEV_ARG(ndev) ndev->name #define NDEV_ARG(ndev) ndev->name
@ -534,8 +529,8 @@ extern void rtw_free_netdev(struct net_device * netdev);
#define rtw_signal_process(pid, sig) kill_proc((pid), (sig), 1) #define rtw_signal_process(pid, sig) kill_proc((pid), (sig), 1)
#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)) */ #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)) */
extern u64 rtw_modular64(u64 x, u64 y); u64 rtw_modular64(u64 x, u64 y);
extern u64 rtw_division64(u64 x, u64 y); u64 rtw_division64(u64 x, u64 y);
/* Macros for handling unaligned memory accesses */ /* Macros for handling unaligned memory accesses */

View file

@ -24,29 +24,26 @@
#include <drv_types.h> #include <drv_types.h>
extern int _rtw_init_recv_priv(struct recv_priv *precvpriv, struct adapter *padapter); int _rtw_init_recv_priv(struct recv_priv *precvpriv, struct adapter *padapter);
extern void _rtw_free_recv_priv (struct recv_priv *precvpriv); void _rtw_free_recv_priv(struct recv_priv *precvpriv);
extern s32 rtw_recv_entry(union recv_frame *precv_frame); s32 rtw_recv_entry(union recv_frame *precv_frame);
extern int rtw_recv_indicatepkt(struct adapter *adapter, union recv_frame *precv_frame); int rtw_recv_indicatepkt(struct adapter *adapter, union recv_frame *recv_frame);
extern void rtw_recv_returnpacket(struct net_device *cnxt, struct sk_buff *preturnedpkt); void rtw_recv_returnpacket(struct net_device *cnxt, struct sk_buff *retpkt);
extern void rtw_hostapd_mlme_rx(struct adapter *padapter, union recv_frame *precv_frame);
extern void rtw_handle_tkip_mic_err(struct adapter *padapter,u8 bgroup);
void rtw_hostapd_mlme_rx(struct adapter *padapter, union recv_frame *recv_fr);
void rtw_handle_tkip_mic_err(struct adapter *padapter, u8 bgroup);
int rtw_init_recv_priv(struct recv_priv *precvpriv, struct adapter *padapter); int rtw_init_recv_priv(struct recv_priv *precvpriv, struct adapter *padapter);
void rtw_free_recv_priv (struct recv_priv *precvpriv); void rtw_free_recv_priv(struct recv_priv *precvpriv);
int rtw_os_recv_resource_init(struct recv_priv *recvpr, struct adapter *adapt);
int rtw_os_recv_resource_init(struct recv_priv *precvpriv, struct adapter *padapter); int rtw_os_recv_resource_alloc(struct adapter *adapt, union recv_frame *recvfr);
int rtw_os_recv_resource_alloc(struct adapter *padapter, union recv_frame *precvframe);
void rtw_os_recv_resource_free(struct recv_priv *precvpriv); void rtw_os_recv_resource_free(struct recv_priv *precvpriv);
int rtw_os_recvbuf_resource_alloc(struct adapter *adapt, struct recv_buf *buf);
int rtw_os_recvbuf_resource_alloc(struct adapter *padapter, struct recv_buf *precvbuf); int rtw_os_recvbuf_resource_free(struct adapter *adapt, struct recv_buf *buf);
int rtw_os_recvbuf_resource_free(struct adapter *padapter, struct recv_buf *precvbuf);
void rtw_os_read_port(struct adapter *padapter, struct recv_buf *precvbuf); void rtw_os_read_port(struct adapter *padapter, struct recv_buf *precvbuf);
@ -56,5 +53,4 @@ int _netdev_open(struct net_device *pnetdev);
int netdev_open(struct net_device *pnetdev); int netdev_open(struct net_device *pnetdev);
static int netdev_close(struct net_device *pnetdev); static int netdev_close(struct net_device *pnetdev);
#endif /* */ #endif /* */

View file

@ -22,46 +22,46 @@
enum RTL8188E_H2C_CMD_ID { enum RTL8188E_H2C_CMD_ID {
/* Class Common */ /* Class Common */
H2C_COM_RSVD_PAGE =0x00, H2C_COM_RSVD_PAGE = 0x00,
H2C_COM_MEDIA_STATUS_RPT =0x01, H2C_COM_MEDIA_STATUS_RPT = 0x01,
H2C_COM_SCAN =0x02, H2C_COM_SCAN = 0x02,
H2C_COM_KEEP_ALIVE =0x03, H2C_COM_KEEP_ALIVE = 0x03,
H2C_COM_DISCNT_DECISION =0x04, H2C_COM_DISCNT_DECISION = 0x04,
#ifndef CONFIG_WOWLAN #ifndef CONFIG_WOWLAN
H2C_COM_WWLAN =0x05, H2C_COM_WWLAN = 0x05,
#endif #endif
H2C_COM_INIT_OFFLOAD =0x06, H2C_COM_INIT_OFFLOAD = 0x06,
H2C_COM_REMOTE_WAKE_CTL =0x07, H2C_COM_REMOTE_WAKE_CTL = 0x07,
H2C_COM_AP_OFFLOAD =0x08, H2C_COM_AP_OFFLOAD = 0x08,
H2C_COM_BCN_RSVD_PAGE =0x09, H2C_COM_BCN_RSVD_PAGE = 0x09,
H2C_COM_PROB_RSP_RSVD_PAGE =0x0A, H2C_COM_PROB_RSP_RSVD_PAGE = 0x0A,
/* Class PS */ /* Class PS */
H2C_PS_PWR_MODE =0x20, H2C_PS_PWR_MODE = 0x20,
H2C_PS_TUNE_PARA =0x21, H2C_PS_TUNE_PARA = 0x21,
H2C_PS_TUNE_PARA_2 =0x22, H2C_PS_TUNE_PARA_2 = 0x22,
H2C_PS_LPS_PARA =0x23, H2C_PS_LPS_PARA = 0x23,
H2C_PS_P2P_OFFLOAD =0x24, H2C_PS_P2P_OFFLOAD = 0x24,
/* Class DM */ /* Class DM */
H2C_DM_MACID_CFG =0x40, H2C_DM_MACID_CFG = 0x40,
H2C_DM_TXBF =0x41, H2C_DM_TXBF = 0x41,
/* Class BT */ /* Class BT */
H2C_BT_COEX_MASK =0x60, H2C_BT_COEX_MASK = 0x60,
H2C_BT_COEX_GPIO_MODE =0x61, H2C_BT_COEX_GPIO_MODE = 0x61,
H2C_BT_DAC_SWING_VAL =0x62, H2C_BT_DAC_SWING_VAL = 0x62,
H2C_BT_PSD_RST =0x63, H2C_BT_PSD_RST = 0x63,
/* Class Remote WakeUp */ /* Class Remote WakeUp */
#ifdef CONFIG_WOWLAN #ifdef CONFIG_WOWLAN
H2C_COM_WWLAN =0x80, H2C_COM_WWLAN = 0x80,
H2C_COM_REMOTE_WAKE_CTRL =0x81, H2C_COM_REMOTE_WAKE_CTRL = 0x81,
H2C_COM_AOAC_GLOBAL_INFO =0x82, H2C_COM_AOAC_GLOBAL_INFO = 0x82,
#endif #endif
/* Class */ /* Class */
H2C_RESET_TSF =0xc0, H2C_RESET_TSF = 0xc0,
}; };
struct cmd_msg_parm { struct cmd_msg_parm {
@ -70,22 +70,22 @@ struct cmd_msg_parm {
u8 buf[6]; u8 buf[6];
}; };
enum{ enum {
PWRS PWRS
}; };
struct setpwrmode_parm { struct setpwrmode_parm {
u8 Mode;/* 0:Active,1:LPS,2:WMMPS */ u8 Mode;/* 0:Active,1:LPS,2:WMMPS */
u8 SmartPS_RLBM;/* LPS=0:PS_Poll,1:PS_Poll,2:NullData,WMM=0:PS_Poll,1:NullData */ u8 SmartPS_RLBM;/* LPS= 0:PS_Poll,1:PS_Poll,2:NullData,WMM= 0:PS_Poll,1:NullData */
u8 AwakeInterval; /* unit: beacon interval */ u8 AwakeInterval; /* unit: beacon interval */
u8 bAllQueueUAPSD; u8 bAllQueueUAPSD;
u8 PwrState;/* AllON(0x0c),RFON(0x04),RFOFF(0x00) */ u8 PwrState;/* AllON(0x0c),RFON(0x04),RFOFF(0x00) */
}; };
struct H2C_SS_RFOFF_PARAM{ struct H2C_SS_RFOFF_PARAM {
u8 ROFOn; /* 1: on, 0:off */ u8 ROFOn; /* 1: on, 0:off */
u16 gpio_period; /* unit: 1024 us */ u16 gpio_period; /* unit: 1024 us */
}__attribute__ ((packed)); } __packed;
struct joinbssrpt_parm { struct joinbssrpt_parm {
u8 OpMode; /* RT_MEDIA_STATUS */ u8 OpMode; /* RT_MEDIA_STATUS */
@ -117,22 +117,20 @@ struct P2P_PS_CTWPeriod_t {
u8 CTWPeriod; /* TU */ u8 CTWPeriod; /* TU */
}; };
/* host message to firmware cmd */ /* host message to firmware cmd */
void rtl8188e_set_FwPwrMode_cmd(struct adapter * padapter, u8 Mode); void rtl8188e_set_FwPwrMode_cmd(struct adapter *padapter, u8 Mode);
void rtl8188e_set_FwJoinBssReport_cmd(struct adapter * padapter, u8 mstatus); void rtl8188e_set_FwJoinBssReport_cmd(struct adapter *padapter, u8 mstatus);
u8 rtl8188e_set_rssi_cmd(struct adapter * padapter, u8 *param); u8 rtl8188e_set_rssi_cmd(struct adapter *padapter, u8 *param);
u8 rtl8188e_set_raid_cmd(struct adapter * padapter, u32 mask); u8 rtl8188e_set_raid_cmd(struct adapter *padapter, u32 mask);
void rtl8188e_Add_RateATid(struct adapter * padapter, u32 bitmap, u8 arg, u8 rssi_level); void rtl8188e_Add_RateATid(struct adapter *padapter, u32 bitmap, u8 arg,
/* u8 rtl8192c_set_FwSelectSuspend_cmd(struct adapter * padapter, u8 bfwpoll, u16 period); */ u8 rssi_level);
#ifdef CONFIG_P2P #ifdef CONFIG_P2P
void rtl8188e_set_p2p_ps_offload_cmd(struct adapter * padapter, u8 p2p_ps_state); void rtl8188e_set_p2p_ps_offload_cmd(struct adapter *adapt, u8 p2p_ps_state);
#endif /* CONFIG_P2P */ #endif /* CONFIG_P2P */
void CheckFwRsvdPageContent(struct adapter * padapter); void CheckFwRsvdPageContent(struct adapter *adapt);
void rtl8188e_set_FwMediaStatus_cmd(struct adapter * padapter, __le16 mstatus_rpt); void rtl8188e_set_FwMediaStatus_cmd(struct adapter *adapt, __le16 mstatus_rpt);
#ifdef CONFIG_WOWLAN #ifdef CONFIG_WOWLAN
struct setwowlan_parm { struct setwowlan_parm {
@ -162,8 +160,8 @@ struct setaoac_glocal_info {
#define FW_REMOTE_WAKE_CTRL_EN BIT(0) #define FW_REMOTE_WAKE_CTRL_EN BIT(0)
#define FW_REALWOWLAN_EN BIT(5) #define FW_REALWOWLAN_EN BIT(5)
void rtl8188es_set_wowlan_cmd(struct adapter* padapter, u8 enable); void rtl8188es_set_wowlan_cmd(struct adapter *adapt, u8 enable);
void SetFwRelatedForWoWLAN8188ES(struct adapter* padapter, u8 bHostIsGoingtoSleep); void SetFwRelatedForWoWLAN8188ES(struct adapter *adapt, u8 HostIsGoingtoSleep);
#endif/* CONFIG_WOWLAN */ #endif/* CONFIG_WOWLAN */
#endif/* __RTL8188E_CMD_H__ */ #endif/* __RTL8188E_CMD_H__ */

View file

@ -29,8 +29,7 @@ enum{
#define IQK_BB_REG_NUM 9 #define IQK_BB_REG_NUM 9
#define HP_THERMAL_NUM 8 #define HP_THERMAL_NUM 8
/* duplicate code,will move to ODM ######### */ /* duplicate code,will move to ODM ######### */
struct dm_priv struct dm_priv {
{
u8 DM_Type; u8 DM_Type;
u8 DMFlag; u8 DMFlag;
u8 InitDMFlag; u8 InitDMFlag;
@ -47,16 +46,17 @@ struct dm_priv
/* for High Power */ /* for High Power */
u8 bDynamicTxPowerEnable; u8 bDynamicTxPowerEnable;
u8 LastDTPLvl; u8 LastDTPLvl;
u8 DynamicTxHighPowerLvl;/* Add by Jacken Tx Power Control for Near/Far Range */ u8 DynamicTxHighPowerLvl;/* Tx Power Control for Near/Far Range */
u8 PowerIndex_backup[6]; u8 PowerIndex_backup[6];
}; };
void rtl8188e_init_dm_priv(struct adapter * Adapter); void rtl8188e_init_dm_priv(struct adapter *adapt);
void rtl8188e_deinit_dm_priv(struct adapter * Adapter); void rtl8188e_deinit_dm_priv(struct adapter *adapt);
void rtl8188e_InitHalDm(struct adapter * Adapter); void rtl8188e_InitHalDm(struct adapter *adapt);
void rtl8188e_HalDmWatchDog(struct adapter * Adapter); void rtl8188e_HalDmWatchDog(struct adapter *adapt);
void AntDivCompare8188E(struct adapter * Adapter, struct wlan_bssid_ex *dst, struct wlan_bssid_ex *src); void AntDivCompare8188E(struct adapter *adapt, struct wlan_bssid_ex *dst,
u8 AntDivBeforeLink8188E(struct adapter * Adapter ); struct wlan_bssid_ex *src);
u8 AntDivBeforeLink8188E(struct adapter *adapt);
#endif #endif

View file

@ -53,9 +53,7 @@
#define RTL8188E_PHY_REG_PG "rtl8188E\\PHY_REG_PG.txt" #define RTL8188E_PHY_REG_PG "rtl8188E\\PHY_REG_PG.txt"
#define RTL8188E_PHY_REG_MP "rtl8188E\\PHY_REG_MP.txt" #define RTL8188E_PHY_REG_MP "rtl8188E\\PHY_REG_MP.txt"
/* */
/* RTL8188E Power Configuration CMDs for USB/SDIO interfaces */ /* RTL8188E Power Configuration CMDs for USB/SDIO interfaces */
/* */
#define Rtl8188E_NIC_PWR_ON_FLOW rtl8188E_power_on_flow #define Rtl8188E_NIC_PWR_ON_FLOW rtl8188E_power_on_flow
#define Rtl8188E_NIC_RF_OFF_FLOW rtl8188E_radio_off_flow #define Rtl8188E_NIC_RF_OFF_FLOW rtl8188E_radio_off_flow
#define Rtl8188E_NIC_DISABLE_FLOW rtl8188E_card_disable_flow #define Rtl8188E_NIC_DISABLE_FLOW rtl8188E_card_disable_flow
@ -67,8 +65,7 @@
#define Rtl8188E_NIC_LPS_LEAVE_FLOW rtl8188E_leave_lps_flow #define Rtl8188E_NIC_LPS_LEAVE_FLOW rtl8188E_leave_lps_flow
#define DRVINFO_SZ 4 /* unit is 8bytes */ #define DRVINFO_SZ 4 /* unit is 8bytes */
#define PageNum_128(_Len) (u32)(((_Len)>>7) + ((_Len)&0x7F ? 1:0)) #define PageNum_128(_Len) (u32)(((_Len)>>7) + ((_Len) & 0x7F ? 1 : 0))
/* download firmware related data structure */ /* download firmware related data structure */
#define FW_8188E_SIZE 0x4000 /* 16384,16k */ #define FW_8188E_SIZE 0x4000 /* 16384,16k */
@ -77,9 +74,10 @@
#define MAX_PAGE_SIZE 4096 /* @ page : 4k bytes */ #define MAX_PAGE_SIZE 4096 /* @ page : 4k bytes */
#define IS_FW_HEADER_EXIST(_pFwHdr) ((le16_to_cpu(_pFwHdr->Signature)&0xFFF0) == 0x92C0 ||\ #define IS_FW_HEADER_EXIST(_pFwHdr) \
(le16_to_cpu(_pFwHdr->Signature)&0xFFF0) == 0x88C0 ||\ ((le16_to_cpu(_pFwHdr->Signature)&0xFFF0) == 0x92C0 || \
(le16_to_cpu(_pFwHdr->Signature)&0xFFF0) == 0x2300 ||\ (le16_to_cpu(_pFwHdr->Signature)&0xFFF0) == 0x88C0 || \
(le16_to_cpu(_pFwHdr->Signature)&0xFFF0) == 0x2300 || \
(le16_to_cpu(_pFwHdr->Signature)&0xFFF0) == 0x88E0) (le16_to_cpu(_pFwHdr->Signature)&0xFFF0) == 0x88E0)
enum firmware_source { enum firmware_source {
@ -89,11 +87,11 @@ enum firmware_source {
struct rt_firmware { struct rt_firmware {
enum firmware_source eFWSource; enum firmware_source eFWSource;
u8* szFwBuffer; u8 *szFwBuffer;
u32 ulFwLength; u32 ulFwLength;
#ifdef CONFIG_WOWLAN #ifdef CONFIG_WOWLAN
u8* szWoWLANFwBuffer; u8 *szWoWLANFwBuffer;
u32 ulWoWLANFwLength; u32 ulWoWLANFwLength;
#endif /* CONFIG_WOWLAN */ #endif /* CONFIG_WOWLAN */
}; };
@ -102,16 +100,19 @@ struct rt_firmware {
struct rt_firmware_hdr { struct rt_firmware_hdr {
/* 8-byte alinment required */ /* 8-byte alinment required */
/* LONG WORD 0 ---- */ /* LONG WORD 0 ---- */
__le16 Signature; /* 92C0: test chip; 92C, 88C0: test chip; 88C1: MP A-cut; 92C1: MP A-cut */ __le16 Signature; /* 92C0: test chip; 92C,
* 88C0: test chip; 88C1: MP A-cut;
* 92C1: MP A-cut */
u8 Category; /* AP/NIC and USB/PCI */ u8 Category; /* AP/NIC and USB/PCI */
u8 Function; /* Reserved for different FW function indcation, for further use when driver needs to download different FW in different conditions */ u8 Function; /* Reserved for different FW function
* indcation, for further use when
* driver needs to download different
* FW for different conditions */
__le16 Version; /* FW Version */ __le16 Version; /* FW Version */
u8 Subversion; /* FW Subversion, default 0x00 */ u8 Subversion; /* FW Subversion, default 0x00 */
u16 Rsvd1; u16 Rsvd1;
/* LONG WORD 1 ---- */ /* LONG WORD 1 ---- */
u8 Month; /* Release time Month field */ u8 Month; /* Release time Month field */
u8 Date; /* Release time Date field */ u8 Date; /* Release time Date field */
@ -140,7 +141,9 @@ enum usb_rx_agg_mode {
USB_RX_AGG_MIX USB_RX_AGG_MIX
}; };
#define MAX_RX_DMA_BUFFER_SIZE_88E 0x2400 /* 9k for 88E nornal chip , MaxRxBuff=10k-max(TxReportSize(64*8), WOLPattern(16*24)) */ #define MAX_RX_DMA_BUFFER_SIZE_88E \
0x2400 /* 9k for 88E nornal chip , MaxRxBuff=10k-max(TxReportSize(64*8),
* WOLPattern(16*24)) */
#define MAX_TX_REPORT_BUFFER_SIZE 0x0400 /* 1k */ #define MAX_TX_REPORT_BUFFER_SIZE 0x0400 /* 1k */
@ -152,22 +155,24 @@ enum usb_rx_agg_mode {
#define TX_SELE_LQ BIT(1) /* Low Queue */ #define TX_SELE_LQ BIT(1) /* Low Queue */
#define TX_SELE_NQ BIT(2) /* Normal Queue */ #define TX_SELE_NQ BIT(2) /* Normal Queue */
/* Note: We will divide number of page equally for each queue other than public queue! */ /* Note: We will divide number of page equally for each queue other
* than public queue! */
/* 22k = 22528 bytes = 176 pages (@page = 128 bytes) */ /* 22k = 22528 bytes = 176 pages (@page = 128 bytes) */
/* must reserved about 7 pages for LPS => 176-7 = 169 (0xA9) */ /* must reserved about 7 pages for LPS => 176-7 = 169 (0xA9) */
/* 2*BCN / 1*ps-poll / 1*null-data /1*prob_rsp /1*QOS null-data /1*BT QOS null-data */ /* 2*BCN / 1*ps-poll / 1*null-data /1*prob_rsp /1*QOS null-data /1*BT QOS
* null-data */
#define TX_TOTAL_PAGE_NUMBER_88E 0xA9/* 169 (21632=> 21k) */ #define TX_TOTAL_PAGE_NUMBER_88E 0xA9/* 169 (21632=> 21k) */
#define TX_PAGE_BOUNDARY_88E (TX_TOTAL_PAGE_NUMBER_88E + 1) #define TX_PAGE_BOUNDARY_88E (TX_TOTAL_PAGE_NUMBER_88E + 1)
/* Note: For Normal Chip Setting ,modify later */ /* Note: For Normal Chip Setting ,modify later */
#define WMM_NORMAL_TX_TOTAL_PAGE_NUMBER TX_TOTAL_PAGE_NUMBER_88E /* 0xA9 , 0xb0=>176=>22k */ #define WMM_NORMAL_TX_TOTAL_PAGE_NUMBER \
#define WMM_NORMAL_TX_PAGE_BOUNDARY_88E (WMM_NORMAL_TX_TOTAL_PAGE_NUMBER + 1) /* 0xA9 */ TX_TOTAL_PAGE_NUMBER_88E /* 0xA9 , 0xb0=>176=>22k */
#define WMM_NORMAL_TX_PAGE_BOUNDARY_88E \
(WMM_NORMAL_TX_TOTAL_PAGE_NUMBER + 1) /* 0xA9 */
/* */
/* Chip specific */ /* Chip specific */
/* */
#define CHIP_BONDING_IDENTIFIER(_value) (((_value)>>22)&0x3) #define CHIP_BONDING_IDENTIFIER(_value) (((_value)>>22)&0x3)
#define CHIP_BONDING_92C_1T2R 0x1 #define CHIP_BONDING_92C_1T2R 0x1
#define CHIP_BONDING_88C_USB_MCARD 0x2 #define CHIP_BONDING_88C_USB_MCARD 0x2
@ -175,11 +180,8 @@ enum usb_rx_agg_mode {
#include "HalVerDef.h" #include "HalVerDef.h"
#include "hal_com.h" #include "hal_com.h"
/* */
/* Channel Plan */ /* Channel Plan */
/* */ enum ChannelPlan {
enum ChannelPlan
{
CHPL_FCC = 0, CHPL_FCC = 0,
CHPL_IC = 1, CHPL_IC = 1,
CHPL_ETSI = 2, CHPL_ETSI = 2,
@ -206,18 +208,17 @@ struct txpowerinfo24g {
#define EFUSE_REAL_CONTENT_LEN 512 #define EFUSE_REAL_CONTENT_LEN 512
#define EFUSE_MAP_LEN 128 #define EFUSE_MAP_LEN 128
#define EFUSE_MAX_SECTION 16 #define EFUSE_MAX_SECTION 16
#define EFUSE_IC_ID_OFFSET 506 /* For some inferiority IC purpose. added by Roger, 2009.09.02. */ #define EFUSE_IC_ID_OFFSET 506 /* For some inferior IC purpose*/
#define AVAILABLE_EFUSE_ADDR(addr) (addr < EFUSE_REAL_CONTENT_LEN) #define AVAILABLE_EFUSE_ADDR(addr) (addr < EFUSE_REAL_CONTENT_LEN)
/* */
/* <Roger_Notes> */
/* To prevent out of boundary programming case, */ /* To prevent out of boundary programming case, */
/* leave 1byte and program full section */ /* leave 1byte and program full section */
/* 9bytes + 1byt + 5bytes and pre 1byte. */ /* 9bytes + 1byt + 5bytes and pre 1byte. */
/* For worst case: */ /* For worst case: */
/* | 1byte|----8bytes----|1byte|--5bytes--| */ /* | 1byte|----8bytes----|1byte|--5bytes--| */
/* | | Reserved(14bytes) | */ /* | | Reserved(14bytes) | */
/* */
#define EFUSE_OOB_PROTECT_BYTES 15 /* PG data exclude header, dummy 6 bytes frome CP test and reserved 1byte. */ /* PG data exclude header, dummy 6 bytes frome CP test and reserved 1byte. */
#define EFUSE_OOB_PROTECT_BYTES 15
#define HWSET_MAX_SIZE_88E 512 #define HWSET_MAX_SIZE_88E 512
@ -225,28 +226,26 @@ struct txpowerinfo24g {
#define EFUSE_MAP_LEN_88E 512 #define EFUSE_MAP_LEN_88E 512
#define EFUSE_MAX_SECTION_88E 64 #define EFUSE_MAX_SECTION_88E 64
#define EFUSE_MAX_WORD_UNIT_88E 4 #define EFUSE_MAX_WORD_UNIT_88E 4
#define EFUSE_IC_ID_OFFSET_88E 506 /* For some inferiority IC purpose. added by Roger, 2009.09.02. */ #define EFUSE_IC_ID_OFFSET_88E 506
#define AVAILABLE_EFUSE_ADDR_88E(addr) (addr < EFUSE_REAL_CONTENT_LEN_88E) #define AVAILABLE_EFUSE_ADDR_88E(addr) \
/* <Roger_Notes> To prevent out of boundary programming case, leave 1byte and program full section */ (addr < EFUSE_REAL_CONTENT_LEN_88E)
/* To prevent out of boundary programming case, leave 1byte and program
* full section */
/* 9bytes + 1byt + 5bytes and pre 1byte. */ /* 9bytes + 1byt + 5bytes and pre 1byte. */
/* For worst case: */ /* For worst case: */
/* | 2byte|----8bytes----|1byte|--7bytes--| 92D */ /* | 2byte|----8bytes----|1byte|--7bytes--| 92D */
#define EFUSE_OOB_PROTECT_BYTES_88E 18 /* PG data exclude header, dummy 7 bytes frome CP test and reserved 1byte. */ /* PG data exclude header, dummy 7 bytes frome CP test and reserved 1byte. */
#define EFUSE_OOB_PROTECT_BYTES_88E 18
#define EFUSE_PROTECT_BYTES_BANK_88E 16 #define EFUSE_PROTECT_BYTES_BANK_88E 16
/* */
/* EFUSE for BT definition */ /* EFUSE for BT definition */
/* */
#define EFUSE_BT_REAL_CONTENT_LEN 1536 /* 512*3 */ #define EFUSE_BT_REAL_CONTENT_LEN 1536 /* 512*3 */
#define EFUSE_BT_MAP_LEN 1024 /* 1k bytes */ #define EFUSE_BT_MAP_LEN 1024 /* 1k bytes */
#define EFUSE_BT_MAX_SECTION 128 /* 1024/8 */ #define EFUSE_BT_MAX_SECTION 128 /* 1024/8 */
#define EFUSE_PROTECT_BYTES_BANK 16 #define EFUSE_PROTECT_BYTES_BANK 16
/* */ /* For RTL8723 WiFi/BT/GPS multi-function configuration. */
/* <Roger_Notes> For RTL8723 WiFi/BT/GPS multi-function configuration. 2010.10.06. */
/* */
enum rt_multi_func { enum rt_multi_func {
RT_MULTI_FUNC_NONE = 0x00, RT_MULTI_FUNC_NONE = 0x00,
RT_MULTI_FUNC_WIFI = 0x01, RT_MULTI_FUNC_WIFI = 0x01,
@ -254,9 +253,7 @@ enum rt_multi_func {
RT_MULTI_FUNC_GPS = 0x04, RT_MULTI_FUNC_GPS = 0x04,
}; };
/* */ /* For RTL8723 WiFi PDn/GPIO polarity control configuration. */
/* <Roger_Notes> For RTL8723 WiFi PDn/GPIO polarity control configuration. 2010.10.08. */
/* */
enum rt_polarity_ctl { enum rt_polarity_ctl {
RT_POLARITY_LOW_ACT = 0, RT_POLARITY_LOW_ACT = 0,
RT_POLARITY_HIGH_ACT = 1, RT_POLARITY_HIGH_ACT = 1,
@ -268,7 +265,6 @@ enum rt_regulator_mode {
RT_LDO_REGULATOR = 1, RT_LDO_REGULATOR = 1,
}; };
struct hal_data_8188e { struct hal_data_8188e {
struct HAL_VERSION VersionID; struct HAL_VERSION VersionID;
enum rt_multi_func MultiFunc; /* For multi-function consideration. */ enum rt_multi_func MultiFunc; /* For multi-function consideration. */
@ -297,9 +293,7 @@ struct hal_data_8188e {
u8 BoardType; u8 BoardType;
/* */
/* EEPROM setting. */ /* EEPROM setting. */
/* */
u16 EEPROMVID; u16 EEPROMVID;
u16 EEPROMPID; u16 EEPROMPID;
u16 EEPROMSVID; u16 EEPROMSVID;
@ -314,13 +308,11 @@ struct hal_data_8188e {
u8 bAPKThermalMeterIgnore; u8 bAPKThermalMeterIgnore;
bool EepromOrEfuse; bool EepromOrEfuse;
u8 EfuseMap[2][HWSET_MAX_SIZE_512]; /* 92C:256bytes, 88E:512bytes, we use union set (512bytes) */ /* 92C:256bytes, 88E:512bytes, we use union set (512bytes) */
u8 EfuseMap[2][HWSET_MAX_SIZE_512];
u8 EfuseUsedPercentage; u8 EfuseUsedPercentage;
struct efuse_hal EfuseHal; struct efuse_hal EfuseHal;
/* u8 bIQKInitialized; */
u8 Index24G_CCK_Base[MAX_RF_PATH][CHANNEL_MAX_NUMBER]; u8 Index24G_CCK_Base[MAX_RF_PATH][CHANNEL_MAX_NUMBER];
u8 Index24G_BW40_Base[MAX_RF_PATH][CHANNEL_MAX_NUMBER]; u8 Index24G_BW40_Base[MAX_RF_PATH][CHANNEL_MAX_NUMBER];
/* If only one tx, only BW20 and OFDM are used. */ /* If only one tx, only BW20 and OFDM are used. */
@ -330,10 +322,14 @@ struct hal_data_8188e {
s8 BW40_24G_Diff[MAX_RF_PATH][MAX_TX_COUNT]; s8 BW40_24G_Diff[MAX_RF_PATH][MAX_TX_COUNT];
u8 TxPwrLevelCck[RF_PATH_MAX][CHANNEL_MAX_NUMBER]; u8 TxPwrLevelCck[RF_PATH_MAX][CHANNEL_MAX_NUMBER];
u8 TxPwrLevelHT40_1S[RF_PATH_MAX][CHANNEL_MAX_NUMBER]; /* For HT 40MHZ pwr */ /* For HT 40MHZ pwr */
u8 TxPwrLevelHT40_2S[RF_PATH_MAX][CHANNEL_MAX_NUMBER]; /* For HT 40MHZ pwr */ u8 TxPwrLevelHT40_1S[RF_PATH_MAX][CHANNEL_MAX_NUMBER];
u8 TxPwrHt20Diff[RF_PATH_MAX][CHANNEL_MAX_NUMBER];/* HT 20<->40 Pwr diff */ /* For HT 40MHZ pwr */
u8 TxPwrLegacyHtDiff[RF_PATH_MAX][CHANNEL_MAX_NUMBER];/* For HT<->legacy pwr diff */ u8 TxPwrLevelHT40_2S[RF_PATH_MAX][CHANNEL_MAX_NUMBER];
/* HT 20<->40 Pwr diff */
u8 TxPwrHt20Diff[RF_PATH_MAX][CHANNEL_MAX_NUMBER];
/* For HT<->legacy pwr diff */
u8 TxPwrLegacyHtDiff[RF_PATH_MAX][CHANNEL_MAX_NUMBER];
/* For power group */ /* For power group */
u8 PwrGroupHT20[RF_PATH_MAX][CHANNEL_MAX_NUMBER]; u8 PwrGroupHT20[RF_PATH_MAX][CHANNEL_MAX_NUMBER];
u8 PwrGroupHT40[RF_PATH_MAX][CHANNEL_MAX_NUMBER]; u8 PwrGroupHT40[RF_PATH_MAX][CHANNEL_MAX_NUMBER];
@ -361,7 +357,7 @@ struct hal_data_8188e {
u8 BluetoothCoexist; u8 BluetoothCoexist;
u8 ExternalPA; u8 ExternalPA;
u8 bLedOpenDrain; /* Support Open-drain arrangement for controlling the LED. Added by Roger, 2009.10.16. */ u8 bLedOpenDrain; /* Open-drain support for controlling the LED.*/
u8 b1x1RecvCombine; /* for 1T1R receive combining */ u8 b1x1RecvCombine; /* for 1T1R receive combining */
@ -400,7 +396,8 @@ struct hal_data_8188e {
u8 bDumpRxPkt;/* for debug */ u8 bDumpRxPkt;/* for debug */
u8 bDumpTxPkt;/* for debug */ u8 bDumpTxPkt;/* for debug */
u8 FwRsvdPageStartOffset; /* 2010.06.23. Added by tynli. Reserve page start offset except beacon in TxQ. */ u8 FwRsvdPageStartOffset; /* Reserve page start offset except
* beacon in TxQ. */
/* 2010/08/09 MH Add CU power down mode. */ /* 2010/08/09 MH Add CU power down mode. */
bool pwrdown; bool pwrdown;
@ -411,11 +408,12 @@ struct hal_data_8188e {
u8 OutEpQueueSel; u8 OutEpQueueSel;
u8 OutEpNumber; u8 OutEpNumber;
/* 2010/12/10 MH Add for USB aggreation mode dynamic shceme. */ /* Add for USB aggreation mode dynamic shceme. */
bool UsbRxHighSpeedMode; bool UsbRxHighSpeedMode;
/* 2010/11/22 MH Add for slim combo debug mode selective. */ /* 2010/11/22 MH Add for slim combo debug mode selective. */
/* This is used for fix the drawback of CU TSMC-A/UMC-A cut. HW auto suspend ability. Close BT clock. */ /* This is used for fix the drawback of CU TSMC-A/UMC-A cut.
* HW auto suspend ability. Close BT clock. */
bool SlimComboDbg; bool SlimComboDbg;
u16 EfuseUsedBytes; u16 EfuseUsedBytes;
@ -424,7 +422,8 @@ struct hal_data_8188e {
struct P2P_PS_Offload_t p2p_ps_offload; struct P2P_PS_Offload_t p2p_ps_offload;
#endif #endif
/* Auto FSM to Turn On, include clock, isolation, power control for MAC only */ /* Auto FSM to Turn On, include clock, isolation, power control
* for MAC only */
u8 bMacPwrCtrlOn; u8 bMacPwrCtrlOn;
u32 UsbBulkOutSize; u32 UsbBulkOutSize;
@ -439,63 +438,77 @@ struct hal_data_8188e {
u32 MaxUsbRxAggBlock; u32 MaxUsbRxAggBlock;
enum usb_rx_agg_mode UsbRxAggMode; enum usb_rx_agg_mode UsbRxAggMode;
u8 UsbRxAggBlockCount; /* USB Block count. Block size is 512-byte in hight speed and 64-byte in full speed */ u8 UsbRxAggBlockCount; /* USB Block count. Block size is
* 512-byte in high speed and 64-byte
* in full speed */
u8 UsbRxAggBlockTimeout; u8 UsbRxAggBlockTimeout;
u8 UsbRxAggPageCount; /* 8192C DMA page count */ u8 UsbRxAggPageCount; /* 8192C DMA page count */
u8 UsbRxAggPageTimeout; u8 UsbRxAggPageTimeout;
}; };
#define GET_HAL_DATA(__pAdapter) ((struct hal_data_8188e *)((__pAdapter)->HalData)) #define GET_HAL_DATA(__pAdapter) \
((struct hal_data_8188e *)((__pAdapter)->HalData))
#define GET_RF_TYPE(priv) (GET_HAL_DATA(priv)->rf_type) #define GET_RF_TYPE(priv) (GET_HAL_DATA(priv)->rf_type)
#define INCLUDE_MULTI_FUNC_BT(_Adapter) (GET_HAL_DATA(_Adapter)->MultiFunc & RT_MULTI_FUNC_BT) #define INCLUDE_MULTI_FUNC_BT(_Adapter) \
#define INCLUDE_MULTI_FUNC_GPS(_Adapter) (GET_HAL_DATA(_Adapter)->MultiFunc & RT_MULTI_FUNC_GPS) (GET_HAL_DATA(_Adapter)->MultiFunc & RT_MULTI_FUNC_BT)
#define INCLUDE_MULTI_FUNC_GPS(_Adapter) \
(GET_HAL_DATA(_Adapter)->MultiFunc & RT_MULTI_FUNC_GPS)
/* rtl8188e_hal_init.c */ /* rtl8188e_hal_init.c */
#ifdef CONFIG_WOWLAN #ifdef CONFIG_WOWLAN
s32 rtl8188e_FirmwareDownload(struct adapter * padapter, bool bUsedWoWLANFw); s32 rtl8188e_FirmwareDownload(struct adapter *padapter, bool bUsedWoWLANFw);
#else #else
s32 rtl8188e_FirmwareDownload(struct adapter * padapter); s32 rtl8188e_FirmwareDownload(struct adapter *padapter);
#endif #endif
void _8051Reset88E(struct adapter * padapter); void _8051Reset88E(struct adapter *padapter);
void rtl8188e_InitializeFirmwareVars(struct adapter * padapter); void rtl8188e_InitializeFirmwareVars(struct adapter *padapter);
s32 InitLLTTable(struct adapter * padapter, u8 txpktbuf_bndy); s32 InitLLTTable(struct adapter *padapter, u8 txpktbuf_bndy);
/* EFuse */ /* EFuse */
u8 GetEEPROMSize8188E(struct adapter * padapter); u8 GetEEPROMSize8188E(struct adapter *padapter);
void Hal_InitPGData88E(struct adapter * padapter); void Hal_InitPGData88E(struct adapter *padapter);
void Hal_EfuseParseIDCode88E(struct adapter * padapter, u8 *hwinfo); void Hal_EfuseParseIDCode88E(struct adapter *padapter, u8 *hwinfo);
void Hal_ReadTxPowerInfo88E(struct adapter * padapter,u8* hwinfo,bool AutoLoadFail); void Hal_ReadTxPowerInfo88E(struct adapter *padapter, u8 *hwinfo,
bool AutoLoadFail);
void Hal_EfuseParseEEPROMVer88E(struct adapter * padapter, u8 *hwinfo, bool AutoLoadFail); void Hal_EfuseParseEEPROMVer88E(struct adapter *padapter, u8 *hwinfo,
void rtl8188e_EfuseParseChnlPlan(struct adapter * padapter, u8 *hwinfo, bool AutoLoadFail); bool AutoLoadFail);
void Hal_EfuseParseCustomerID88E(struct adapter * padapter, u8 *hwinfo, bool AutoLoadFail); void rtl8188e_EfuseParseChnlPlan(struct adapter *padapter, u8 *hwinfo,
void Hal_ReadAntennaDiversity88E (struct adapter * pAdapter,u8*PROMContent,bool AutoLoadFail); bool AutoLoadFail);
void Hal_ReadThermalMeter_88E(struct adapter * Adapter,u8* PROMContent,bool AutoloadFail); void Hal_EfuseParseCustomerID88E(struct adapter *padapter, u8 *hwinfo,
void Hal_EfuseParseXtal_8188E(struct adapter * pAdapter,u8* hwinfo,bool AutoLoadFail); bool AutoLoadFail);
void Hal_EfuseParseBoardType88E(struct adapter * pAdapter,u8* hwinfo,bool AutoLoadFail); void Hal_ReadAntennaDiversity88E(struct adapter *pAdapter,u8 *PROMContent,
void Hal_ReadPowerSavingMode88E(struct adapter * pAdapter,u8* hwinfo,bool AutoLoadFail); bool AutoLoadFail);
void Hal_ReadThermalMeter_88E(struct adapter * dapter, u8 *PROMContent,
bool AutoloadFail);
void Hal_EfuseParseXtal_8188E(struct adapter *pAdapter, u8 *hwinfo,
bool AutoLoadFail);
void Hal_EfuseParseBoardType88E(struct adapter *pAdapter, u8 *hwinfo,
bool AutoLoadFail);
void Hal_ReadPowerSavingMode88E(struct adapter *pAdapter, u8 *hwinfo,
bool AutoLoadFail);
bool HalDetectPwrDownMode88E(struct adapter * Adapter); bool HalDetectPwrDownMode88E(struct adapter *Adapter);
#ifdef CONFIG_WOWLAN #ifdef CONFIG_WOWLAN
void Hal_DetectWoWMode(struct adapter * pAdapter); void Hal_DetectWoWMode(struct adapter *pAdapter);
#endif /* CONFIG_WOWLAN */ #endif /* CONFIG_WOWLAN */
void Hal_InitChannelPlan(struct adapter * padapter); void Hal_InitChannelPlan(struct adapter *padapter);
void rtl8188e_set_hal_ops(struct hal_ops *pHalFunc); void rtl8188e_set_hal_ops(struct hal_ops *pHalFunc);
/* register */ /* register */
void SetBcnCtrlReg(struct adapter * padapter, u8 SetBits, u8 ClearBits); void SetBcnCtrlReg(struct adapter *padapter, u8 SetBits, u8 ClearBits);
void rtl8188e_clone_haldata(struct adapter *dst_adapter, struct adapter *src_adapter); void rtl8188e_clone_haldata(struct adapter *dst, struct adapter *src);
void rtl8188e_start_thread(struct adapter *padapter); void rtl8188e_start_thread(struct adapter *padapter);
void rtl8188e_stop_thread(struct adapter *padapter); void rtl8188e_stop_thread(struct adapter *padapter);
void rtw_IOL_cmd_tx_pkt_buf_dump(struct adapter *Adapter,int data_len); void rtw_IOL_cmd_tx_pkt_buf_dump(struct adapter *Adapter, int len);
s32 rtl8188e_iol_efuse_patch(struct adapter * padapter); s32 rtl8188e_iol_efuse_patch(struct adapter *padapter);
void rtw_cancel_all_timer(struct adapter *padapter); void rtw_cancel_all_timer(struct adapter *padapter);
void _ps_open_RF(struct adapter *adapt); void _ps_open_RF(struct adapter *adapt);

View file

@ -27,9 +27,9 @@
/* */ /* */
/* Interface to manipulate LED objects. */ /* Interface to manipulate LED objects. */
/* */ /* */
void rtl8188eu_InitSwLeds(struct adapter * padapter); void rtl8188eu_InitSwLeds(struct adapter *padapter);
void rtl8188eu_DeInitSwLeds(struct adapter * padapter); void rtl8188eu_DeInitSwLeds(struct adapter *padapter);
void SwLedOn(struct adapter *padapter, struct LED_871x * pLed); void SwLedOn(struct adapter *padapter, struct LED_871x *pLed);
void SwLedOff(struct adapter *padapter, struct LED_871x * pLed); void SwLedOff(struct adapter *padapter, struct LED_871x *pLed);
#endif #endif

View file

@ -56,14 +56,14 @@ enum rx_packet_type {
}; };
#define INTERRUPT_MSG_FORMAT_LEN 60 #define INTERRUPT_MSG_FORMAT_LEN 60
void rtl8188eu_init_recvbuf(struct adapter *padapter, struct recv_buf *precvbuf); void rtl8188eu_init_recvbuf(struct adapter *padapter, struct recv_buf *buf);
s32 rtl8188eu_init_recv_priv(struct adapter * padapter); s32 rtl8188eu_init_recv_priv(struct adapter *padapter);
void rtl8188eu_free_recv_priv(struct adapter * padapter); void rtl8188eu_free_recv_priv(struct adapter * padapter);
void rtl8188eu_recv_hdl(struct adapter * padapter, struct recv_buf *precvbuf); void rtl8188eu_recv_hdl(struct adapter * padapter, struct recv_buf *precvbuf);
void rtl8188eu_recv_tasklet(void *priv); void rtl8188eu_recv_tasklet(void *priv);
void rtl8188e_query_rx_phy_status(union recv_frame *prframe, struct phy_stat *pphy_stat); void rtl8188e_query_rx_phy_status(union recv_frame *fr, struct phy_stat *phy);
void rtl8188e_process_phy_info(struct adapter * padapter, void *prframe); void rtl8188e_process_phy_info(struct adapter * padapter, void *prframe);
void update_recvframe_phyinfo_88e(union recv_frame *precvframe,struct phy_stat *pphy_status); void update_recvframe_phyinfo_88e(union recv_frame *fra, struct phy_stat *phy);
void update_recvframe_attrib_88e( union recv_frame *precvframe, struct recv_stat *prxstat); void update_recvframe_attrib_88e(union recv_frame *fra, struct recv_stat *stat);
#endif #endif

View file

@ -29,8 +29,8 @@ int PHY_RF6052_Config8188E(struct adapter *Adapter);
void rtl8188e_RF_ChangeTxPath(struct adapter *Adapter, u16 DataRate); void rtl8188e_RF_ChangeTxPath(struct adapter *Adapter, u16 DataRate);
void rtl8188e_PHY_RF6052SetBandwidth(struct adapter *Adapter, void rtl8188e_PHY_RF6052SetBandwidth(struct adapter *Adapter,
enum ht_channel_width Bandwidth); enum ht_channel_width Bandwidth);
void rtl8188e_PHY_RF6052SetCckTxPower(struct adapter *Adapter, u8 *pPowerlevel); void rtl8188e_PHY_RF6052SetCckTxPower(struct adapter *Adapter, u8 *level);
void rtl8188e_PHY_RF6052SetOFDMTxPower(struct adapter *Adapter, u8 *pwrofdm, void rtl8188e_PHY_RF6052SetOFDMTxPower(struct adapter *Adapter, u8 *ofdm,
u8 *pwrbw20, u8 *pwrbw40, u8 channel); u8 *pwrbw20, u8 *pwrbw40, u8 channel);
#endif/* __RTL8188E_RF_H__ */ #endif/* __RTL8188E_RF_H__ */

File diff suppressed because it is too large Load diff

View file

@ -24,8 +24,8 @@
#include <drv_types.h> #include <drv_types.h>
#include <rtw_sreset.h> #include <rtw_sreset.h>
extern void rtl8188e_silentreset_for_specific_platform(struct adapter *padapter); void rtl8188e_silentreset_for_specific_platform(struct adapter *padapter);
extern void rtl8188e_sreset_xmit_status_check(struct adapter *padapter); void rtl8188e_sreset_xmit_status_check(struct adapter *padapter);
extern void rtl8188e_sreset_linked_status_check(struct adapter *padapter); void rtl8188e_sreset_linked_status_check(struct adapter *padapter);
#endif #endif

View file

@ -34,13 +34,20 @@
#define QSLT_CMD 0x13 #define QSLT_CMD 0x13
/* For 88e early mode */ /* For 88e early mode */
#define SET_EARLYMODE_PKTNUM(__pAddr, __Value) SET_BITS_TO_LE_4BYTE(__pAddr, 0, 3, __Value) #define SET_EARLYMODE_PKTNUM(__pAddr, __Value) \
#define SET_EARLYMODE_LEN0(__pAddr, __Value) SET_BITS_TO_LE_4BYTE(__pAddr, 4, 12, __Value) SET_BITS_TO_LE_4BYTE(__pAddr, 0, 3, __Value)
#define SET_EARLYMODE_LEN1(__pAddr, __Value) SET_BITS_TO_LE_4BYTE(__pAddr, 16, 12, __Value) #define SET_EARLYMODE_LEN0(__pAddr, __Value) \
#define SET_EARLYMODE_LEN2_1(__pAddr, __Value) SET_BITS_TO_LE_4BYTE(__pAddr, 28, 4, __Value) SET_BITS_TO_LE_4BYTE(__pAddr, 4, 12, __Value)
#define SET_EARLYMODE_LEN2_2(__pAddr, __Value) SET_BITS_TO_LE_4BYTE(__pAddr+4, 0, 8, __Value) #define SET_EARLYMODE_LEN1(__pAddr, __Value) \
#define SET_EARLYMODE_LEN3(__pAddr, __Value) SET_BITS_TO_LE_4BYTE(__pAddr+4, 8, 12, __Value) SET_BITS_TO_LE_4BYTE(__pAddr, 16, 12, __Value)
#define SET_EARLYMODE_LEN4(__pAddr, __Value) SET_BITS_TO_LE_4BYTE(__pAddr+4, 20, 12, __Value) #define SET_EARLYMODE_LEN2_1(__pAddr, __Value) \
SET_BITS_TO_LE_4BYTE(__pAddr, 28, 4, __Value)
#define SET_EARLYMODE_LEN2_2(__pAddr, __Value) \
SET_BITS_TO_LE_4BYTE(__pAddr+4, 0, 8, __Value)
#define SET_EARLYMODE_LEN3(__pAddr, __Value) \
SET_BITS_TO_LE_4BYTE(__pAddr+4, 8, 12, __Value)
#define SET_EARLYMODE_LEN4(__pAddr, __Value) \
SET_BITS_TO_LE_4BYTE(__pAddr+4, 20, 12, __Value)
/* */ /* */
/* defined for TX DESC Operation */ /* defined for TX DESC Operation */
@ -95,11 +102,11 @@
/* OFFSET 20 */ /* OFFSET 20 */
#define RTY_LMT_EN BIT(17) #define RTY_LMT_EN BIT(17)
enum TXDESC_SC{ enum TXDESC_SC {
SC_DONT_CARE = 0x00, SC_DONT_CARE = 0x00,
SC_UPPER= 0x01, SC_UPPER = 0x01,
SC_LOWER=0x02, SC_LOWER = 0x02,
SC_DUPLICATE=0x03 SC_DUPLICATE = 0x03
}; };
/* OFFSET 20 */ /* OFFSET 20 */
#define SGI BIT(6) #define SGI BIT(6)
@ -146,21 +153,26 @@ struct txrpt_ccx_88e {
}; };
#define txrpt_ccx_sw_88e(txrpt_ccx) ((txrpt_ccx)->sw0 + ((txrpt_ccx)->sw1<<8)) #define txrpt_ccx_sw_88e(txrpt_ccx) ((txrpt_ccx)->sw0 + ((txrpt_ccx)->sw1<<8))
#define txrpt_ccx_qtime_88e(txrpt_ccx) ((txrpt_ccx)->ccx_qtime0+((txrpt_ccx)->ccx_qtime1<<8)) #define txrpt_ccx_qtime_88e(txrpt_ccx) \
((txrpt_ccx)->ccx_qtime0+((txrpt_ccx)->ccx_qtime1<<8))
void rtl8188e_fill_fake_txdesc(struct adapter * padapter,u8*pDesc,u32 BufferLen,u8 IsPsPoll,u8 IsBTQosNull); void rtl8188e_fill_fake_txdesc(struct adapter *padapter, u8 *pDesc,
s32 rtl8188eu_init_xmit_priv(struct adapter * padapter); u32 BufferLen, u8 IsPsPoll, u8 IsBTQosNull);
void rtl8188eu_free_xmit_priv(struct adapter * padapter); s32 rtl8188eu_init_xmit_priv(struct adapter *padapter);
s32 rtl8188eu_hal_xmit(struct adapter * padapter, struct xmit_frame *pxmitframe); void rtl8188eu_free_xmit_priv(struct adapter *padapter);
s32 rtl8188eu_mgnt_xmit(struct adapter * padapter, struct xmit_frame *pmgntframe); s32 rtl8188eu_hal_xmit(struct adapter *padapter, struct xmit_frame *frame);
s32 rtl8188eu_xmit_buf_handler(struct adapter * padapter); s32 rtl8188eu_mgnt_xmit(struct adapter *padapter, struct xmit_frame *frame);
s32 rtl8188eu_xmit_buf_handler(struct adapter *padapter);
#define hal_xmit_handler rtl8188eu_xmit_buf_handler #define hal_xmit_handler rtl8188eu_xmit_buf_handler
void rtl8188eu_xmit_tasklet(void *priv); void rtl8188eu_xmit_tasklet(void *priv);
s32 rtl8188eu_xmitframe_complete(struct adapter *padapter, struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf); s32 rtl8188eu_xmitframe_complete(struct adapter *padapter,
struct xmit_priv *pxmitpriv,
struct xmit_buf *pxmitbuf);
void dump_txrpt_ccx_88e(void *buf); void dump_txrpt_ccx_88e(void *buf);
void handle_txrpt_ccx_88e(struct adapter *adapter, u8 *buf); void handle_txrpt_ccx_88e(struct adapter *adapter, u8 *buf);
void _dbg_dump_tx_info(struct adapter *padapter,int frame_tag,struct tx_desc *ptxdesc); void _dbg_dump_tx_info(struct adapter *padapter, int frame_tag,
struct tx_desc *ptxdesc);
#endif /* __RTL8188E_XMIT_H__ */ #endif /* __RTL8188E_XMIT_H__ */

View file

@ -26,17 +26,20 @@
#ifdef CONFIG_AP_MODE #ifdef CONFIG_AP_MODE
/* external function */ /* external function */
extern void rtw_indicate_sta_assoc_event(struct adapter *padapter, struct sta_info *psta); void rtw_indicate_sta_assoc_event(struct adapter *padapter,
extern void rtw_indicate_sta_disassoc_event(struct adapter *padapter, struct sta_info *psta); struct sta_info *psta);
void rtw_indicate_sta_disassoc_event(struct adapter *padapter,
struct sta_info *psta);
void init_mlme_ap_info(struct adapter *padapter); void init_mlme_ap_info(struct adapter *padapter);
void free_mlme_ap_info(struct adapter *padapter); void free_mlme_ap_info(struct adapter *padapter);
/* void update_BCNTIM(struct adapter *padapter); */ void rtw_add_bcn_ie(struct adapter *padapter, struct wlan_bssid_ex *pnetwork,
void rtw_add_bcn_ie(struct adapter *padapter, struct wlan_bssid_ex *pnetwork, u8 index, u8 *data, u8 len); u8 index, u8 *data, u8 len);
void rtw_remove_bcn_ie(struct adapter *padapter, struct wlan_bssid_ex *pnetwork, u8 index); void rtw_remove_bcn_ie(struct adapter *padapter,
void update_beacon(struct adapter *padapter, u8 ie_id, u8 *oui, u8 tx); struct wlan_bssid_ex *pnetwork, u8 index);
void add_RATid(struct adapter *padapter, struct sta_info *psta, u8 rssi_level); void update_beacon(struct adapter *padapter, u8 ie_id,
u8 *oui, u8 tx);
void add_RATid(struct adapter *padapter, struct sta_info *psta,
u8 rssi_level);
void expire_timeout_chk(struct adapter *padapter); void expire_timeout_chk(struct adapter *padapter);
void update_sta_info_apmode(struct adapter *padapter, struct sta_info *psta); void update_sta_info_apmode(struct adapter *padapter, struct sta_info *psta);
int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len); int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len);
@ -50,9 +53,10 @@ void bss_cap_update_on_sta_join(struct adapter *padapter, struct sta_info *psta)
u8 bss_cap_update_on_sta_leave(struct adapter *padapter, struct sta_info *psta); u8 bss_cap_update_on_sta_leave(struct adapter *padapter, struct sta_info *psta);
void sta_info_update(struct adapter *padapter, struct sta_info *psta); void sta_info_update(struct adapter *padapter, struct sta_info *psta);
void ap_sta_info_defer_update(struct adapter *padapter, struct sta_info *psta); void ap_sta_info_defer_update(struct adapter *padapter, struct sta_info *psta);
u8 ap_free_sta(struct adapter *padapter, struct sta_info *psta, bool active, u16 reason); u8 ap_free_sta(struct adapter *padapter, struct sta_info *psta,
bool active, u16 reason);
int rtw_sta_flush(struct adapter *padapter); int rtw_sta_flush(struct adapter *padapter);
int rtw_ap_inform_ch_switch (struct adapter *padapter, u8 new_ch, u8 ch_offset); int rtw_ap_inform_ch_switch(struct adapter *padapter, u8 new_ch, u8 ch_offset);
void start_ap_mode(struct adapter *padapter); void start_ap_mode(struct adapter *padapter);
void stop_ap_mode(struct adapter *padapter); void stop_ap_mode(struct adapter *padapter);
#endif #endif

View file

@ -29,7 +29,6 @@
#include <osdep_service.h> #include <osdep_service.h>
#include <ieee80211.h> /* <ieee80211/ieee80211.h> */ #include <ieee80211.h> /* <ieee80211/ieee80211.h> */
#define FREE_CMDOBJ_SZ 128 #define FREE_CMDOBJ_SZ 128
#define MAX_CMDSZ 1024 #define MAX_CMDSZ 1024
@ -81,7 +80,7 @@ do {\
_rtw_init_listhead(&pcmd->list);\ _rtw_init_listhead(&pcmd->list);\
pcmd->cmdcode = code;\ pcmd->cmdcode = code;\
pcmd->parmbuf = (u8 *)(pparm);\ pcmd->parmbuf = (u8 *)(pparm);\
pcmd->cmdsz = sizeof (*pparm);\ pcmd->cmdsz = sizeof(*pparm);\
pcmd->rsp = NULL;\ pcmd->rsp = NULL;\
pcmd->rspsz = 0;\ pcmd->rspsz = 0;\
} while (0) } while (0)
@ -95,25 +94,24 @@ struct c2h_evt_hdr {
#define c2h_evt_exist(c2h_evt) ((c2h_evt)->id || (c2h_evt)->plen) #define c2h_evt_exist(c2h_evt) ((c2h_evt)->id || (c2h_evt)->plen)
extern u32 rtw_enqueue_cmd(struct cmd_priv *pcmdpriv, struct cmd_obj *obj); u32 rtw_enqueue_cmd(struct cmd_priv *pcmdpriv, struct cmd_obj *obj);
extern struct cmd_obj *rtw_dequeue_cmd(struct cmd_priv *pcmdpriv); struct cmd_obj *rtw_dequeue_cmd(struct cmd_priv *pcmdpriv);
extern void rtw_free_cmd_obj(struct cmd_obj *pcmd); void rtw_free_cmd_obj(struct cmd_obj *pcmd);
int rtw_cmd_thread(void *context); int rtw_cmd_thread(void *context);
extern u32 rtw_init_cmd_priv (struct cmd_priv *pcmdpriv); u32 rtw_init_cmd_priv(struct cmd_priv *pcmdpriv);
extern void rtw_free_cmd_priv (struct cmd_priv *pcmdpriv); void rtw_free_cmd_priv(struct cmd_priv *pcmdpriv);
extern u32 rtw_init_evt_priv (struct evt_priv *pevtpriv); u32 rtw_init_evt_priv(struct evt_priv *pevtpriv);
extern void rtw_free_evt_priv (struct evt_priv *pevtpriv); void rtw_free_evt_priv(struct evt_priv *pevtpriv);
extern void rtw_cmd_clr_isr(struct cmd_priv *pcmdpriv); void rtw_cmd_clr_isr(struct cmd_priv *pcmdpriv);
extern void rtw_evt_notify_isr(struct evt_priv *pevtpriv); void rtw_evt_notify_isr(struct evt_priv *pevtpriv);
#ifdef CONFIG_P2P #ifdef CONFIG_P2P
u8 p2p_protocol_wk_cmd(struct adapter*padapter, int intCmdType ); u8 p2p_protocol_wk_cmd(struct adapter *padapter, int intCmdType);
#endif /* CONFIG_P2P */ #endif /* CONFIG_P2P */
enum rtw_drvextra_cmd_id enum rtw_drvextra_cmd_id {
{
NONE_WK_CID, NONE_WK_CID,
DYNAMIC_CHK_WK_CID, DYNAMIC_CHK_WK_CID,
DM_CTRL_WK_CID, DM_CTRL_WK_CID,
@ -130,14 +128,13 @@ enum rtw_drvextra_cmd_id
MAX_WK_CID MAX_WK_CID
}; };
enum LPS_CTRL_TYPE enum LPS_CTRL_TYPE {
{ LPS_CTRL_SCAN = 0,
LPS_CTRL_SCAN=0, LPS_CTRL_JOINBSS = 1,
LPS_CTRL_JOINBSS=1, LPS_CTRL_CONNECT = 2,
LPS_CTRL_CONNECT=2, LPS_CTRL_DISCONNECT = 3,
LPS_CTRL_DISCONNECT=3, LPS_CTRL_SPECIAL_PACKET = 4,
LPS_CTRL_SPECIAL_PACKET=4, LPS_CTRL_LEAVE = 5,
LPS_CTRL_LEAVE=5,
}; };
enum RFINTFS { enum RFINTFS {
@ -253,9 +250,10 @@ when 802.1x ==> keyid > 2 ==> unicast key
*/ */
struct setkey_parm { struct setkey_parm {
u8 algorithm; /* encryption algorithm, could be none, wep40, TKIP, CCMP, wep104 */ u8 algorithm; /* could be none, wep40, TKIP, CCMP, wep104 */
u8 keyid; u8 keyid;
u8 grpkey; /* 1: this is the grpkey for 802.1x. 0: this is the unicast key for 802.1x */ u8 grpkey; /* 1: this is the grpkey for 802.1x.
* 0: this is the unicast key for 802.1x */
u8 set_tx; /* 1: main tx key for wep. 0: other key. */ u8 set_tx; /* 1: main tx key for wep. 0: other key. */
u8 key[16]; /* this could be 40 or 104 */ u8 key[16]; /* this could be 40 or 104 */
}; };
@ -272,7 +270,8 @@ when shared key ==> algorithm/keyid
struct set_stakey_parm { struct set_stakey_parm {
u8 addr[ETH_ALEN]; u8 addr[ETH_ALEN];
u8 algorithm; u8 algorithm;
u8 id;/* currently for erasing cam entry if algorithm == _NO_PRIVACY_ */ u8 id;/* currently for erasing cam entry if
* algorithm == _NO_PRIVACY_ */
u8 key[16]; u8 key[16];
}; };
@ -386,7 +385,6 @@ struct getdatarate_rsp {
u8 datarates[NumRates]; u8 datarates[NumRates];
}; };
/* /*
Caller Mode: Any Caller Mode: Any
AP: AP can use the info for the contents of beacon frame AP: AP can use the info for the contents of beacon frame
@ -394,7 +392,6 @@ Infra: STA can use the info when sitesurveying
Ad-HoC(M): Like AP Ad-HoC(M): Like AP
Ad-HoC(C): Like STA Ad-HoC(C): Like STA
Notes: To set the phy capability of the NIC Notes: To set the phy capability of the NIC
Command Mode Command Mode
@ -481,7 +478,6 @@ struct getrfintfs_parm {
u8 rfintfs; u8 rfintfs;
}; };
struct Tx_Beacon_param struct Tx_Beacon_param
{ {
struct wlan_bssid_ex network; struct wlan_bssid_ex network;
@ -522,7 +518,7 @@ struct Tx_Beacon_param
event: parm: event: parm:
mac[0] = mac[5]; mac[0] = mac[5];
mac[1] = mac[4]; mac[1] = mac[4];
mac[2] = event's sequence number, starting from 1 to parm's marc[3] mac[2] = event's seq no, starting from 1 to parm's marc[3]
mac[3] = mac[2]; mac[3] = mac[2];
mac[4] = mac[1]; mac[4] = mac[1];
mac[5] = mac[0]; mac[5] = mac[0];
@ -535,10 +531,7 @@ struct Tx_Beacon_param
w1 = swap32(w1) - event.mac[2]; w1 = swap32(w1) - event.mac[2];
parm->mac[3] is the total event counts that host requested. parm->mac[3] is the total event counts that host requested.
event will be the same with the cmd's param. event will be the same with the cmd's param.
*/ */
/* CMD param Format for driver extra cmd handler */ /* CMD param Format for driver extra cmd handler */
@ -576,7 +569,6 @@ struct setagcctrl_parm {
u32 agcctrl; /* 0: pure hw, 1: fw */ u32 agcctrl; /* 0: pure hw, 1: fw */
}; };
struct setssup_parm { struct setssup_parm {
u32 ss_ForceUp[MAX_RATES_LENGTH]; u32 ss_ForceUp[MAX_RATES_LENGTH];
}; };
@ -584,11 +576,11 @@ struct setssup_parm {
struct getssup_parm { struct getssup_parm {
u32 rsvd; u32 rsvd;
}; };
struct getssup_rsp { struct getssup_rsp {
u8 ss_ForceUp[MAX_RATES_LENGTH]; u8 ss_ForceUp[MAX_RATES_LENGTH];
}; };
struct setssdlevel_parm { struct setssdlevel_parm {
u8 ss_DLevel[MAX_RATES_LENGTH]; u8 ss_DLevel[MAX_RATES_LENGTH];
}; };
@ -596,6 +588,7 @@ struct setssdlevel_parm {
struct getssdlevel_parm { struct getssdlevel_parm {
u32 rsvd; u32 rsvd;
}; };
struct getssdlevel_rsp { struct getssdlevel_rsp {
u8 ss_DLevel[MAX_RATES_LENGTH]; u8 ss_DLevel[MAX_RATES_LENGTH];
}; };
@ -607,11 +600,11 @@ struct setssulevel_parm {
struct getssulevel_parm { struct getssulevel_parm {
u32 rsvd; u32 rsvd;
}; };
struct getssulevel_rsp { struct getssulevel_rsp {
u8 ss_ULevel[MAX_RATES_LENGTH]; u8 ss_ULevel[MAX_RATES_LENGTH];
}; };
struct setcountjudge_parm { struct setcountjudge_parm {
u8 count_judge[MAX_RATES_LENGTH]; u8 count_judge[MAX_RATES_LENGTH];
}; };
@ -619,11 +612,11 @@ struct setcountjudge_parm {
struct getcountjudge_parm { struct getcountjudge_parm {
u32 rsvd; u32 rsvd;
}; };
struct getcountjudge_rsp { struct getcountjudge_rsp {
u8 count_judge[MAX_RATES_LENGTH]; u8 count_judge[MAX_RATES_LENGTH];
}; };
struct setratable_parm { struct setratable_parm {
u8 ss_ForceUp[NumRates]; u8 ss_ForceUp[NumRates];
u8 ss_ULevel[NumRates]; u8 ss_ULevel[NumRates];
@ -634,6 +627,7 @@ struct setratable_parm {
struct getratable_parm { struct getratable_parm {
uint rsvd; uint rsvd;
}; };
struct getratable_rsp { struct getratable_rsp {
u8 ss_ForceUp[NumRates]; u8 ss_ForceUp[NumRates];
u8 ss_ULevel[NumRates]; u8 ss_ULevel[NumRates];
@ -641,42 +635,46 @@ struct getratable_rsp {
u8 count_judge[NumRates]; u8 count_judge[NumRates];
}; };
/* to get TX,RX retry count */ /* to get TX,RX retry count */
struct gettxretrycnt_parm{
struct gettxretrycnt_parm {
unsigned int rsvd; unsigned int rsvd;
}; };
struct gettxretrycnt_rsp{
struct gettxretrycnt_rsp {
unsigned long tx_retrycnt; unsigned long tx_retrycnt;
}; };
struct getrxretrycnt_parm{ struct getrxretrycnt_parm {
unsigned int rsvd; unsigned int rsvd;
}; };
struct getrxretrycnt_rsp{
struct getrxretrycnt_rsp {
unsigned long rx_retrycnt; unsigned long rx_retrycnt;
}; };
/* to get BCNOK,BCNERR count */ /* to get BCNOK,BCNERR count */
struct getbcnokcnt_parm{ struct getbcnokcnt_parm {
unsigned int rsvd; unsigned int rsvd;
}; };
struct getbcnokcnt_rsp{
struct getbcnokcnt_rsp {
unsigned long bcnokcnt; unsigned long bcnokcnt;
}; };
struct getbcnerrcnt_parm{ struct getbcnerrcnt_parm {
unsigned int rsvd; unsigned int rsvd;
}; };
struct getbcnerrcnt_rsp{
struct getbcnerrcnt_rsp {
unsigned long bcnerrcnt; unsigned long bcnerrcnt;
}; };
/* to get current TX power level */ /* to get current TX power level */
struct getcurtxpwrlevel_parm{ struct getcurtxpwrlevel_parm {
unsigned int rsvd; unsigned int rsvd;
}; };
struct getcurtxpwrlevel_rsp{ struct getcurtxpwrlevel_rspi {
unsigned short tx_power; unsigned short tx_power;
}; };
@ -704,9 +702,7 @@ struct setassocrspextraie_parm {
unsigned char ie[0]; unsigned char ie[0];
}; };
struct addBaReq_parm {
struct addBaReq_parm
{
unsigned int tid; unsigned int tid;
u8 addr[ETH_ALEN]; u8 addr[ETH_ALEN];
}; };
@ -727,7 +723,7 @@ struct SetChannelPlan_param
/*H2C Handler index: 60 */ /*H2C Handler index: 60 */
struct LedBlink_param struct LedBlink_param
{ {
struct LED_871x * pLed; struct LED_871x *pLed;
}; };
/*H2C Handler index: 61 */ /*H2C Handler index: 61 */
@ -745,7 +741,6 @@ struct TDLSoption_param
#define GEN_CMD_CODE(cmd) cmd ## _CMD_ #define GEN_CMD_CODE(cmd) cmd ## _CMD_
/* /*
Result: Result:
@ -768,123 +763,125 @@ Result:
#define H2C_CMD_OVERFLOW 0x06 #define H2C_CMD_OVERFLOW 0x06
#define H2C_RESERVED 0x07 #define H2C_RESERVED 0x07
extern u8 rtw_setassocsta_cmd(struct adapter *padapter, u8 *mac_addr); u8 rtw_setassocsta_cmd(struct adapter *padapter, u8 *mac_addr);
extern u8 rtw_setstandby_cmd(struct adapter *padapter, uint action); u8 rtw_setstandby_cmd(struct adapter *padapter, uint action);
u8 rtw_sitesurvey_cmd(struct adapter *padapter, struct ndis_802_11_ssid *ssid, int ssid_num, struct rtw_ieee80211_channel *ch, int ch_num); u8 rtw_sitesurvey_cmd(struct adapter *padapter, struct ndis_802_11_ssid *ssid,
extern u8 rtw_createbss_cmd(struct adapter *padapter); int ssid_num, struct rtw_ieee80211_channel *ch,
extern u8 rtw_createbss_cmd_ex(struct adapter *padapter, unsigned char *pbss, unsigned int sz); int ch_num);
extern u8 rtw_setphy_cmd(struct adapter *padapter, u8 modem, u8 ch); u8 rtw_createbss_cmd(struct adapter *padapter);
extern u8 rtw_setstakey_cmd(struct adapter *padapter, u8 *psta, u8 unicast_key); u8 rtw_createbss_cmd_ex(struct adapter *padapter, unsigned char *pbss,
extern u8 rtw_clearstakey_cmd(struct adapter *padapter, u8 *psta, u8 entry, u8 enqueue); unsigned int sz);
extern u8 rtw_joinbss_cmd(struct adapter *padapter, struct wlan_network* pnetwork); u8 rtw_setphy_cmd(struct adapter *padapter, u8 modem, u8 ch);
u8 rtw_setstakey_cmd(struct adapter *padapter, u8 *psta, u8 unicast_key);
u8 rtw_clearstakey_cmd(struct adapter *padapter, u8 *psta, u8 entry, u8 enqueue);
u8 rtw_joinbss_cmd(struct adapter *padapter, struct wlan_network* pnetwork);
u8 rtw_disassoc_cmd(struct adapter *padapter, u32 deauth_timeout_ms, bool enqueue); u8 rtw_disassoc_cmd(struct adapter *padapter, u32 deauth_timeout_ms, bool enqueue);
extern u8 rtw_setopmode_cmd(struct adapter *padapter, enum ndis_802_11_network_infra networktype); u8 rtw_setopmode_cmd(struct adapter *padapter, enum ndis_802_11_network_infra networktype);
extern u8 rtw_setdatarate_cmd(struct adapter *padapter, u8 *rateset); u8 rtw_setdatarate_cmd(struct adapter *padapter, u8 *rateset);
extern u8 rtw_setbasicrate_cmd(struct adapter *padapter, u8 *rateset); u8 rtw_setbasicrate_cmd(struct adapter *padapter, u8 *rateset);
extern u8 rtw_setbbreg_cmd(struct adapter * padapter, u8 offset, u8 val); u8 rtw_setbbreg_cmd(struct adapter * padapter, u8 offset, u8 val);
extern u8 rtw_setrfreg_cmd(struct adapter * padapter, u8 offset, u32 val); u8 rtw_setrfreg_cmd(struct adapter * padapter, u8 offset, u32 val);
extern u8 rtw_getbbreg_cmd(struct adapter * padapter, u8 offset, u8 * pval); u8 rtw_getbbreg_cmd(struct adapter * padapter, u8 offset, u8 * pval);
extern u8 rtw_getrfreg_cmd(struct adapter * padapter, u8 offset, u8 * pval); u8 rtw_getrfreg_cmd(struct adapter * padapter, u8 offset, u8 * pval);
extern u8 rtw_setrfintfs_cmd(struct adapter *padapter, u8 mode); u8 rtw_setrfintfs_cmd(struct adapter *padapter, u8 mode);
extern u8 rtw_setrttbl_cmd(struct adapter *padapter, struct setratable_parm *prate_table); u8 rtw_setrttbl_cmd(struct adapter *padapter, struct setratable_parm *prate_table);
extern u8 rtw_getrttbl_cmd(struct adapter *padapter, struct getratable_rsp *pval); u8 rtw_getrttbl_cmd(struct adapter *padapter, struct getratable_rsp *pval);
extern u8 rtw_gettssi_cmd(struct adapter *padapter, u8 offset,u8 *pval); u8 rtw_gettssi_cmd(struct adapter *padapter, u8 offset,u8 *pval);
extern u8 rtw_setfwdig_cmd(struct adapter*padapter, u8 type); u8 rtw_setfwdig_cmd(struct adapter*padapter, u8 type);
extern u8 rtw_setfwra_cmd(struct adapter*padapter, u8 type); u8 rtw_setfwra_cmd(struct adapter*padapter, u8 type);
extern u8 rtw_addbareq_cmd(struct adapter*padapter, u8 tid, u8 *addr); u8 rtw_addbareq_cmd(struct adapter*padapter, u8 tid, u8 *addr);
extern u8 rtw_dynamic_chk_wk_cmd(struct adapter *adapter); u8 rtw_dynamic_chk_wk_cmd(struct adapter *adapter);
u8 rtw_lps_ctrl_wk_cmd(struct adapter*padapter, u8 lps_ctrl_type, u8 enqueue); u8 rtw_lps_ctrl_wk_cmd(struct adapter*padapter, u8 lps_ctrl_type, u8 enqueue);
u8 rtw_rpt_timer_cfg_cmd(struct adapter*padapter, u16 minRptTime); u8 rtw_rpt_timer_cfg_cmd(struct adapter*padapter, u16 minRptTime);
extern u8 rtw_antenna_select_cmd(struct adapter*padapter, u8 antenna,u8 enqueue); u8 rtw_antenna_select_cmd(struct adapter*padapter, u8 antenna,u8 enqueue);
extern u8 rtw_ps_cmd(struct adapter*padapter); u8 rtw_ps_cmd(struct adapter*padapter);
#ifdef CONFIG_AP_MODE #ifdef CONFIG_AP_MODE
u8 rtw_chk_hi_queue_cmd(struct adapter*padapter); u8 rtw_chk_hi_queue_cmd(struct adapter*padapter);
#endif #endif
u8 rtw_set_ch_cmd(struct adapter*padapter, u8 ch, u8 bw, u8 ch_offset, u8 enqueue); u8 rtw_set_ch_cmd(struct adapter*padapter, u8 ch, u8 bw, u8 ch_offset, u8 enqueue);
extern u8 rtw_set_chplan_cmd(struct adapter*padapter, u8 chplan, u8 enqueue); u8 rtw_set_chplan_cmd(struct adapter*padapter, u8 chplan, u8 enqueue);
extern u8 rtw_led_blink_cmd(struct adapter*padapter, struct LED_871x * pLed); u8 rtw_led_blink_cmd(struct adapter*padapter, struct LED_871x * pLed);
extern u8 rtw_set_csa_cmd(struct adapter*padapter, u8 new_ch_no); u8 rtw_set_csa_cmd(struct adapter*padapter, u8 new_ch_no);
extern u8 rtw_tdls_cmd(struct adapter *padapter, u8 *addr, u8 option); u8 rtw_tdls_cmd(struct adapter *padapter, u8 *addr, u8 option);
extern u8 rtw_c2h_wk_cmd(struct adapter *padapter, u8 *c2h_evt); u8 rtw_c2h_wk_cmd(struct adapter *padapter, u8 *c2h_evt);
u8 rtw_drvextra_cmd_hdl(struct adapter *padapter, unsigned char *pbuf); u8 rtw_drvextra_cmd_hdl(struct adapter *padapter, unsigned char *pbuf);
extern void rtw_survey_cmd_callback(struct adapter *padapter, struct cmd_obj *pcmd); void rtw_survey_cmd_callback(struct adapter *padapter, struct cmd_obj *pcmd);
extern void rtw_disassoc_cmd_callback(struct adapter *padapter, struct cmd_obj *pcmd); void rtw_disassoc_cmd_callback(struct adapter *padapter, struct cmd_obj *pcmd);
extern void rtw_joinbss_cmd_callback(struct adapter *padapter, struct cmd_obj *pcmd); void rtw_joinbss_cmd_callback(struct adapter *padapter, struct cmd_obj *pcmd);
extern void rtw_createbss_cmd_callback(struct adapter *padapter, struct cmd_obj *pcmd); void rtw_createbss_cmd_callback(struct adapter *adapt, struct cmd_obj *pcmd);
extern void rtw_getbbrfreg_cmdrsp_callback(struct adapter *padapter, struct cmd_obj *pcmd); void rtw_getbbrfreg_cmdrsp_callback(struct adapter *adapt, struct cmd_obj *cmd);
extern void rtw_readtssi_cmdrsp_callback(struct adapter *padapter, struct cmd_obj *pcmd); void rtw_readtssi_cmdrsp_callback(struct adapter *adapt, struct cmd_obj *cmd);
extern void rtw_setstaKey_cmdrsp_callback(struct adapter *padapter, struct cmd_obj *pcmd); void rtw_setstaKey_cmdrsp_callback(struct adapter *adapt, struct cmd_obj *cmd);
extern void rtw_setassocsta_cmdrsp_callback(struct adapter *padapter, struct cmd_obj *pcmd); void rtw_setassocsta_cmdrsp_callback(struct adapter *adapt, struct cmd_obj *cm);
extern void rtw_getrttbl_cmdrsp_callback(struct adapter *padapter, struct cmd_obj *pcmd); void rtw_getrttbl_cmdrsp_callback(struct adapter *adapt, struct cmd_obj *cmd);
struct _cmd_callback { struct _cmd_callback {
u32 cmd_code; u32 cmd_code;
void (*callback)(struct adapter *padapter, struct cmd_obj *cmd); void (*callback)(struct adapter *padapter, struct cmd_obj *cmd);
}; };
enum rtw_h2c_cmd enum rtw_h2c_cmd {
{ GEN_CMD_CODE(_Read_MACREG), /*0*/
GEN_CMD_CODE(_Read_MACREG) , /*0*/ GEN_CMD_CODE(_Write_MACREG),
GEN_CMD_CODE(_Write_MACREG) , GEN_CMD_CODE(_Read_BBREG),
GEN_CMD_CODE(_Read_BBREG) , GEN_CMD_CODE(_Write_BBREG),
GEN_CMD_CODE(_Write_BBREG) , GEN_CMD_CODE(_Read_RFREG),
GEN_CMD_CODE(_Read_RFREG) , GEN_CMD_CODE(_Write_RFREG), /*5*/
GEN_CMD_CODE(_Write_RFREG) , /*5*/ GEN_CMD_CODE(_Read_EEPROM),
GEN_CMD_CODE(_Read_EEPROM) , GEN_CMD_CODE(_Write_EEPROM),
GEN_CMD_CODE(_Write_EEPROM) , GEN_CMD_CODE(_Read_EFUSE),
GEN_CMD_CODE(_Read_EFUSE) , GEN_CMD_CODE(_Write_EFUSE),
GEN_CMD_CODE(_Write_EFUSE) ,
GEN_CMD_CODE(_Read_CAM) , /*10*/ GEN_CMD_CODE(_Read_CAM), /*10*/
GEN_CMD_CODE(_Write_CAM) , GEN_CMD_CODE(_Write_CAM),
GEN_CMD_CODE(_setBCNITV), GEN_CMD_CODE(_setBCNITV),
GEN_CMD_CODE(_setMBIDCFG), GEN_CMD_CODE(_setMBIDCFG),
GEN_CMD_CODE(_JoinBss), /*14*/ GEN_CMD_CODE(_JoinBss), /*14*/
GEN_CMD_CODE(_DisConnect) , /*15*/ GEN_CMD_CODE(_DisConnect), /*15*/
GEN_CMD_CODE(_CreateBss) , GEN_CMD_CODE(_CreateBss),
GEN_CMD_CODE(_SetOpMode) , GEN_CMD_CODE(_SetOpMode),
GEN_CMD_CODE(_SiteSurvey), /*18*/ GEN_CMD_CODE(_SiteSurvey), /*18*/
GEN_CMD_CODE(_SetAuth) , GEN_CMD_CODE(_SetAuth),
GEN_CMD_CODE(_SetKey) , /*20*/ GEN_CMD_CODE(_SetKey), /*20*/
GEN_CMD_CODE(_SetStaKey) , GEN_CMD_CODE(_SetStaKey),
GEN_CMD_CODE(_SetAssocSta) , GEN_CMD_CODE(_SetAssocSta),
GEN_CMD_CODE(_DelAssocSta) , GEN_CMD_CODE(_DelAssocSta),
GEN_CMD_CODE(_SetStaPwrState) , GEN_CMD_CODE(_SetStaPwrState),
GEN_CMD_CODE(_SetBasicRate) , /*25*/ GEN_CMD_CODE(_SetBasicRate), /*25*/
GEN_CMD_CODE(_GetBasicRate) , GEN_CMD_CODE(_GetBasicRate),
GEN_CMD_CODE(_SetDataRate) , GEN_CMD_CODE(_SetDataRate),
GEN_CMD_CODE(_GetDataRate) , GEN_CMD_CODE(_GetDataRate),
GEN_CMD_CODE(_SetPhyInfo) , GEN_CMD_CODE(_SetPhyInfo),
GEN_CMD_CODE(_GetPhyInfo) , /*30*/ GEN_CMD_CODE(_GetPhyInfo), /*30*/
GEN_CMD_CODE(_SetPhy) , GEN_CMD_CODE(_SetPhy),
GEN_CMD_CODE(_GetPhy) , GEN_CMD_CODE(_GetPhy),
GEN_CMD_CODE(_readRssi) , GEN_CMD_CODE(_readRssi),
GEN_CMD_CODE(_readGain) , GEN_CMD_CODE(_readGain),
GEN_CMD_CODE(_SetAtim) , /*35*/ GEN_CMD_CODE(_SetAtim), /*35*/
GEN_CMD_CODE(_SetPwrMode) , GEN_CMD_CODE(_SetPwrMode),
GEN_CMD_CODE(_JoinbssRpt), GEN_CMD_CODE(_JoinbssRpt),
GEN_CMD_CODE(_SetRaTable) , GEN_CMD_CODE(_SetRaTable),
GEN_CMD_CODE(_GetRaTable) , GEN_CMD_CODE(_GetRaTable),
GEN_CMD_CODE(_GetCCXReport), /*40*/ GEN_CMD_CODE(_GetCCXReport), /*40*/
GEN_CMD_CODE(_GetDTMReport), GEN_CMD_CODE(_GetDTMReport),
GEN_CMD_CODE(_GetTXRateStatistics), GEN_CMD_CODE(_GetTXRateStatistics),
GEN_CMD_CODE(_SetUsbSuspend), GEN_CMD_CODE(_SetUsbSuspend),
GEN_CMD_CODE(_SetH2cLbk), GEN_CMD_CODE(_SetH2cLbk),
GEN_CMD_CODE(_AddBAReq) , /*45*/ GEN_CMD_CODE(_AddBAReq), /*45*/
GEN_CMD_CODE(_SetChannel), /*46*/ GEN_CMD_CODE(_SetChannel), /*46*/
GEN_CMD_CODE(_SetTxPower), GEN_CMD_CODE(_SetTxPower),
GEN_CMD_CODE(_SwitchAntenna), GEN_CMD_CODE(_SwitchAntenna),
@ -960,7 +957,7 @@ static struct _cmd_callback rtw_cmd_callback[] =
{GEN_CMD_CODE(_SetPwrMode), NULL}, {GEN_CMD_CODE(_SetPwrMode), NULL},
{GEN_CMD_CODE(_JoinbssRpt), NULL}, {GEN_CMD_CODE(_JoinbssRpt), NULL},
{GEN_CMD_CODE(_SetRaTable), NULL}, {GEN_CMD_CODE(_SetRaTable), NULL},
{GEN_CMD_CODE(_GetRaTable) , NULL}, {GEN_CMD_CODE(_GetRaTable), NULL},
{GEN_CMD_CODE(_GetCCXReport), NULL}, /*40*/ {GEN_CMD_CODE(_GetCCXReport), NULL}, /*40*/
{GEN_CMD_CODE(_GetDTMReport), NULL}, {GEN_CMD_CODE(_GetDTMReport), NULL},

View file

@ -78,9 +78,9 @@
extern u32 GlobalDebugLevel; extern u32 GlobalDebugLevel;
#define DBG_88E_LEVEL(_Level, fmt, arg...) \ #define DBG_88E_LEVEL(_level, fmt, arg...) \
do { \ do { \
if (_Level <= GlobalDebugLevel) \ if (_level <= GlobalDebugLevel) \
_dbgdump(DRIVER_PREFIX"ERROR " fmt, ##arg); \ _dbgdump(DRIVER_PREFIX"ERROR " fmt, ##arg); \
} while (0) } while (0)
@ -96,12 +96,12 @@ extern u32 GlobalDebugLevel;
_dbgdump(DRIVER_PREFIX __VA_ARGS__); \ _dbgdump(DRIVER_PREFIX __VA_ARGS__); \
} while (0) } while (0)
#define RT_TRACE(_Comp, _Level, Fmt) \ #define RT_TRACE(_comp, _level, fmt) \
do { \ do { \
if (_Level <= GlobalDebugLevel) { \ if (_level <= GlobalDebugLevel) { \
_dbgdump("%s [0x%08x,%d]", DRIVER_PREFIX, \ _dbgdump("%s [0x%08x,%d]", DRIVER_PREFIX, \
(unsigned int)_Comp, _Level); \ (unsigned int)_comp, _level); \
_dbgdump Fmt; \ _dbgdump fmt; \
} \ } \
} while (0) } while (0)
@ -119,14 +119,14 @@ extern u32 GlobalDebugLevel;
DRIVER_PREFIX, __func__, __LINE__); \ DRIVER_PREFIX, __func__, __LINE__); \
} while (0) } while (0)
#define RT_PRINT_DATA(_Comp, _Level, _TitleString, _HexData, _HexDataLen)\ #define RT_PRINT_DATA(_comp, _level, _titlestring, _hexdata, _hexdatalen)\
do { \ do { \
if (_Level <= GlobalDebugLevel) { \ if (_level <= GlobalDebugLevel) { \
int __i; \ int __i; \
u8 *ptr = (u8 *)_HexData; \ u8 *ptr = (u8 *)_hexdata; \
_dbgdump("%s", DRIVER_PREFIX); \ _dbgdump("%s", DRIVER_PREFIX); \
_dbgdump(_TitleString); \ _dbgdump(_titlestring); \
for (__i = 0; __i < (int)_HexDataLen; __i++ ) { \ for (__i = 0; __i < (int)_hexdatalen; __i++ ) { \
_dbgdump("%02X%s", ptr[__i], \ _dbgdump("%02X%s", ptr[__i], \
(((__i + 1) % 4) == 0) ? \ (((__i + 1) % 4) == 0) ? \
" " : " "); \ " " : " "); \
@ -137,166 +137,159 @@ extern u32 GlobalDebugLevel;
} \ } \
} while (0) } while (0)
int proc_get_drv_version(char *page, char **start, int proc_get_drv_version(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_get_write_reg(char *page, char **start, int proc_get_write_reg(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_set_write_reg(struct file *file, const char __user *buffer, int proc_set_write_reg(struct file *file, const char __user *buffer,
unsigned long count, void *data);
int proc_get_read_reg(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_set_read_reg(struct file *file, const char __user *buffer,
unsigned long count, void *data); unsigned long count, void *data);
int proc_get_read_reg(char *page, char **start, int proc_get_fwstate(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_get_sec_info(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_get_mlmext_state(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_set_read_reg(struct file *file, const char __user *buffer, int proc_get_qos_option(char *page, char **start,
unsigned long count, void *data); off_t offset, int count,
int *eof, void *data);
int proc_get_ht_option(char *page, char **start,
int proc_get_fwstate(char *page, char **start, off_t offset, int count,
int *eof, void *data);
int proc_get_rf_info(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_get_ap_info(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_get_sec_info(char *page, char **start, int proc_get_adapter_state(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_get_mlmext_state(char *page, char **start, int proc_get_trx_info(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_get_qos_option(char *page, char **start, int proc_get_mac_reg_dump1(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_get_ht_option(char *page, char **start, int proc_get_mac_reg_dump2(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_get_rf_info(char *page, char **start, int proc_get_mac_reg_dump3(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_get_ap_info(char *page, char **start, int proc_get_bb_reg_dump1(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_get_adapter_state(char *page, char **start, int proc_get_bb_reg_dump2(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_get_trx_info(char *page, char **start, int proc_get_bb_reg_dump3(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_get_mac_reg_dump1(char *page, char **start, int proc_get_rf_reg_dump1(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_get_mac_reg_dump2(char *page, char **start, int proc_get_rf_reg_dump2(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_get_mac_reg_dump3(char *page, char **start, int proc_get_rf_reg_dump3(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_get_bb_reg_dump1(char *page, char **start, int proc_get_rf_reg_dump4(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_get_bb_reg_dump2(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_get_bb_reg_dump3(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_get_rf_reg_dump1(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_get_rf_reg_dump2(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_get_rf_reg_dump3(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_get_rf_reg_dump4(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
#ifdef CONFIG_AP_MODE #ifdef CONFIG_AP_MODE
int proc_get_all_sta_info(char *page, char **start, int proc_get_all_sta_info(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
#endif #endif
int proc_get_best_channel(char *page, char **start, int proc_get_best_channel(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_get_rx_signal(char *page, char **start, int proc_get_rx_signal(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_set_rx_signal(struct file *file, const char __user *buffer, int proc_set_rx_signal(struct file *file, const char __user *buffer,
unsigned long count, void *data); unsigned long count, void *data);
int proc_get_ht_enable(char *page, char **start, int proc_get_ht_enable(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_set_ht_enable(struct file *file, const char __user *buffer, int proc_set_ht_enable(struct file *file, const char __user *buffer,
unsigned long count, void *data); unsigned long count, void *data);
int proc_get_cbw40_enable(char *page, char **start, int proc_get_cbw40_enable(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_set_cbw40_enable(struct file *file, const char __user *buffer, int proc_set_cbw40_enable(struct file *file, const char __user *buffer,
unsigned long count, void *data); unsigned long count, void *data);
int proc_get_ampdu_enable(char *page, char **start, int proc_get_ampdu_enable(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_set_ampdu_enable(struct file *file, const char __user *buffer, int proc_set_ampdu_enable(struct file *file, const char __user *buffer,
unsigned long count, void *data); unsigned long count, void *data);
int proc_get_rx_stbc(char *page, char **start, int proc_get_rx_stbc(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_set_rx_stbc(struct file *file, const char __user *buffer, int proc_set_rx_stbc(struct file *file, const char __user *buffer,
unsigned long count, void *data); unsigned long count, void *data);
int proc_get_two_path_rssi(char *page, char **start, int proc_get_two_path_rssi(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_get_rssi_disp(char *page, char **start, int proc_get_rssi_disp(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_set_rssi_disp(struct file *file, const char __user *buffer, int proc_set_rssi_disp(struct file *file, const char __user *buffer,
unsigned long count, void *data); unsigned long count, void *data);
#ifdef CONFIG_BT_COEXIST #ifdef CONFIG_BT_COEXIST
int proc_get_btcoex_dbg(char *page, char **start, int proc_get_btcoex_dbg(char *page, char **start,
off_t offset, int count, off_t offset, int count,
int *eof, void *data); int *eof, void *data);
int proc_set_btcoex_dbg(struct file *file, const char *buffer, int proc_set_btcoex_dbg(struct file *file, const char *buffer,
unsigned long count, void *data); signed long count, void *data);
#endif /* CONFIG_BT_COEXIST */ #endif /* CONFIG_BT_COEXIST */

View file

@ -54,16 +54,15 @@
#define EEPROM_CID_CAMEO1 0xF #define EEPROM_CID_CAMEO1 0xF
#define EEPROM_CID_WNC_COREGA 0x12 #define EEPROM_CID_WNC_COREGA 0x12
#define EEPROM_CID_CLEVO 0x13 #define EEPROM_CID_CLEVO 0x13
#define EEPROM_CID_WHQL 0xFE /* added by chiyoko for dtm, 20090108 */ #define EEPROM_CID_WHQL 0xFE
/* */
/* Customer ID, note that: */ /* Customer ID, note that: */
/* This variable is initiailzed through EEPROM or registry, */ /* This variable is initiailzed through EEPROM or registry, */
/* however, its definition may be different with that in EEPROM for */ /* however, its definition may be different with that in EEPROM for */
/* EEPROM size consideration. So, we have to perform proper translation between them. */ /* EEPROM size consideration. So, we have to perform proper translation
* between them. */
/* Besides, CustomerID of registry has precedence of that of EEPROM. */ /* Besides, CustomerID of registry has precedence of that of EEPROM. */
/* defined below. 060703, by rcnjko. */ /* defined below. 060703, by rcnjko. */
/* */
enum RT_CUSTOMER_ID { enum RT_CUSTOMER_ID {
RT_CID_DEFAULT = 0, RT_CID_DEFAULT = 0,
RT_CID_8187_ALPHA0 = 1, RT_CID_8187_ALPHA0 = 1,
@ -83,7 +82,9 @@ enum RT_CUSTOMER_ID {
RT_CID_CHINA_MOBILE = 15, RT_CID_CHINA_MOBILE = 15,
RT_CID_819x_ALPHA = 16, RT_CID_819x_ALPHA = 16,
RT_CID_819x_Sitecom = 17, RT_CID_819x_Sitecom = 17,
RT_CID_CCX = 18, /* It's set under CCX logo test and isn't demanded for CCX functions, but for test behavior like retry limit and tx report. By Bruce, 2009-02-17. */ RT_CID_CCX = 18, /* It's set under CCX logo test and isn't demanded
* for CCX functions, but for test behavior like retry
* limit and tx report. By Bruce, 2009-02-17. */
RT_CID_819x_Lenovo = 19, RT_CID_819x_Lenovo = 19,
RT_CID_819x_QMI = 20, RT_CID_819x_QMI = 20,
RT_CID_819x_Edimax_Belkin = 21, RT_CID_819x_Edimax_Belkin = 21,
@ -92,7 +93,8 @@ enum RT_CUSTOMER_ID {
RT_CID_819x_MSI = 24, RT_CID_819x_MSI = 24,
RT_CID_819x_Acer = 25, RT_CID_819x_Acer = 25,
RT_CID_819x_AzWave_ASUS = 26, RT_CID_819x_AzWave_ASUS = 26,
RT_CID_819x_AzWave = 27, /* For AzWave in PCIe, The ID is AzWave use and not only Asus */ RT_CID_819x_AzWave = 27, /* For AzWave in PCIe,i
* The ID is AzWave use and not only Asus */
RT_CID_819x_HP = 28, RT_CID_819x_HP = 28,
RT_CID_819x_WNC_COREGA = 29, RT_CID_819x_WNC_COREGA = 29,
RT_CID_819x_Arcadyan_Belkin = 30, RT_CID_819x_Arcadyan_Belkin = 30,
@ -119,10 +121,10 @@ struct eeprom_priv {
u8 efuse_eeprom_data[HWSET_MAX_SIZE_512]; u8 efuse_eeprom_data[HWSET_MAX_SIZE_512];
}; };
extern void eeprom_write16(struct adapter *padapter, u16 reg, u16 data); void eeprom_write16(struct adapter *padapter, u16 reg, u16 data);
extern u16 eeprom_read16(struct adapter *padapter, u16 reg); u16 eeprom_read16(struct adapter *padapter, u16 reg);
extern void read_eeprom_content(struct adapter *padapter); void read_eeprom_content(struct adapter *padapter);
extern void eeprom_read_sz(struct adapter * padapter, u16 reg,u8* data, u32 sz); void eeprom_read_sz(struct adapter *adapt, u16 reg, u8 *data, u32 sz);
extern void read_eeprom_content_by_attrib(struct adapter * padapter ); void read_eeprom_content_by_attrib(struct adapter *padapter);
#endif /* __RTL871X_EEPROM_H__ */ #endif /* __RTL871X_EEPROM_H__ */