#define __RTL8188E_HAL_H__\r
\r
//#include "hal_com.h"\r
-#if 1\r
#include "hal_data.h"\r
-#else\r
-#include "../hal/OUTSRC/odm_precomp.h"\r
-#endif\r
\r
//include HAL Related header after HAL Related compiling flags \r
#include "rtl8188e_spec.h"\r
#endif\r
\r
\r
- #define RTL8188E_FW_IMG "rtl8188E/FW_NIC.bin"\r
- #define RTL8188E_FW_WW_IMG "rtl8188E/FW_WoWLAN.bin"\r
- #define RTL8188E_PHY_REG "rtl8188E/PHY_REG.txt" \r
- #define RTL8188E_PHY_RADIO_A "rtl8188E/RadioA.txt"\r
- #define RTL8188E_PHY_RADIO_B "rtl8188E/RadioB.txt"\r
- #define RTL8188E_TXPWR_TRACK "rtl8188E/TxPowerTrack.txt" \r
- #define RTL8188E_AGC_TAB "rtl8188E/AGC_TAB.txt"\r
- #define RTL8188E_PHY_MACREG "rtl8188E/MAC_REG.txt"\r
- #define RTL8188E_PHY_REG_PG "rtl8188E/PHY_REG_PG.txt"\r
- #define RTL8188E_PHY_REG_MP "rtl8188E/PHY_REG_MP.txt" \r
- #define RTL8188E_TXPWR_LMT "rtl8188E/TXPWR_LMT.txt" \r
+ #define RTL8188E_FW_IMG "rtl8188e/FW_NIC.bin"\r
+ #define RTL8188E_FW_WW_IMG "rtl8188e/FW_WoWLAN.bin"\r
+ #define RTL8188E_PHY_REG "rtl8188e/PHY_REG.txt" \r
+ #define RTL8188E_PHY_RADIO_A "rtl8188e/RadioA.txt"\r
+ #define RTL8188E_PHY_RADIO_B "rtl8188e/RadioB.txt"\r
+ #define RTL8188E_TXPWR_TRACK "rtl8188e/TxPowerTrack.txt" \r
+ #define RTL8188E_AGC_TAB "rtl8188e/AGC_TAB.txt"\r
+ #define RTL8188E_PHY_MACREG "rtl8188e/MAC_REG.txt"\r
+ #define RTL8188E_PHY_REG_PG "rtl8188e/PHY_REG_PG.txt"\r
+ #define RTL8188E_PHY_REG_MP "rtl8188e/PHY_REG_MP.txt" \r
+ #define RTL8188E_TXPWR_LMT "rtl8188e/TXPWR_LMT.txt" \r
\r
//---------------------------------------------------------------------\r
// RTL8188E Power Configuration CMDs for USB/SDIO/PCIE interfaces\r
\r
\r
#if 1 // download firmware related data structure\r
+#define MAX_FW_8188E_SIZE 0x8000 //32768,32k / 16384,16k\r
+\r
#define FW_8188E_SIZE 0x4000 //16384,16k\r
+#define FW_8188E_SIZE_2 0x8000 //32768,32k \r
+\r
#define FW_8188E_START_ADDRESS 0x1000\r
#define FW_8188E_END_ADDRESS 0x1FFF //0x5FFF\r
\r
\r
-\r
-\r
#define IS_FW_HEADER_EXIST_88E(_pFwHdr) ((le16_to_cpu(_pFwHdr->Signature)&0xFFF0) == 0x88E0)\r
\r
typedef struct _RT_FIRMWARE_8188E {\r
#ifdef CONFIG_EMBEDDED_FWIMG\r
u8* szFwBuffer;\r
#else\r
- u8 szFwBuffer[FW_8188E_SIZE];\r
+ u8 szFwBuffer[MAX_FW_8188E_SIZE];\r
#endif\r
u32 ulFwLength;\r
} RT_FIRMWARE_8188E, *PRT_FIRMWARE_8188E;\r
#define BCN_DMA_ATIME_INT_TIME_8188E 0x02\r
\r
\r
-#define MAX_RX_DMA_BUFFER_SIZE_88E 0x2400 //9k for 88E nornal chip , //MaxRxBuff=10k-max(TxReportSize(64*8), WOLPattern(16*24))\r
-//#define MAX_RX_DMA_BUFFER_SIZE_88E(__Adapter) ((!IS_VENDOR_8188E_I_CUT_SERIES(__Adapter))?0x2400:0x3C00)\r
+//#define MAX_RX_DMA_BUFFER_SIZE_88E 0x2400 //9k for 88E nornal chip , //MaxRxBuff=10k-max(TxReportSize(64*8), WOLPattern(16*24))\r
+#define RX_DMA_SIZE_88E(__Adapter) ((!IS_VENDOR_8188E_I_CUT_SERIES(__Adapter))?0x2800:0x4000)\r
\r
+#ifdef CONFIG_WOWLAN\r
+#define RESV_FMWF WKFMCAM_SIZE*MAX_WKFM_NUM /* 16 entries, for each is 24 bytes*/\r
+#else\r
+#define RESV_FMWF 0\r
+#endif\r
\r
-#define MAX_TX_REPORT_BUFFER_SIZE 0x0400 // 1k \r
+#define RX_DMA_RESERVD_FW_FEATURE 0x200 /* for tx report (64*8) */\r
\r
+#define MAX_RX_DMA_BUFFER_SIZE_88E(__Adapter) RX_DMA_SIZE_88E(__Adapter)-RX_DMA_RESERVD_FW_FEATURE\r
+\r
+#define MAX_TX_REPORT_BUFFER_SIZE 0x0400 /* 1k */\r
\r
// Note: We will divide number of page equally for each queue other than public queue!\r
// 22k = 22528 bytes = 176 pages (@page = 128 bytes)\r
// must reserved about 7 pages for LPS => 176-7 = 169 (0xA9)\r
// 2*BCN / 1*ps-poll / 1*null-data /1*prob_rsp /1*QOS null-data /1*BT QOS null-data \r
\r
-#define TX_TOTAL_PAGE_NUMBER_88E 0xA9// 169 (21632=> 21k)\r
+#define BCNQ_PAGE_NUM_88E 0x08\r
\r
-#ifdef RTL8188ES_MAC_LOOPBACK\r
-#define TX_PAGE_BOUNDARY_88E 0x48 //72\r
-#else //TX_PAGE_BOUNDARY_LOOPBACK_MODE\r
-#define TX_PAGE_BOUNDARY_88E (TX_TOTAL_PAGE_NUMBER_88E + 1)\r
+//For WoWLan , more reserved page\r
+#ifdef CONFIG_WOWLAN\r
+#define WOWLAN_PAGE_NUM_88E 0x00\r
+#else\r
+#define WOWLAN_PAGE_NUM_88E 0x00\r
#endif\r
\r
+/* Note: \r
+Tx FIFO Size : previous CUT:22K /I_CUT after:32KB\r
+Tx page Size : 128B\r
+Total page numbers : 176(0xB0) / 256(0x100)\r
+*/\r
+#define TOTAL_PAGE_NUMBER_88E(_Adapter) ((IS_VENDOR_8188E_I_CUT_SERIES(_Adapter)?0x100:0xB0) - 1)/* must reserved 1 page for dma issue */\r
+#define TX_TOTAL_PAGE_NUMBER_88E(_Adapter) (TOTAL_PAGE_NUMBER_88E(_Adapter) - BCNQ_PAGE_NUM_88E - WOWLAN_PAGE_NUM_88E)\r
+#define TX_PAGE_BOUNDARY_88E(_Adapter) (TX_TOTAL_PAGE_NUMBER_88E(_Adapter) + 1) /* beacon header start address */\r
+\r
+#define WMM_NORMAL_TX_TOTAL_PAGE_NUMBER_88E(_Adapter) TX_TOTAL_PAGE_NUMBER_88E(_Adapter)\r
+#define WMM_NORMAL_TX_PAGE_BOUNDARY_88E(_Adapter) (WMM_NORMAL_TX_TOTAL_PAGE_NUMBER_88E(_Adapter) + 1)\r
\r
-//Note: For Normal Chip Setting ,modify later\r
-#define WMM_NORMAL_TX_TOTAL_PAGE_NUMBER TX_TOTAL_PAGE_NUMBER_88E //0xA9 , 0xb0=>176=>22k\r
-#define WMM_NORMAL_TX_PAGE_BOUNDARY_88E (WMM_NORMAL_TX_TOTAL_PAGE_NUMBER + 1) //0xA9\r
+// For Normal Chip Setting\r
+// (HPQ + LPQ + NPQ + PUBQ) shall be TX_TOTAL_PAGE_NUMBER_8723B\r
+#define NORMAL_PAGE_NUM_HPQ_88E 0x0\r
+#define NORMAL_PAGE_NUM_LPQ_88E 0x09\r
+#define NORMAL_PAGE_NUM_NPQ_88E 0x0\r
\r
+// Note: For Normal Chip Setting, modify later\r
+#define WMM_NORMAL_PAGE_NUM_HPQ_88E 0x29\r
+#define WMM_NORMAL_PAGE_NUM_LPQ_88E 0x1C\r
+#define WMM_NORMAL_PAGE_NUM_NPQ_88E 0x1C\r
\r
\r
//-------------------------------------------------------------------------\r
//\r
#define EFUSE_OOB_PROTECT_BYTES 15 // PG data exclude header, dummy 6 bytes frome CP test and reserved 1byte.\r
\r
-#define HWSET_MAX_SIZE_88E 512\r
-\r
#define EFUSE_REAL_CONTENT_LEN_88E 256\r
#define EFUSE_MAP_LEN_88E 512\r
#define EFUSE_MAX_SECTION_88E 64\r
//#define RT_IS_FUNC_DISABLED(__pAdapter, __FuncBits) ( (__pAdapter)->DisabledFunctions & (__FuncBits) )\r
\r
#ifdef CONFIG_PCI_HCI\r
+ /* according to the define in the rtw_xmit.h, rtw_recv.h */\r
+#define TX_DESC_NUM_8188EE TXDESC_NUM /* 128 */\r
+#ifdef CONFIG_CONCURRENT_MODE\r
+/*#define BE_QUEUE_TX_DESC_NUM_8188EE (TXDESC_NUM<<1)*/ /* 256 */\r
+#define BE_QUEUE_TX_DESC_NUM_8188EE ((TXDESC_NUM<<1)+(TXDESC_NUM>>1)) /* 320 */\r
+/*#define BE_QUEUE_TX_DESC_NUM_8188EE ((TXDESC_NUM<<1)+TXDESC_NUM)*/ /* 384 */\r
+#else\r
+#define BE_QUEUE_TX_DESC_NUM_8188EE TXDESC_NUM /* 128 */\r
+/*#define BE_QUEUE_TX_DESC_NUM_8188EE (TXDESC_NUM+(TXDESC_NUM>>1)) *//* 192 */\r
+#endif\r
+\r
void InterruptRecognized8188EE(PADAPTER Adapter, PRT_ISR_CONTENT pIsrContent);\r
void UpdateInterruptMask8188EE(PADAPTER Adapter, u32 AddMSR, u32 AddMSR1, u32 RemoveMSR, u32 RemoveMSR1);\r
#endif //CONFIG_PCI_HCI\r
void Hal_EfuseParseXtal_8188E(PADAPTER pAdapter,u8* hwinfo,BOOLEAN AutoLoadFail);\r
void Hal_EfuseParseBoardType88E(PADAPTER pAdapter,u8* hwinfo,BOOLEAN AutoLoadFail);\r
void Hal_ReadPowerSavingMode88E(PADAPTER pAdapter,u8* hwinfo,BOOLEAN AutoLoadFail);\r
+void Hal_ReadPAType_8188E(PADAPTER Adapter, u8 *PROMContent, BOOLEAN AutoloadFail);\r
+void Hal_ReadAmplifierType_8188E(PADAPTER Adapter, u8 *PROMContent, BOOLEAN AutoloadFail);\r
+void Hal_ReadRFEType_8188E(PADAPTER Adapter, u8 *PROMContent, BOOLEAN AutoloadFail);\r
\r
BOOLEAN HalDetectPwrDownMode88E(PADAPTER Adapter);\r
\r
-#ifdef CONFIG_WOWLAN\r
+#if defined(CONFIG_WOWLAN) || defined(CONFIG_AP_WOWLAN)\r
void Hal_DetectWoWMode(PADAPTER pAdapter);\r
#endif //CONFIG_WOWLAN\r
-//RT_CHANNEL_DOMAIN rtl8723a_HalMapChannelPlan(PADAPTER padapter, u8 HalChannelPlan);\r
-//VERSION_8192C rtl8723a_ReadChipVersion(PADAPTER padapter);\r
-//void rtl8723a_ReadBluetoothCoexistInfo(PADAPTER padapter, u8 *PROMContent, BOOLEAN AutoloadFail);\r
-void Hal_InitChannelPlan(PADAPTER padapter);\r
+\r
+\r
+#ifdef CONFIG_RF_GAIN_OFFSET\r
+void Hal_ReadRFGainOffset(PADAPTER pAdapter,u8* hwinfo,BOOLEAN AutoLoadFail);\r
+#endif //CONFIG_RF_GAIN_OFFSET\r
+\r
+void rtl8188e_init_default_value(_adapter *adapter);\r
\r
void rtl8188e_set_hal_ops(struct hal_ops *pHalFunc);\r
+void init_hal_spec_8188e(_adapter *adapter);\r
\r
// register\r
void SetBcnCtrlReg(PADAPTER padapter, u8 SetBits, u8 ClearBits);\r
\r
void SetHwReg8188E(PADAPTER padapter, u8 variable, u8 *val);\r
void GetHwReg8188E(PADAPTER padapter, u8 variable, u8 *val);\r
-\r
+void ResumeTxBeacon(PADAPTER padapter);\r
+void StopTxBeacon(PADAPTER padapter);\r
+u8\r
+GetHalDefVar8188E(\r
+ IN PADAPTER Adapter,\r
+ IN HAL_DEF_VARIABLE eVariable,\r
+ IN PVOID pValue\r
+ );\r
#endif //__RTL8188E_HAL_H__\r
\r