8723BU: Update 8723BU wifi driver to version v4.3.16_14189.20150519_BTCOEX2015119...
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rtl8723bu / hal / OUTSRC / phydm_interface.c
index 16caf370b73c1e54e9adbbbd78d8865e65e21b2a..aea4dd9a68fb841edfb16b875807e16f03ee84b5 100755 (executable)
@@ -300,7 +300,7 @@ ODM_MoveMemory(
        IN  u4Byte              Length\r
        )\r
 {\r
-#if(DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))\r
+#if (DM_ODM_SUPPORT_TYPE & ODM_AP)\r
        memcpy(pDest, pSrc, Length);\r
 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE )  \r
        _rtw_memcpy(pDest, pSrc, Length);\r
@@ -315,7 +315,7 @@ void ODM_Memory_Set
                IN  s1Byte      value,\r
                IN  u4Byte      length)\r
 {\r
-#if(DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))\r
+#if (DM_ODM_SUPPORT_TYPE & ODM_AP)\r
        \r
 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE )  \r
        _rtw_memset(pbuf,value, length);\r
@@ -546,7 +546,7 @@ ODM_SetTimer(
        IN      u4Byte                  msDelay\r
        )\r
 {\r
-#if(DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))\r
+#if (DM_ODM_SUPPORT_TYPE & ODM_AP)\r
        mod_timer(pTimer, jiffies + RTL_MILISECONDS_TO_JIFFIES(msDelay));\r
 #elif(DM_ODM_SUPPORT_TYPE & ODM_CE)\r
        _set_timer(pTimer,msDelay ); //ms\r
@@ -566,7 +566,7 @@ ODM_InitializeTimer(
        IN      const char*                     szID\r
        )\r
 {\r
-#if(DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))\r
+#if (DM_ODM_SUPPORT_TYPE & ODM_AP)\r
        init_timer(pTimer);\r
        pTimer->function = CallBackFunc;\r
        pTimer->data = (unsigned long)pDM_Odm;\r
@@ -625,183 +625,272 @@ ODM_ReleaseTimer(
 }\r
 \r
 \r
+u1Byte\r
+phydm_trans_h2c_id(\r
+       IN      PDM_ODM_T       pDM_Odm,\r
+       IN      u1Byte          phydm_h2c_id\r
+)\r
+{\r
+       u1Byte platform_h2c_id=0xff;\r
+\r
+       \r
+       switch(phydm_h2c_id)\r
+       {\r
+               //1 [0]\r
+               case ODM_H2C_RSSI_REPORT:\r
+\r
+                       #if(DM_ODM_SUPPORT_TYPE & ODM_WIN)\r
+                               if(pDM_Odm->SupportICType == ODM_RTL8188E)\r
+                               {\r
+                                       platform_h2c_id = H2C_88E_RSSI_REPORT;\r
+                               }\r
+                               else if(pDM_Odm->SupportICType == ODM_RTL8814A)\r
+                               {\r
+                                       platform_h2c_id =H2C_8814A_RSSI_REPORT;                            \r
+                               }\r
+                               else\r
+                               {\r
+                                       platform_h2c_id = H2C_RSSI_REPORT;\r
+                               }\r
+                               \r
+                       #elif(DM_ODM_SUPPORT_TYPE & ODM_CE)\r
+                               #if((RTL8812A_SUPPORT==1) ||(RTL8821A_SUPPORT==1))\r
+                                       platform_h2c_id = H2C_8812_RSSI_REPORT;\r
+                               #elif(RTL8814A_SUPPORT == 1)\r
+                                       platform_h2c_id = H2C_RSSI_SETTING;\r
+                               #elif(RTL8192E_SUPPORT==1)\r
+                                       platform_h2c_id =H2C_8192E_RSSI_REPORT;\r
+                               #elif(RTL8723B_SUPPORT==1)\r
+                                       platform_h2c_id =H2C_8723B_RSSI_SETTING;\r
+                               #elif(RTL8188E_SUPPORT==1)\r
+                                       platform_h2c_id =H2C_RSSI_REPORT;\r
+                               #elif(RTL8723A_SUPPORT==1)\r
+                                       platform_h2c_id =RSSI_SETTING_EID;\r
+                               #elif(RTL8192D_SUPPORT==1)\r
+                                       platform_h2c_id =H2C_RSSI_REPORT;\r
+                               #elif(RTL8192C_SUPPORT==1)\r
+                                       platform_h2c_id =RSSI_SETTING_EID;\r
+                               #endif\r
+                               \r
+                       #elif(DM_ODM_SUPPORT_TYPE & ODM_AP)\r
+                               #if((RTL8881A_SUPPORT==1)||(RTL8192E_SUPPORT==1)||(RTL8814A_SUPPORT==1) )\r
+                                       if(pDM_Odm->SupportICType == ODM_RTL8881A || pDM_Odm->SupportICType == ODM_RTL8192E|| pDM_Odm->SupportICType == ODM_RTL8814A) \r
+                                       {\r
+                                               platform_h2c_id =H2C_88XX_RSSI_REPORT;                          \r
+                                               //ODM_RT_TRACE(pDM_Odm,PHYDM_COMP_RA_DBG, ODM_DBG_LOUD, ("[H2C] H2C_88XX_RSSI_REPORT CMD_ID = (( %d )) \n", platform_h2c_id));\r
+                                       } else\r
+                               #endif\r
+                               #if(RTL8812A_SUPPORT==1) \r
+                                       if(pDM_Odm->SupportICType == ODM_RTL8812)\r
+                                       {\r
+                                               platform_h2c_id = H2C_8812_RSSI_REPORT;\r
+                                       } else\r
+                               #endif                          \r
+                                       {}\r
+                       #endif\r
+                       \r
+                               break;\r
+\r
+               //1 [3] \r
+               case ODM_H2C_WIFI_CALIBRATION:\r
+                       #if(DM_ODM_SUPPORT_TYPE & ODM_WIN)\r
+                                       platform_h2c_id =H2C_WIFI_CALIBRATION;\r
+                       \r
+                       #elif(DM_ODM_SUPPORT_TYPE & ODM_CE)\r
+                               #if(RTL8723B_SUPPORT==1) \r
+                                       platform_h2c_id = H2C_8723B_BT_WLAN_CALIBRATION;\r
+                               #endif\r
+                               \r
+                       #elif(DM_ODM_SUPPORT_TYPE & ODM_AP)\r
+\r
+                       \r
+                       #endif\r
+                       \r
+                               break;          \r
+       \r
+                       \r
+               //1 [4]\r
+               case ODM_H2C_IQ_CALIBRATION:\r
+                       #if(DM_ODM_SUPPORT_TYPE & ODM_WIN)\r
+                               platform_h2c_id =H2C_IQ_CALIBRATION;\r
+                       \r
+                       #elif(DM_ODM_SUPPORT_TYPE & ODM_CE)\r
+                               #if((RTL8812A_SUPPORT==1) ||(RTL8821A_SUPPORT==1))\r
+                               platform_h2c_id = H2C_8812_IQ_CALIBRATION;\r
+                               #endif\r
+                       #elif(DM_ODM_SUPPORT_TYPE & ODM_AP)\r
+\r
+                       \r
+                       #endif\r
+                       \r
+                               break;\r
+               //1 [5]\r
+               case ODM_H2C_RA_PARA_ADJUST:\r
+\r
+                       #if(DM_ODM_SUPPORT_TYPE & ODM_WIN)\r
+                               if(pDM_Odm->SupportICType == ODM_RTL8814A)\r
+                               {\r
+                                       platform_h2c_id =H2C_8814A_RA_PARA_ADJUST;                            \r
+                               }\r
+                               else\r
+                               {\r
+                               platform_h2c_id = H2C_RA_PARA_ADJUST;\r
+                               }\r
+                       #elif(DM_ODM_SUPPORT_TYPE & ODM_CE)\r
+                               #if((RTL8812A_SUPPORT==1) ||(RTL8821A_SUPPORT==1))\r
+                                       platform_h2c_id = H2C_8812_RA_PARA_ADJUST;\r
+                               #elif(RTL8814A_SUPPORT == 1)\r
+                                       platform_h2c_id = H2C_RA_PARA_ADJUST;\r
+                               #elif(RTL8192E_SUPPORT==1)\r
+                                       platform_h2c_id =H2C_8192E_RA_PARA_ADJUST;\r
+                               #elif(RTL8723B_SUPPORT==1) \r
+                                       platform_h2c_id =H2C_8723B_RA_PARA_ADJUST;\r
+                               #endif\r
+                               \r
+                       #elif(DM_ODM_SUPPORT_TYPE & ODM_AP)\r
+                               #if((RTL8881A_SUPPORT==1)||(RTL8192E_SUPPORT==1)||(RTL8814A_SUPPORT==1)) \r
+                                       if (pDM_Odm->SupportICType == ODM_RTL8881A || pDM_Odm->SupportICType == ODM_RTL8192E || pDM_Odm->SupportICType == ODM_RTL8814A) \r
+                                       {\r
+                                               platform_h2c_id =H2C_88XX_RA_PARA_ADJUST;                               \r
+                                               /*ODM_RT_TRACE(pDM_Odm,PHYDM_COMP_RA_DBG, ODM_DBG_LOUD, ("[H2C] H2C_88XX_RA_PARA_ADJUST CMD_ID = (( %d ))\n", platform_h2c_id));*/\r
+                                       } else\r
+                               #endif\r
+                               #if(RTL8812A_SUPPORT==1) \r
+                                       if(pDM_Odm->SupportICType == ODM_RTL8812)\r
+                                       {\r
+                                               platform_h2c_id = H2C_8812_RA_PARA_ADJUST;\r
+                                       } else\r
+                               #endif\r
+                                       {}\r
+                       #endif\r
+                       \r
+                               break;\r
+\r
+\r
+               //1 [6]\r
+               case PHYDM_H2C_DYNAMIC_TX_PATH:\r
+\r
+                       #if(DM_ODM_SUPPORT_TYPE & ODM_WIN)\r
+                               if(pDM_Odm->SupportICType == ODM_RTL8814A)\r
+                               {\r
+                                       platform_h2c_id =H2C_8814A_DYNAMIC_TX_PATH;\r
+                               }\r
+                       #elif(DM_ODM_SUPPORT_TYPE & ODM_CE)\r
+                               #if (RTL8814A_SUPPORT == 1)\r
+                               if (pDM_Odm->SupportICType == ODM_RTL8814A)\r
+                                       platform_h2c_id = H2C_DYNAMIC_TX_PATH;\r
+                               #endif\r
+                       #elif(DM_ODM_SUPPORT_TYPE & ODM_AP)\r
+                               #if(RTL8814A_SUPPORT==1)\r
+                                       if( pDM_Odm->SupportICType == ODM_RTL8814A)\r
+                                       {\r
+                                               platform_h2c_id = H2C_88XX_DYNAMIC_TX_PATH;                             \r
+                                       } \r
+                               #endif\r
+\r
+                       #endif\r
+                       \r
+                               break;\r
+\r
+               /* [7]*/\r
+               case PHYDM_H2C_FW_TRACE_EN:\r
+\r
+                       #if (DM_ODM_SUPPORT_TYPE & ODM_WIN)\r
+                               if (pDM_Odm->SupportICType == ODM_RTL8814A)\r
+                                       platform_h2c_id = H2C_8814A_FW_TRACE_EN;\r
+                               else \r
+                                       platform_h2c_id = H2C_FW_TRACE_EN;\r
+                               \r
+                       #elif(DM_ODM_SUPPORT_TYPE & ODM_CE)\r
+\r
+                               \r
+                       #elif(DM_ODM_SUPPORT_TYPE & ODM_AP)\r
+                               #if ((RTL8881A_SUPPORT == 1) || (RTL8192E_SUPPORT == 1) || (RTL8814A_SUPPORT == 1))\r
+                                       if (pDM_Odm->SupportICType == ODM_RTL8881A || pDM_Odm->SupportICType == ODM_RTL8192E || pDM_Odm->SupportICType == ODM_RTL8814A) {\r
+                                               platform_h2c_id  = H2C_88XX_FW_TRACE_EN;\r
+                                       } else\r
+                               #endif\r
+                               #if (RTL8812A_SUPPORT == 1) \r
+                                       if (pDM_Odm->SupportICType == ODM_RTL8812) {\r
+                                               platform_h2c_id = H2C_8812_FW_TRACE_EN;\r
+                                       } else\r
+                               #endif\r
+                                       {}\r
+\r
+                       #endif\r
+                       \r
+                               break;\r
+\r
+               default:\r
+                       platform_h2c_id=0xff;\r
+                       break;  \r
+       }       \r
+       \r
+       return platform_h2c_id;\r
+       \r
+}\r
+\r
 //\r
 // ODM FW relative API.\r
 //\r
-#if (DM_ODM_SUPPORT_TYPE & (ODM_WIN|ODM_CE))\r
+\r
 VOID\r
 ODM_FillH2CCmd(\r
        IN      PDM_ODM_T               pDM_Odm,\r
-       IN      u1Byte                  ElementID,\r
+       IN      u1Byte                  phydm_h2c_id,\r
        IN      u4Byte                  CmdLen,\r
        IN      pu1Byte                 pCmdBuffer\r
 )\r
 {\r
-       PADAPTER                Adapter = pDM_Odm->Adapter;\r
+       PADAPTER        Adapter = pDM_Odm->Adapter;\r
+       u1Byte          platform_h2c_id;\r
 \r
-       if(pDM_Odm->SupportICType & ODM_IC_11AC_SERIES)\r
-       {\r
-               switch(ElementID)\r
-               {\r
-                       case ODM_H2C_RSSI_REPORT:\r
+       platform_h2c_id=phydm_trans_h2c_id(pDM_Odm, phydm_h2c_id);\r
 \r
-#if(DM_ODM_SUPPORT_TYPE & ODM_WIN)\r
-                               FillH2CCmd(Adapter, H2C_RSSI_REPORT, CmdLen, pCmdBuffer);\r
-#else\r
-       #if((RTL8812A_SUPPORT==1) ||(RTL8821A_SUPPORT==1))\r
-                               FillH2CCmd_8812(Adapter, H2C_8812_RSSI_REPORT, CmdLen, pCmdBuffer);\r
-       #endif\r
-#endif\r
-                               break;\r
-                       case ODM_H2C_IQ_CALIBRATION:\r
-#if(DM_ODM_SUPPORT_TYPE & ODM_WIN)\r
-                               FillH2CCmd(Adapter, H2C_IQ_CALIBRATION, CmdLen, pCmdBuffer);\r
-#else\r
-       #if((RTL8812A_SUPPORT==1) ||(RTL8821A_SUPPORT==1))\r
-                               FillH2CCmd_8812(Adapter, H2C_8812_IQ_CALIBRATION, CmdLen, pCmdBuffer);\r
-       #endif\r
-#endif\r
-                               break;\r
-                       default:\r
-                               break;\r
-               }\r
-\r
-       }\r
-       else if(pDM_Odm->SupportICType == ODM_RTL8192E)\r
+       if(platform_h2c_id==0xff)\r
        {\r
-               switch(ElementID)\r
-               {\r
-                       case ODM_H2C_RSSI_REPORT:\r
-#if(DM_ODM_SUPPORT_TYPE & ODM_WIN)\r
-                               FillH2CCmd(Adapter, H2C_RSSI_REPORT, CmdLen, pCmdBuffer);\r
-#else\r
-       #if(RTL8192E_SUPPORT==1)\r
-                               FillH2CCmd_8192E(Adapter, H2C_8192E_RSSI_REPORT, CmdLen, pCmdBuffer);\r
-       #endif\r
-#endif\r
-                               break;\r
-                       default:\r
-                               break;\r
-               }       \r
+               ODM_RT_TRACE(pDM_Odm,PHYDM_COMP_RA_DBG, ODM_DBG_LOUD, ("[H2C] Wrong H2C CMD-ID !! platform_h2c_id==0xff ,  PHYDM_ElementID=((%d )) \n",phydm_h2c_id));\r
+               return;\r
        }\r
-       else if(pDM_Odm->SupportICType == ODM_RTL8723B)\r
-       {\r
-               switch(ElementID)\r
-               {\r
-                       case ODM_H2C_RSSI_REPORT:\r
-#if(DM_ODM_SUPPORT_TYPE & ODM_WIN)\r
-                               FillH2CCmd(Adapter, H2C_RSSI_REPORT, CmdLen, pCmdBuffer);\r
-#else\r
-       #if(RTL8723B_SUPPORT==1)\r
-                               FillH2CCmd8723B(Adapter, H2C_8723B_RSSI_SETTING, CmdLen, pCmdBuffer);\r
-       #endif\r
-#endif\r
-                               break;\r
-                       case ODM_H2C_WIFI_CALIBRATION:\r
-#if(DM_ODM_SUPPORT_TYPE & ODM_WIN)\r
-                               FillH2CCmd(Adapter, H2C_WIFI_CALIBRATION, CmdLen, pCmdBuffer);\r
-#else\r
-       #if(RTL8723B_SUPPORT==1)\r
-                               FillH2CCmd8723B(Adapter, H2C_8723B_BT_WLAN_CALIBRATION, CmdLen, pCmdBuffer);\r
-       #endif\r
-#endif\r
-                               break;\r
-                       default:\r
-                               break;                     \r
-               }\r
 \r
-       }\r
-       else if(pDM_Odm->SupportICType == ODM_RTL8188E)\r
-       {\r
-               switch(ElementID)\r
+       #if(DM_ODM_SUPPORT_TYPE & ODM_WIN)\r
+               if(pDM_Odm->SupportICType == ODM_RTL8188E)\r
                {\r
-                       case ODM_H2C_RSSI_REPORT:\r
-                               //if((pDM_Odm->CutVersion == ODM_CUT_I) && (!pDM_Odm->RaSupport88E)){\r
-                               if(!pDM_Odm->RaSupport88E){\r
-#if(DM_ODM_SUPPORT_TYPE & ODM_WIN)\r
-                                       FillH2CCmd88E(Adapter, H2C_88E_RSSI_REPORT, CmdLen, pCmdBuffer);\r
-#else\r
-       #if(RTL8188E_SUPPORT==1)\r
-                                       FillH2CCmd_88E(Adapter, H2C_RSSI_REPORT, CmdLen, pCmdBuffer);\r
-       #endif\r
-#endif                 \r
-                               }\r
-                               break;\r
-                       default:\r
-                               break;\r
+                       if(!pDM_Odm->RaSupport88E)\r
+                               FillH2CCmd88E(Adapter, platform_h2c_id, CmdLen, pCmdBuffer);\r
                }\r
-       }\r
-#if(DM_ODM_SUPPORT_TYPE & ODM_CE)\r
-       else if(pDM_Odm->SupportICType == ODM_RTL8723A)\r
-       {\r
-               switch(ElementID)\r
+               else if(pDM_Odm->SupportICType == ODM_RTL8192C)\r
                {\r
-                       case ODM_H2C_RSSI_REPORT:\r
-       #if(RTL8723A_SUPPORT==1)\r
-                               FillH2CCmd(Adapter, RSSI_SETTING_EID, CmdLen, pCmdBuffer);\r
-       #endif\r
-                               break;\r
-                       default:\r
-                               break;\r
+                       FillH2CCmd92C(Adapter, platform_h2c_id, CmdLen, pCmdBuffer);\r
                }\r
-       }\r
-       else if(pDM_Odm->SupportICType == ODM_RTL8192D)\r
-       {\r
-               switch(ElementID)\r
+               else if(pDM_Odm->SupportICType == ODM_RTL8814A)\r
                {\r
-                       case ODM_H2C_RSSI_REPORT:\r
-       #if(RTL8192D_SUPPORT==1)\r
-                       FillH2CCmd92D(Adapter, H2C_RSSI_REPORT, CmdLen, pCmdBuffer);    \r
-       #endif\r
-                               break;\r
-                       default:\r
-                               break;\r
+                       FillH2CCmd8814A(Adapter, platform_h2c_id, CmdLen, pCmdBuffer);\r
                }\r
-       }\r
-#endif\r
-       else\r
-       {\r
-               switch(ElementID)\r
-               {\r
-                       case ODM_H2C_RSSI_REPORT:\r
-#if(DM_ODM_SUPPORT_TYPE & ODM_WIN)\r
-                               FillH2CCmd92C(Adapter, H2C_RSSI_REPORT, CmdLen, pCmdBuffer);\r
-#else\r
-       #if(RTL8192C_SUPPORT==1)\r
-                               rtl8192c_FillH2CCmd(Adapter, RSSI_SETTING_EID, CmdLen, pCmdBuffer);\r
-       #endif\r
-#endif\r
-                               break;\r
-                       default:\r
-                               break;\r
+               else\r
+               {               \r
+                       FillH2CCmd(Adapter, platform_h2c_id, CmdLen, pCmdBuffer);\r
                }\r
-       }\r
-}\r
-#else\r
-u4Byte\r
-ODM_FillH2CCmd(        \r
-       IN      pu1Byte         pH2CBuffer,\r
-       IN      u4Byte          H2CBufferLen,\r
-       IN      u4Byte          CmdNum,\r
-       IN      pu4Byte         pElementID,\r
-       IN      pu4Byte         pCmdLen,\r
-       IN      pu1Byte*                pCmbBuffer,\r
-       IN      pu1Byte         CmdStartSeq\r
-       )\r
-{\r
-#if(DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))\r
-       \r
-#elif(DM_ODM_SUPPORT_TYPE & ODM_CE)\r
-\r
-#elif(DM_ODM_SUPPORT_TYPE & ODM_WIN)   \r
-       //FillH2CCmd(pH2CBuffer, H2CBufferLen, CmdNum, pElementID, pCmdLen, pCmbBuffer, CmdStartSeq);\r
-       return  FALSE;\r
-#endif\r
-\r
-       return  TRUE;\r
+       #elif(DM_ODM_SUPPORT_TYPE & ODM_CE)\r
+               rtw_hal_fill_h2c_cmd(Adapter, platform_h2c_id, CmdLen, pCmdBuffer);\r
+\r
+       #elif(DM_ODM_SUPPORT_TYPE & ODM_AP)     \r
+               #if((RTL8881A_SUPPORT==1)||(RTL8192E_SUPPORT==1)||(RTL8814A_SUPPORT==1)) \r
+                       if(pDM_Odm->SupportICType == ODM_RTL8881A || pDM_Odm->SupportICType == ODM_RTL8192E|| pDM_Odm->SupportICType == ODM_RTL8814A) \r
+                       {\r
+                               GET_HAL_INTERFACE(pDM_Odm->priv)->FillH2CCmdHandler(pDM_Odm->priv, platform_h2c_id, CmdLen, pCmdBuffer);\r
+                               //FillH2CCmd88XX(pDM_Odm->priv, platform_h2c_id, CmdLen, pCmdBuffer);                           \r
+                       } else\r
+               #endif\r
+               #if(RTL8812A_SUPPORT==1) \r
+                       if(pDM_Odm->SupportICType == ODM_RTL8812)\r
+                       {\r
+                               FillH2CCmd8812(pDM_Odm->priv, platform_h2c_id, CmdLen, pCmdBuffer);\r
+                       } else\r
+               #endif\r
+                       {}\r
+       #endif\r
 }\r
-#endif\r
-\r
 \r
 u8Byte\r
 ODM_GetCurrentTime(    \r
@@ -827,7 +916,7 @@ ODM_GetProgressingTime(
        return  0;\r
 #elif(DM_ODM_SUPPORT_TYPE & ODM_CE)\r
        return rtw_get_passing_time_ms((u4Byte)Start_Time);\r
-#elif(DM_ODM_SUPPORT_TYPE & ODM_WIN)   \r
+#elif(DM_ODM_SUPPORT_TYPE & ODM_WIN)\r
        return   ((PlatformGetCurrentTime() - Start_Time)>>10);\r
 #endif\r
 }\r