net: wireless: rockchip_wlan: add rtl8723bs support
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rtl8723bs / include / rtl8188e_hal.h
old mode 100755 (executable)
new mode 100644 (file)
index a7fed3f..3aa5b2e
 #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
@@ -94,7 +92,7 @@ typedef struct _RT_FIRMWARE_8188E {
 #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
@@ -140,31 +138,57 @@ typedef struct _RT_8188E_FIRMWARE_HDR
 #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
@@ -196,8 +220,6 @@ typedef struct _RT_8188E_FIRMWARE_HDR
 //\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
@@ -229,6 +251,17 @@ typedef struct _RT_8188E_FIRMWARE_HDR
 //#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
@@ -256,18 +289,25 @@ void Hal_ReadThermalMeter_88E(PADAPTER    Adapter,u8* PROMContent,BOOLEAN         Autoload
 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
@@ -283,6 +323,13 @@ void _InitTransferPageSize(PADAPTER padapter);
 \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