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

@ -56,7 +56,7 @@ void _PHY_PathADDAOn(struct adapter *pAdapter, u32 *ADDAReg,
bool isPathAOn, bool is2T); bool isPathAOn, bool is2T);
void _PHY_MACSettingCalibration(struct adapter *pAdapter, u32 *MACReg, void _PHY_MACSettingCalibration(struct adapter *pAdapter, u32 *MACReg,
u32 *MACBackup); u32 *MACBackup);
void _PHY_PathAStandBy(struct adapter *pAdapter); void _PHY_PathAStandBy(struct adapter *pAdapter);

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

@ -245,7 +245,7 @@ struct hal_ops {
void (*ReadEFuse)(struct adapter *padapter, u8 efuseType, u16 _offset, void (*ReadEFuse)(struct adapter *padapter, u8 efuseType, u16 _offset,
u16 _size_byte, u8 *pbuf, bool bPseudoTest); u16 _size_byte, u8 *pbuf, bool bPseudoTest);
void (*EFUSEGetEfuseDefinition)(struct adapter *padapter, u8 efuseType, void (*EFUSEGetEfuseDefinition)(struct adapter *padapter, u8 efuseType,
u8 type, void *pOut, bool bPseudoTest); u8 type, void *pOut, bool bPseudoTest);
u16 (*EfuseGetCurrentSize)(struct adapter *padapter, u8 efuseType, u16 (*EfuseGetCurrentSize)(struct adapter *padapter, u8 efuseType,
bool bPseudoTest); bool bPseudoTest);
int (*Efuse_PgPacketRead)(struct adapter *adapter, u8 offset, int (*Efuse_PgPacketRead)(struct adapter *adapter, u8 offset,
@ -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,17 +471,17 @@ 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);
c2h_id_filter rtw_hal_c2h_id_filter_ccx(struct adapter *adapter); c2h_id_filter rtw_hal_c2h_id_filter_ccx(struct adapter *adapter);
#endif /* __HAL_INTF_H__ */ #endif /* __HAL_INTF_H__ */

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;
@ -373,21 +379,21 @@ enum eap_type {
/* Frame control field constants */ /* Frame control field constants */
#define RTW_IEEE80211_FCTL_VERS 0x0003 #define RTW_IEEE80211_FCTL_VERS 0x0003
#define RTW_IEEE80211_FCTL_FTYPE 0x000c #define RTW_IEEE80211_FCTL_FTYPE 0x000c
#define RTW_IEEE80211_FCTL_STYPE 0x00f0 #define RTW_IEEE80211_FCTL_STYPE 0x00f0
#define RTW_IEEE80211_FCTL_TODS 0x0100 #define RTW_IEEE80211_FCTL_TODS 0x0100
#define RTW_IEEE80211_FCTL_FROMDS 0x0200 #define RTW_IEEE80211_FCTL_FROMDS 0x0200
#define RTW_IEEE80211_FCTL_MOREFRAGS 0x0400 #define RTW_IEEE80211_FCTL_MOREFRAGS 0x0400
#define RTW_IEEE80211_FCTL_RETRY 0x0800 #define RTW_IEEE80211_FCTL_RETRY 0x0800
#define RTW_IEEE80211_FCTL_PM 0x1000 #define RTW_IEEE80211_FCTL_PM 0x1000
#define RTW_IEEE80211_FCTL_MOREDATA 0x2000 #define RTW_IEEE80211_FCTL_MOREDATA 0x2000
#define RTW_IEEE80211_FCTL_PROTECTED 0x4000 #define RTW_IEEE80211_FCTL_PROTECTED 0x4000
#define RTW_IEEE80211_FCTL_ORDER 0x8000 #define RTW_IEEE80211_FCTL_ORDER 0x8000
#define RTW_IEEE80211_FCTL_CTL_EXT 0x0f00 #define RTW_IEEE80211_FCTL_CTL_EXT 0x0f00
#define RTW_IEEE80211_FTYPE_MGMT 0x0000 #define RTW_IEEE80211_FTYPE_MGMT 0x0000
#define RTW_IEEE80211_FTYPE_CTL 0x0004 #define RTW_IEEE80211_FTYPE_CTL 0x0004
#define RTW_IEEE80211_FTYPE_DATA 0x0008 #define RTW_IEEE80211_FTYPE_DATA 0x0008
#define RTW_IEEE80211_FTYPE_EXT 0x000c #define RTW_IEEE80211_FTYPE_EXT 0x000c
/* management */ /* management */
@ -397,36 +403,36 @@ enum eap_type {
#define RTW_IEEE80211_STYPE_REASSOC_RESP 0x0030 #define RTW_IEEE80211_STYPE_REASSOC_RESP 0x0030
#define RTW_IEEE80211_STYPE_PROBE_REQ 0x0040 #define RTW_IEEE80211_STYPE_PROBE_REQ 0x0040
#define RTW_IEEE80211_STYPE_PROBE_RESP 0x0050 #define RTW_IEEE80211_STYPE_PROBE_RESP 0x0050
#define RTW_IEEE80211_STYPE_BEACON 0x0080 #define RTW_IEEE80211_STYPE_BEACON 0x0080
#define RTW_IEEE80211_STYPE_ATIM 0x0090 #define RTW_IEEE80211_STYPE_ATIM 0x0090
#define RTW_IEEE80211_STYPE_DISASSOC 0x00A0 #define RTW_IEEE80211_STYPE_DISASSOC 0x00A0
#define RTW_IEEE80211_STYPE_AUTH 0x00B0 #define RTW_IEEE80211_STYPE_AUTH 0x00B0
#define RTW_IEEE80211_STYPE_DEAUTH 0x00C0 #define RTW_IEEE80211_STYPE_DEAUTH 0x00C0
#define RTW_IEEE80211_STYPE_ACTION 0x00D0 #define RTW_IEEE80211_STYPE_ACTION 0x00D0
/* control */ /* control */
#define RTW_IEEE80211_STYPE_CTL_EXT 0x0060 #define RTW_IEEE80211_STYPE_CTL_EXT 0x0060
#define RTW_IEEE80211_STYPE_BACK_REQ 0x0080 #define RTW_IEEE80211_STYPE_BACK_REQ 0x0080
#define RTW_IEEE80211_STYPE_BACK 0x0090 #define RTW_IEEE80211_STYPE_BACK 0x0090
#define RTW_IEEE80211_STYPE_PSPOLL 0x00A0 #define RTW_IEEE80211_STYPE_PSPOLL 0x00A0
#define RTW_IEEE80211_STYPE_RTS 0x00B0 #define RTW_IEEE80211_STYPE_RTS 0x00B0
#define RTW_IEEE80211_STYPE_CTS 0x00C0 #define RTW_IEEE80211_STYPE_CTS 0x00C0
#define RTW_IEEE80211_STYPE_ACK 0x00D0 #define RTW_IEEE80211_STYPE_ACK 0x00D0
#define RTW_IEEE80211_STYPE_CFEND 0x00E0 #define RTW_IEEE80211_STYPE_CFEND 0x00E0
#define RTW_IEEE80211_STYPE_CFENDACK 0x00F0 #define RTW_IEEE80211_STYPE_CFENDACK 0x00F0
/* data */ /* data */
#define RTW_IEEE80211_STYPE_DATA 0x0000 #define RTW_IEEE80211_STYPE_DATA 0x0000
#define RTW_IEEE80211_STYPE_DATA_CFACK 0x0010 #define RTW_IEEE80211_STYPE_DATA_CFACK 0x0010
#define RTW_IEEE80211_STYPE_DATA_CFPOLL 0x0020 #define RTW_IEEE80211_STYPE_DATA_CFPOLL 0x0020
#define RTW_IEEE80211_STYPE_DATA_CFACKPOLL 0x0030 #define RTW_IEEE80211_STYPE_DATA_CFACKPOLL 0x0030
#define RTW_IEEE80211_STYPE_NULLFUNC 0x0040 #define RTW_IEEE80211_STYPE_NULLFUNC 0x0040
#define RTW_IEEE80211_STYPE_CFACK 0x0050 #define RTW_IEEE80211_STYPE_CFACK 0x0050
#define RTW_IEEE80211_STYPE_CFPOLL 0x0060 #define RTW_IEEE80211_STYPE_CFPOLL 0x0060
#define RTW_IEEE80211_STYPE_CFACKPOLL 0x0070 #define RTW_IEEE80211_STYPE_CFACKPOLL 0x0070
#define RTW_IEEE80211_STYPE_QOS_DATA 0x0080 #define RTW_IEEE80211_STYPE_QOS_DATA 0x0080
#define RTW_IEEE80211_STYPE_QOS_DATA_CFACK 0x0090 #define RTW_IEEE80211_STYPE_QOS_DATA_CFACK 0x0090
#define RTW_IEEE80211_STYPE_QOS_DATA_CFPOLL 0x00A0 #define RTW_IEEE80211_STYPE_QOS_DATA_CFPOLL 0x00A0
#define RTW_IEEE80211_STYPE_QOS_DATA_CFACKPOLL 0x00B0 #define RTW_IEEE80211_STYPE_QOS_DATA_CFACKPOLL 0x00B0
#define RTW_IEEE80211_STYPE_QOS_NULLFUNC 0x00C0 #define RTW_IEEE80211_STYPE_QOS_NULLFUNC 0x00C0
#define RTW_IEEE80211_STYPE_QOS_CFACK 0x00D0 #define RTW_IEEE80211_STYPE_QOS_CFACK 0x00D0
@ -445,7 +451,7 @@ enum eap_type {
/* QoS, QOS */ /* QoS, QOS */
#define NORMAL_ACK 0 #define NORMAL_ACK 0
#define NO_ACK 1 #define NO_ACK 1
#define NON_EXPLICIT_ACK 2 #define NON_EXPLICIT_ACK 2
#define BLOCK_ACK 3 #define BLOCK_ACK 3
#ifndef ETH_P_PAE #ifndef ETH_P_PAE
@ -618,22 +624,25 @@ 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_RATE_5MB_MASK | \ (IEEE80211_CCK_BASIC_RATES_MASK | \
IEEE80211_CCK_RATE_5MB_MASK | \
IEEE80211_CCK_RATE_11MB_MASK) IEEE80211_CCK_RATE_11MB_MASK)
#define IEEE80211_OFDM_RATES_MASK 0x00000FF0 #define IEEE80211_OFDM_RATES_MASK 0x00000FF0
#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_RATE_9MB_MASK | \ (IEEE80211_OFDM_BASIC_RATES_MASK | \
IEEE80211_OFDM_RATE_18MB_MASK | \ IEEE80211_OFDM_RATE_9MB_MASK | \
IEEE80211_OFDM_RATE_36MB_MASK | \ IEEE80211_OFDM_RATE_18MB_MASK | \
IEEE80211_OFDM_RATE_48MB_MASK | \ IEEE80211_OFDM_RATE_36MB_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_CCK_DEFAULT_RATES_MASK) (IEEE80211_OFDM_DEFAULT_RATES_MASK | \
IEEE80211_CCK_DEFAULT_RATES_MASK)
#define IEEE80211_NUM_OFDM_RATES 8 #define IEEE80211_NUM_OFDM_RATES 8
#define IEEE80211_NUM_CCK_RATES 4 #define IEEE80211_NUM_CCK_RATES 4
@ -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,
@ -1031,14 +1040,14 @@ enum rtw_ieee80211_back_actioncode {
/* HT features action code */ /* HT features action code */
enum rtw_ieee80211_ht_actioncode { enum rtw_ieee80211_ht_actioncode {
RTW_WLAN_ACTION_NOTIFY_CH_WIDTH = 0, RTW_WLAN_ACTION_NOTIFY_CH_WIDTH = 0,
RTW_WLAN_ACTION_SM_PS = 1, RTW_WLAN_ACTION_SM_PS = 1,
RTW_WLAN_ACTION_PSPM = 2, RTW_WLAN_ACTION_PSPM = 2,
RTW_WLAN_ACTION_PCO_PHASE = 3, RTW_WLAN_ACTION_PCO_PHASE = 3,
RTW_WLAN_ACTION_MIMO_CSI_MX = 4, RTW_WLAN_ACTION_MIMO_CSI_MX = 4,
RTW_WLAN_ACTION_MIMO_NONCP_BF = 5, RTW_WLAN_ACTION_MIMO_NONCP_BF = 5,
RTW_WLAN_ACTION_MIMP_CP_BF = 6, RTW_WLAN_ACTION_MIMP_CP_BF = 6,
RTW_WLAN_ACTION_ASEL_INDICATES_FB = 7, RTW_WLAN_ACTION_ASEL_INDICATES_FB = 7,
RTW_WLAN_ACTION_HI_INFO_EXCHG = 8, RTW_WLAN_ACTION_HI_INFO_EXCHG = 8,
}; };
/* BACK (block-ack) parties */ /* BACK (block-ack) parties */
@ -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

@ -44,7 +44,7 @@
#define ETH_P_ARP 0x0806 /* Address Resolution packet */ #define ETH_P_ARP 0x0806 /* Address Resolution packet */
#define ETH_P_BPQ 0x08FF /* G8BPQ AX.25 Ethernet Packet */ #define ETH_P_BPQ 0x08FF /* G8BPQ AX.25 Ethernet Packet */
#define ETH_P_IEEEPUP 0x0a00 /* Xerox IEEE802.3 PUP packet */ #define ETH_P_IEEEPUP 0x0a00 /* Xerox IEEE802.3 PUP packet */
#define ETH_P_IEEEPUPAT 0x0a01 /* Xerox IEEE802.3 PUP */ #define ETH_P_IEEEPUPAT 0x0a01 /* Xerox IEEE802.3 PUP */
#define ETH_P_DEC 0x6000 /* DEC Assigned proto */ #define ETH_P_DEC 0x6000 /* DEC Assigned proto */
#define ETH_P_DNA_DL 0x6001 /* DEC DNA Dump/Load */ #define ETH_P_DNA_DL 0x6001 /* DEC DNA Dump/Load */
#define ETH_P_DNA_RC 0x6002 /* DEC DNA Remote Console */ #define ETH_P_DNA_RC 0x6002 /* DEC DNA Remote Console */
@ -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,8 +99,8 @@ 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)
#define rtw_cfg80211_send_rx_assoc(dev, bss, buf, len) \ #define rtw_cfg80211_send_rx_assoc(dev, bss, buf, len) \

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

@ -31,9 +31,9 @@
/* For Production Kit with Agilent Equipments */ /* For Production Kit with Agilent Equipments */
/* in order to make our custom oids hopefully somewhat unique */ /* in order to make our custom oids hopefully somewhat unique */
/* we will use 0xFF (indicating implementation specific OID) */ /* we will use 0xFF (indicating implementation specific OID) */
/* 81(first byte of non zero Realtek unique identifier) */ /* 81(first byte of non zero Realtek unique identifier) */
/* 80 (second byte of non zero Realtek unique identifier) */ /* 80 (second byte of non zero Realtek unique identifier) */
/* XX (the custom OID number - providing 255 possible custom oids) */ /* XX (the custom OID number - providing 255 possible custom oids) */
#define OID_RT_PRO_RESET_DUT 0xFF818000 #define OID_RT_PRO_RESET_DUT 0xFF818000
#define OID_RT_PRO_SET_DATA_RATE 0xFF818001 #define OID_RT_PRO_SET_DATA_RATE 0xFF818001
@ -98,13 +98,14 @@
/* by Owen for RTL8185 Phy Status Report Utility */ /* by Owen for RTL8185 Phy Status Report Utility */
#define OID_RT_UTILITY_false_ALARM_COUNTERS 0xFF818580 #define OID_RT_UTILITY_false_ALARM_COUNTERS 0xFF818580
#define OID_RT_UTILITY_SELECT_DEBUG_MODE 0xFF818581 #define OID_RT_UTILITY_SELECT_DEBUG_MODE 0xFF818581
#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 \
#define OID_RT_UTILITY_GET_CHANNEL_ESTIMATION_STATUS 0xFF818586 0xFF818585
#define OID_RT_UTILITY_GET_CHANNEL_ESTIMATION_STATUS 0xFF818586
/* */ /* */
/* by Owen on 03/09/19-03/09/22 for RTL8185 */ /* by Owen on 03/09/19-03/09/22 for RTL8185 */
@ -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

File diff suppressed because it is too large Load diff

View file

@ -18,24 +18,19 @@
* *
******************************************************************************/ ******************************************************************************/
#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
#define DESC92C_RATE5_5M 0x02 #define DESC92C_RATE5_5M 0x02
#define DESC92C_RATE11M 0x03 #define DESC92C_RATE11M 0x03
/* OFDM Rates, TxHT = 0 */ /* OFDM Rates, TxHT = 0 */
#define DESC92C_RATE6M 0x04 #define DESC92C_RATE6M 0x04
#define DESC92C_RATE9M 0x05 #define DESC92C_RATE9M 0x05
#define DESC92C_RATE12M 0x06 #define DESC92C_RATE12M 0x06
#define DESC92C_RATE18M 0x07 #define DESC92C_RATE18M 0x07
#define DESC92C_RATE24M 0x08 #define DESC92C_RATE24M 0x08
@ -44,35 +39,32 @@
#define DESC92C_RATE54M 0x0b #define DESC92C_RATE54M 0x0b
/* MCS Rates, TxHT = 1 */ /* MCS Rates, TxHT = 1 */
#define DESC92C_RATEMCS0 0x0c #define DESC92C_RATEMCS0 0x0c
#define DESC92C_RATEMCS1 0x0d #define DESC92C_RATEMCS1 0x0d
#define DESC92C_RATEMCS2 0x0e #define DESC92C_RATEMCS2 0x0e
#define DESC92C_RATEMCS3 0x0f #define DESC92C_RATEMCS3 0x0f
#define DESC92C_RATEMCS4 0x10 #define DESC92C_RATEMCS4 0x10
#define DESC92C_RATEMCS5 0x11 #define DESC92C_RATEMCS5 0x11
#define DESC92C_RATEMCS6 0x12 #define DESC92C_RATEMCS6 0x12
#define DESC92C_RATEMCS7 0x13 #define DESC92C_RATEMCS7 0x13
#define DESC92C_RATEMCS8 0x14 #define DESC92C_RATEMCS8 0x14
#define DESC92C_RATEMCS9 0x15 #define DESC92C_RATEMCS9 0x15
#define DESC92C_RATEMCS10 0x16 #define DESC92C_RATEMCS10 0x16
#define DESC92C_RATEMCS11 0x17 #define DESC92C_RATEMCS11 0x17
#define DESC92C_RATEMCS12 0x18 #define DESC92C_RATEMCS12 0x18
#define DESC92C_RATEMCS13 0x19 #define DESC92C_RATEMCS13 0x19
#define DESC92C_RATEMCS14 0x1a #define DESC92C_RATEMCS14 0x1a
#define DESC92C_RATEMCS15 0x1b #define DESC92C_RATEMCS15 0x1b
#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( enum ODM_RF_RADIO_PATH Content,
struct odm_dm_struct * pDM_Odm, enum ODM_RF_RADIO_PATH eRFPath);
enum ODM_RF_RADIO_PATH Content,
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

@ -24,133 +24,122 @@
/* */ /* */
/* 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()! */
/* */
#define ODM_DBG_OFF 1
/* */ /* Never used in a call to ODM_RT_TRACE()! */
/* Fatal bug. */ #define ODM_DBG_OFF 1
/* For example, Tx/Rx/IO locked up, OS hangs, memory access violation, */
/* resource allocation failed, unexpected HW behavior, HW BUG and so on. */ /* Fatal bug. */
/* */ /* For example, Tx/Rx/IO locked up, OS hangs, memory access violation, */
/* 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 descr. completed status, */
/* For example, Tx/Rx descriptor to fill, Tx/Rx descriptor 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
#define ODM_COMP_DYNAMIC_TXPWR BIT2 #define ODM_COMP_DYNAMIC_TXPWR BIT2
#define ODM_COMP_FA_CNT BIT3 #define ODM_COMP_FA_CNT BIT3
#define ODM_COMP_RSSI_MONITOR BIT4 #define ODM_COMP_RSSI_MONITOR BIT4
#define ODM_COMP_CCK_PD BIT5 #define ODM_COMP_CCK_PD BIT5
#define ODM_COMP_ANT_DIV BIT6 #define ODM_COMP_ANT_DIV BIT6
#define ODM_COMP_PWR_SAVE BIT7 #define ODM_COMP_PWR_SAVE BIT7
#define ODM_COMP_PWR_TRA BIT8 #define ODM_COMP_PWR_TRA BIT8
#define ODM_COMP_RATE_ADAPTIVE BIT9 #define ODM_COMP_RATE_ADAPTIVE BIT9
#define ODM_COMP_PATH_DIV BIT10 #define ODM_COMP_PATH_DIV BIT10
#define ODM_COMP_PSD BIT11 #define ODM_COMP_PSD BIT11
#define ODM_COMP_DYNAMIC_PRICCA BIT12 #define ODM_COMP_DYNAMIC_PRICCA BIT12
#define ODM_COMP_RXHP BIT13 #define ODM_COMP_RXHP BIT13
/* MAC Functions */ /* MAC Functions */
#define ODM_COMP_EDCA_TURBO BIT16 #define ODM_COMP_EDCA_TURBO BIT16
#define ODM_COMP_EARLY_MODE BIT17 #define ODM_COMP_EARLY_MODE BIT17
/* RF Functions */ /* RF Functions */
#define ODM_COMP_TX_PWR_TRACK BIT24 #define ODM_COMP_TX_PWR_TRACK BIT24
#define ODM_COMP_RX_GAIN_TRACK BIT25 #define ODM_COMP_RX_GAIN_TRACK BIT25
#define ODM_COMP_CALIBRATION BIT26 #define ODM_COMP_CALIBRATION BIT26
/* Common Functions */ /* Common Functions */
#define ODM_COMP_COMMON BIT30 #define ODM_COMP_COMMON BIT30
#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)
#endif #endif
#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) \
DbgPrint("[ODM-92D] "); \ DbgPrint("[ODM-92D] "); \
else if (pDM_Odm->SupportICType == ODM_RTL8723A) \ else if (pDM_Odm->SupportICType == ODM_RTL8723A) \
DbgPrint("[ODM-8723A] "); \ DbgPrint("[ODM-8723A] "); \
else if (pDM_Odm->SupportICType == ODM_RTL8188E) \ else if (pDM_Odm->SupportICType == ODM_RTL8188E) \
DbgPrint("[ODM-8188E] "); \ DbgPrint("[ODM-8188E] "); \
else if (pDM_Odm->SupportICType == ODM_RTL8812) \ else if (pDM_Odm->SupportICType == ODM_RTL8812) \
DbgPrint("[ODM-8812] "); \ DbgPrint("[ODM-8812] "); \
else if (pDM_Odm->SupportICType == ODM_RTL8821) \ else if (pDM_Odm->SupportICType == ODM_RTL8821) \
DbgPrint("[ODM-8821] "); \ DbgPrint("[ODM-8821] "); \
RT_PRINTK fmt; \ RT_PRINTK fmt; \
} }
#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__, \
RT_PRINTK fmt; \ __func__, __LINE__); \
ASSERT(false); \ RT_PRINTK fmt; \
} ASSERT(false); \
}
#define ODM_dbg_enter() { DbgPrint("==> %s\n", __func__); } #define ODM_dbg_enter() { DbgPrint("==> %s\n", __func__); }
#define ODM_dbg_exit() { DbgPrint("<== %s\n", __func__); } #define ODM_dbg_exit() { DbgPrint("<== %s\n", __func__); }
#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
#define ODM_RT_TRACE(pDM_Odm, comp, level, fmt) #define ODM_RT_TRACE(pDM_Odm, comp, level, fmt)
#define ODM_RT_TRACE_F(pDM_Odm, comp, level, fmt) #define ODM_RT_TRACE_F(pDM_Odm, comp, level, fmt)

View file

@ -49,39 +49,33 @@ ODM_REG(DIG,_pDM_Odm)
#define _bit_11N(_name) ODM_BIT_##_name##_11N #define _bit_11N(_name) ODM_BIT_##_name##_11N
#define _bit_11AC(_name) ODM_BIT_##_name##_11AC #define _bit_11AC(_name) ODM_BIT_##_name##_11AC
#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",
#define ODM_REG(_name, _pDM_Odm) _cat(_name, _pDM_Odm->SupportICType, _reg) * depends on SupportICType. */
#define ODM_BIT(_name, _pDM_Odm) _cat(_name, _pDM_Odm->SupportICType, _bit) #define ODM_REG(_name, _pDM_Odm) _cat(_name, _pDM_Odm->SupportICType, _reg)
#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 list_head queue;
spinlock_t lock;
};
struct __queue { #define thread_exit() complete_and_exit(NULL, 0)
struct list_head queue;
spinlock_t lock;
};
#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); void rtw_hostapd_mlme_rx(struct adapter *padapter, union recv_frame *recv_fr);
extern void rtw_handle_tkip_mic_err(struct adapter *padapter,u8 bgroup); void rtw_handle_tkip_mic_err(struct adapter *padapter, u8 bgroup);
int rtw_init_recv_priv(struct recv_priv *precvpriv, struct adapter *padapter);
void rtw_free_recv_priv(struct recv_priv *precvpriv);
int rtw_init_recv_priv(struct recv_priv *precvpriv, struct adapter *padapter); int rtw_os_recv_resource_init(struct recv_priv *recvpr, struct adapter *adapt);
void rtw_free_recv_priv (struct recv_priv *precvpriv); int rtw_os_recv_resource_alloc(struct adapter *adapt, union recv_frame *recvfr);
int rtw_os_recv_resource_init(struct recv_priv *precvpriv, struct adapter *padapter);
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,41 +117,39 @@ 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 {
u8 mode; u8 mode;
u8 gpio_index; u8 gpio_index;
u8 gpio_duration; u8 gpio_duration;
u8 second_mode; u8 second_mode;
u8 reserve; u8 reserve;
}; };
struct setaoac_glocal_info { struct setaoac_glocal_info {
u8 pairwiseEncAlg; u8 pairwiseEncAlg;
u8 groupEncAlg; u8 groupEncAlg;
}; };
#define FW_WOWLAN_FUN_EN BIT(0) #define FW_WOWLAN_FUN_EN BIT(0)
#define FW_WOWLAN_PATTERN_MATCH BIT(1) #define FW_WOWLAN_PATTERN_MATCH BIT(1)
#define FW_WOWLAN_MAGIC_PKT BIT(2) #define FW_WOWLAN_MAGIC_PKT BIT(2)
#define FW_WOWLAN_UNICAST BIT(3) #define FW_WOWLAN_UNICAST BIT(3)
#define FW_WOWLAN_ALL_PKT_DROP BIT(4) #define FW_WOWLAN_ALL_PKT_DROP BIT(4)
#define FW_WOWLAN_GPIO_ACTIVE BIT(5) #define FW_WOWLAN_GPIO_ACTIVE BIT(5)
#define FW_WOWLAN_REKEY_WAKEUP BIT(6) #define FW_WOWLAN_REKEY_WAKEUP BIT(6)
@ -161,9 +159,9 @@ struct setaoac_glocal_info {
#define FW_FW_PARSE_MAGIC_PKT BIT(1) #define FW_FW_PARSE_MAGIC_PKT BIT(1)
#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

@ -37,50 +37,48 @@
#include "odm_precomp.h" #include "odm_precomp.h"
/* Fw Array */ /* Fw Array */
#define Rtl8188E_FwImageArray Rtl8188EFwImgArray #define Rtl8188E_FwImageArray Rtl8188EFwImgArray
#define Rtl8188E_FWImgArrayLength Rtl8188EFWImgArrayLength #define Rtl8188E_FWImgArrayLength Rtl8188EFWImgArrayLength
#ifdef CONFIG_WOWLAN #ifdef CONFIG_WOWLAN
#define Rtl8188E_FwWoWImageArray Array_8188E_FW_WoWLAN #define Rtl8188E_FwWoWImageArray Array_8188E_FW_WoWLAN
#define Rtl8188E_FwWoWImgArrayLength ArrayLength_8188E_FW_WoWLAN #define Rtl8188E_FwWoWImgArrayLength ArrayLength_8188E_FW_WoWLAN
#endif /* CONFIG_WOWLAN */ #endif /* CONFIG_WOWLAN */
#define RTL8188E_FW_UMC_IMG "rtl8188E\\rtl8188efw.bin" #define RTL8188E_FW_UMC_IMG "rtl8188E\\rtl8188efw.bin"
#define RTL8188E_PHY_REG "rtl8188E\\PHY_REG_1T.txt" #define RTL8188E_PHY_REG "rtl8188E\\PHY_REG_1T.txt"
#define RTL8188E_PHY_RADIO_A "rtl8188E\\radio_a_1T.txt" #define RTL8188E_PHY_RADIO_A "rtl8188E\\radio_a_1T.txt"
#define RTL8188E_PHY_RADIO_B "rtl8188E\\radio_b_1T.txt" #define RTL8188E_PHY_RADIO_B "rtl8188E\\radio_b_1T.txt"
#define RTL8188E_AGC_TAB "rtl8188E\\AGC_TAB_1T.txt" #define RTL8188E_AGC_TAB "rtl8188E\\AGC_TAB_1T.txt"
#define RTL8188E_PHY_MACREG "rtl8188E\\MAC_REG.txt" #define RTL8188E_PHY_MACREG "rtl8188E\\MAC_REG.txt"
#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 #define Rtl8188E_NIC_ENABLE_FLOW rtl8188E_card_enable_flow
#define Rtl8188E_NIC_ENABLE_FLOW rtl8188E_card_enable_flow #define Rtl8188E_NIC_SUSPEND_FLOW rtl8188E_suspend_flow
#define Rtl8188E_NIC_SUSPEND_FLOW rtl8188E_suspend_flow #define Rtl8188E_NIC_RESUME_FLOW rtl8188E_resume_flow
#define Rtl8188E_NIC_RESUME_FLOW rtl8188E_resume_flow #define Rtl8188E_NIC_PDN_FLOW rtl8188E_hwpdn_flow
#define Rtl8188E_NIC_PDN_FLOW rtl8188E_hwpdn_flow #define Rtl8188E_NIC_LPS_ENTER_FLOW rtl8188E_enter_lps_flow
#define Rtl8188E_NIC_LPS_ENTER_FLOW rtl8188E_enter_lps_flow #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 */
#define FW_8188E_START_ADDRESS 0x1000 #define FW_8188E_START_ADDRESS 0x1000
#define FW_8188E_END_ADDRESS 0x1FFF /* 0x5FFF */ #define FW_8188E_END_ADDRESS 0x1FFF /* 0x5FFF */
#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) == 0x88E0) (le16_to_cpu(_pFwHdr->Signature)&0xFFF0) == 0x2300 || \
(le16_to_cpu(_pFwHdr->Signature)&0xFFF0) == 0x88E0)
enum firmware_source { enum firmware_source {
FW_SOURCE_IMG_FILE = 0, FW_SOURCE_IMG_FILE = 0,
@ -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
__le16 Version; /* FW Version */ * indcation, for further use when
* driver needs to download different
* FW for different conditions */
__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,34 +141,38 @@ 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 */
/* BK, BE, VI, VO, HCCA, MANAGEMENT, COMMAND, HIGH, BEACON. */ /* BK, BE, VI, VO, HCCA, MANAGEMENT, COMMAND, HIGH, BEACON. */
#define MAX_TX_QUEUE 9 #define MAX_TX_QUEUE 9
#define TX_SELE_HQ BIT(0) /* High Queue */ #define TX_SELE_HQ BIT(0) /* High Queue */
#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,
@ -204,20 +206,19 @@ 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;
@ -313,13 +307,11 @@ struct hal_data_8188e {
u8 EEPROMThermalMeter; u8 EEPROMThermalMeter;
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 EfuseUsedPercentage; u8 EfuseMap[2][HWSET_MAX_SIZE_512];
struct efuse_hal EfuseHal; u8 EfuseUsedPercentage;
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];
@ -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];
@ -356,12 +352,12 @@ struct hal_data_8188e {
u32 CCKTxPowerLevelOriginalOffset; u32 CCKTxPowerLevelOriginalOffset;
u8 CrystalCap; u8 CrystalCap;
u32 AntennaTxPath; /* Antenna path Tx */ u32 AntennaTxPath; /* Antenna path Tx */
u32 AntennaRxPath; /* Antenna path Rx */ u32 AntennaRxPath; /* Antenna path Rx */
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,8 +422,9 @@ 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
u8 bMacPwrCtrlOn; * for MAC only */
u8 bMacPwrCtrlOn;
u32 UsbBulkOutSize; u32 UsbBulkOutSize;
@ -435,67 +434,81 @@ struct hal_data_8188e {
u8 C2hArray[16]; u8 C2hArray[16];
u8 UsbTxAggMode; u8 UsbTxAggMode;
u8 UsbTxAggDescNum; u8 UsbTxAggDescNum;
u16 HwRxPageSize; /* Hardware setting */ u16 HwRxPageSize; /* Hardware setting */
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) \
#define GET_RF_TYPE(priv) (GET_HAL_DATA(priv)->rf_type) ((struct hal_data_8188e *)((__pAdapter)->HalData))
#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

@ -20,17 +20,17 @@
#ifndef __RTL8188E_RF_H__ #ifndef __RTL8188E_RF_H__
#define __RTL8188E_RF_H__ #define __RTL8188E_RF_H__
#define RF6052_MAX_TX_PWR 0x3F #define RF6052_MAX_TX_PWR 0x3F
#define RF6052_MAX_REG 0x3F #define RF6052_MAX_REG 0x3F
#define RF6052_MAX_PATH 2 #define RF6052_MAX_PATH 2
int PHY_RF6052_Config8188E(struct adapter *Adapter); 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 */
@ -59,50 +66,50 @@
/* OFFSET 4 */ /* OFFSET 4 */
#define PKT_OFFSET_SZ 0 #define PKT_OFFSET_SZ 0
#define QSEL_SHT 8 #define QSEL_SHT 8
#define RATE_ID_SHT 16 #define RATE_ID_SHT 16
#define NAVUSEHDR BIT(20) #define NAVUSEHDR BIT(20)
#define SEC_TYPE_SHT 22 #define SEC_TYPE_SHT 22
#define PKT_OFFSET_SHT 26 #define PKT_OFFSET_SHT 26
/* OFFSET 8 */ /* OFFSET 8 */
#define AGG_EN BIT(12) #define AGG_EN BIT(12)
#define AGG_BK BIT(16) #define AGG_BK BIT(16)
#define AMPDU_DENSITY_SHT 20 #define AMPDU_DENSITY_SHT 20
#define ANTSEL_A BIT(24) #define ANTSEL_A BIT(24)
#define ANTSEL_B BIT(25) #define ANTSEL_B BIT(25)
#define TX_ANT_CCK_SHT 26 #define TX_ANT_CCK_SHT 26
#define TX_ANTL_SHT 28 #define TX_ANTL_SHT 28
#define TX_ANT_HT_SHT 30 #define TX_ANT_HT_SHT 30
/* OFFSET 12 */ /* OFFSET 12 */
#define SEQ_SHT 16 #define SEQ_SHT 16
#define EN_HWSEQ BIT(31) #define EN_HWSEQ BIT(31)
/* OFFSET 16 */ /* OFFSET 16 */
#define QOS BIT(6) #define QOS BIT(6)
#define HW_SSN BIT(7) #define HW_SSN BIT(7)
#define USERATE BIT(8) #define USERATE BIT(8)
#define DISDATAFB BIT(10) #define DISDATAFB BIT(10)
#define CTS_2_SELF BIT(11) #define CTS_2_SELF BIT(11)
#define RTS_EN BIT(12) #define RTS_EN BIT(12)
#define HW_RTS_EN BIT(13) #define HW_RTS_EN BIT(13)
#define DATA_SHORT BIT(24) #define DATA_SHORT BIT(24)
#define PWR_STATUS_SHT 15 #define PWR_STATUS_SHT 15
#define DATA_SC_SHT 20 #define DATA_SC_SHT 20
#define DATA_BW BIT(25) #define DATA_BW BIT(25)
/* 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)
#define USB_TXAGG_NUM_SHT 24 #define USB_TXAGG_NUM_SHT 24
#define txdesc_set_ccx_sw_88e(txdesc, value) \ #define txdesc_set_ccx_sw_88e(txdesc, value) \
@ -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

@ -56,7 +56,7 @@ struct br_ext_info {
unsigned int nat25_disable; unsigned int nat25_disable;
unsigned int macclone_enable; unsigned int macclone_enable;
unsigned int dhcp_bcst_disable; unsigned int dhcp_bcst_disable;
int addPPPoETag; /* 1: Add PPPoE relay-SID, 0: disable */ int addPPPoETag; /* 1: Add PPPoE relay-SID, 0: disable */
unsigned char nat25_dmzMac[MACADDRLEN]; unsigned char nat25_dmzMac[MACADDRLEN];
unsigned int nat25sc_disable; unsigned int nat25sc_disable;
}; };

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,11 +250,12 @@ 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.
u8 set_tx; /* 1: main tx key for wep. 0: other key. */ * 0: this is the unicast key for 802.1x */
u8 key[16]; /* this could be 40 or 104 */ u8 set_tx; /* 1: main tx key for wep. 0: other key. */
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:
@ -757,134 +752,136 @@ Result:
*/ */
#define H2C_RSP_OFFSET 512 #define H2C_RSP_OFFSET 512
#define H2C_SUCCESS 0x00 #define H2C_SUCCESS 0x00
#define H2C_SUCCESS_RSP 0x01 #define H2C_SUCCESS_RSP 0x01
#define H2C_DUPLICATED 0x02 #define H2C_DUPLICATED 0x02
#define H2C_DROPPED 0x03 #define H2C_DROPPED 0x03
#define H2C_PARAMETERS_ERROR 0x04 #define H2C_PARAMETERS_ERROR 0x04
#define H2C_REJECTED 0x05 #define H2C_REJECTED 0x05
#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,
int *eof, void *data);
int proc_get_write_reg(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
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);
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_get_write_reg(char *page, char **start, int proc_get_qos_option(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_get_ht_option(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,
int *eof, void *data);
int proc_get_adapter_state(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_get_trx_info(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_get_mac_reg_dump1(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_get_mac_reg_dump2(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_get_mac_reg_dump3(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
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_set_write_reg(struct file *file, const char __user *buffer, int proc_get_bb_reg_dump2(char *page, char **start,
unsigned long count, void *data);
int proc_get_read_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_read_reg(struct file *file, const char __user *buffer, int proc_get_bb_reg_dump3(char *page, char **start,
unsigned long count, void *data);
int proc_get_fwstate(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_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_mlmext_state(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_qos_option(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_ht_option(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_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,
int *eof, void *data);
int proc_get_adapter_state(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_get_trx_info(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_get_mac_reg_dump1(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_get_mac_reg_dump2(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_get_mac_reg_dump3(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_get_bb_reg_dump1(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,
int *eof, void *data);
int proc_set_rx_signal(struct file *file, const char __user *buffer,
unsigned long count, void *data);
int proc_get_ht_enable(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_set_ht_enable(struct file *file, const char __user *buffer,
unsigned long count, void *data);
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_rx_signal(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_ht_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_ht_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_cbw40_enable(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_cbw40_enable(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_ampdu_enable(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_set_ampdu_enable(struct file *file, const char __user *buffer, int proc_get_rssi_disp(char *page, char **start,
unsigned long count, void *data); off_t offset, int count,
int *eof, void *data);
int proc_get_rx_stbc(char *page, char **start, int proc_set_rssi_disp(struct file *file, const char __user *buffer,
off_t offset, int count, unsigned long count, void *data);
int *eof, void *data);
int proc_set_rx_stbc(struct file *file, const char __user *buffer,
unsigned long count, void *data);
int proc_get_two_path_rssi(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_get_rssi_disp(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
int proc_set_rssi_disp(struct file *file, const char __user *buffer,
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

@ -23,12 +23,12 @@
#include <osdep_service.h> #include <osdep_service.h>
#include <drv_types.h> #include <drv_types.h>
#define RTL8712_EEPROM_ID 0x8712 #define RTL8712_EEPROM_ID 0x8712
#define HWSET_MAX_SIZE_512 512 #define HWSET_MAX_SIZE_512 512
#define EEPROM_MAX_SIZE HWSET_MAX_SIZE_512 #define EEPROM_MAX_SIZE HWSET_MAX_SIZE_512
#define CLOCK_RATE 50 /* 100us */ #define CLOCK_RATE 50 /* 100us */
/* EEPROM opcodes */ /* EEPROM opcodes */
#define EEPROM_READ_OPCODE 06 #define EEPROM_READ_OPCODE 06
@ -38,32 +38,31 @@
#define EEPROM_EWDS_OPCODE 16 /* Erase/write disable */ #define EEPROM_EWDS_OPCODE 16 /* Erase/write disable */
/* Country codes */ /* Country codes */
#define USA 0x555320 #define USA 0x555320
#define EUROPE 0x1 /* temp, should be provided later */ #define EUROPE 0x1 /* temp, should be provided later */
#define JAPAN 0x2 /* temp, should be provided later */ #define JAPAN 0x2 /* temp, should be provided later */
#define EEPROM_CID_DEFAULT 0x0 #define EEPROM_CID_DEFAULT 0x0
#define EEPROM_CID_ALPHA 0x1 #define EEPROM_CID_ALPHA 0x1
#define EEPROM_CID_Senao 0x3 #define EEPROM_CID_Senao 0x3
#define EEPROM_CID_NetCore 0x5 #define EEPROM_CID_NetCore 0x5
#define EEPROM_CID_CAMEO 0X8 #define EEPROM_CID_CAMEO 0X8
#define EEPROM_CID_SITECOM 0x9 #define EEPROM_CID_SITECOM 0x9
#define EEPROM_CID_COREGA 0xB #define EEPROM_CID_COREGA 0xB
#define EEPROM_CID_EDIMAX_BELK 0xC #define EEPROM_CID_EDIMAX_BELK 0xC
#define EEPROM_CID_SERCOMM_BELK 0xE #define EEPROM_CID_SERCOMM_BELK 0xE
#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__ */