net: wireless: rockchip_wlan: add rtl8188fu support
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rtl8188fu / hal / phydm / phydm_debug.h
diff --git a/drivers/net/wireless/rockchip_wlan/rtl8188fu/hal/phydm/phydm_debug.h b/drivers/net/wireless/rockchip_wlan/rtl8188fu/hal/phydm/phydm_debug.h
new file mode 100644 (file)
index 0000000..2f5859b
--- /dev/null
@@ -0,0 +1,330 @@
+/******************************************************************************\r
+ *\r
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.\r
+ *                                        \r
+ * This program is free software; you can redistribute it and/or modify it\r
+ * under the terms of version 2 of the GNU General Public License as\r
+ * published by the Free Software Foundation.\r
+ *\r
+ * This program is distributed in the hope that it will be useful, but WITHOUT\r
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for\r
+ * more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License along with\r
+ * this program; if not, write to the Free Software Foundation, Inc.,\r
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA\r
+ *\r
+ *\r
+ ******************************************************************************/\r
+\r
+\r
+#ifndef        __ODM_DBG_H__\r
+#define __ODM_DBG_H__\r
+\r
+#define DEBUG_VERSION  "1.0"  /*2015.01.13 Dino*/\r
+//-----------------------------------------------------------------------------\r
+//     Define the debug levels\r
+//\r
+//     1.      DBG_TRACE and DBG_LOUD are used for normal cases.\r
+//     So that, they can help SW engineer to develope or trace states changed \r
+//     and also help HW enginner to trace every operation to and from HW, \r
+//     e.g IO, Tx, Rx. \r
+//\r
+//     2.      DBG_WARNNING and DBG_SERIOUS are used for unusual or error cases, \r
+//     which help us to debug SW or HW.\r
+//\r
+//-----------------------------------------------------------------------------\r
+//\r
+//     Never used in a call to ODM_RT_TRACE()!\r
+//\r
+#define ODM_DBG_OFF                                    1\r
+\r
+//\r
+//     Fatal bug. \r
+//     For example, Tx/Rx/IO locked up, OS hangs, memory access violation, \r
+//     resource allocation failed, unexpected HW behavior, HW BUG and so on.\r
+//\r
+#define ODM_DBG_SERIOUS                                2\r
+\r
+//\r
+//     Abnormal, rare, or unexpeted cases.\r
+//     For example, IRP/Packet/OID canceled, device suprisely unremoved and so on.\r
+//\r
+#define ODM_DBG_WARNING                                3\r
+\r
+//\r
+//     Normal case with useful information about current SW or HW state. \r
+//     For example, Tx/Rx descriptor to fill, Tx/Rx descriptor completed status, \r
+//     SW protocol state change, dynamic mechanism state change and so on.\r
+//\r
+#define ODM_DBG_LOUD                                   4\r
+\r
+//\r
+//     Normal case with detail execution flow or information.\r
+//\r
+#define ODM_DBG_TRACE                                  5\r
+\r
+/*FW DBG MSG*/\r
+#define        RATE_DECISION   BIT0\r
+#define        INIT_RA_TABLE   BIT1\r
+#define        RATE_UP                 BIT2\r
+#define        RATE_DOWN               BIT3\r
+#define        TRY_DONE                BIT4\r
+#define        F_RATE_AP_RPT   BIT7\r
+\r
+//-----------------------------------------------------------------------------\r
+// Define the tracing components\r
+//\r
+//-----------------------------------------------------------------------------\r
+//BB Functions\r
+#define        ODM_COMP_DIG                                    BIT0    \r
+#define        ODM_COMP_RA_MASK                                BIT1    \r
+#define        ODM_COMP_DYNAMIC_TXPWR          BIT2\r
+#define        ODM_COMP_FA_CNT                         BIT3\r
+#define        ODM_COMP_RSSI_MONITOR           BIT4\r
+#define        ODM_COMP_CCK_PD                         BIT5\r
+#define        ODM_COMP_ANT_DIV                                BIT6\r
+#define        ODM_COMP_PWR_SAVE                       BIT7\r
+#define        ODM_COMP_PWR_TRAIN                      BIT8\r
+#define        ODM_COMP_RATE_ADAPTIVE          BIT9\r
+#define        ODM_COMP_PATH_DIV                       BIT10\r
+#define        ODM_COMP_PSD                                    BIT11\r
+#define        ODM_COMP_DYNAMIC_PRICCA         BIT12\r
+#define        ODM_COMP_RXHP                                   BIT13\r
+#define        ODM_COMP_MP                                     BIT14\r
+#define        ODM_COMP_CFO_TRACKING           BIT15\r
+#define        ODM_COMP_ACS                                    BIT16\r
+#define        PHYDM_COMP_ADAPTIVITY           BIT17\r
+#define        PHYDM_COMP_RA_DBG                       BIT18\r
+#define        PHYDM_COMP_TXBF                         BIT19\r
+//MAC Functions\r
+#define        ODM_COMP_EDCA_TURBO                     BIT20\r
+#define        ODM_COMP_EARLY_MODE                     BIT21\r
+#define        ODM_FW_DEBUG_TRACE                      BIT22\r
+//RF Functions\r
+#define        ODM_COMP_TX_PWR_TRACK           BIT24\r
+#define        ODM_COMP_RX_GAIN_TRACK          BIT25\r
+#define        ODM_COMP_CALIBRATION                    BIT26\r
+//Common Functions\r
+#define        ODM_PHY_CONFIG                          BIT28\r
+#define        BEAMFORMING_DEBUG                               BIT29\r
+#define        ODM_COMP_COMMON                         BIT30\r
+#define        ODM_COMP_INIT                                   BIT31\r
+#define        ODM_COMP_NOISY_DETECT           BIT32\r
+\r
+/*------------------------Export Marco Definition---------------------------*/\r
+#if (DM_ODM_SUPPORT_TYPE == ODM_WIN)\r
+       #define RT_PRINTK                               DbgPrint\r
+#elif (DM_ODM_SUPPORT_TYPE == ODM_CE)\r
+       #define DbgPrint        printk\r
+       #define RT_PRINTK(fmt, args...) DbgPrint( "%s(): " fmt, __FUNCTION__, ## args);\r
+       #define RT_DISP(dbgtype, dbgflag, printstr)\r
+#else\r
+       #define DbgPrint        panic_printk\r
+       #define RT_PRINTK(fmt, args...) DbgPrint( "%s(): " fmt, __FUNCTION__, ## args);\r
+#endif\r
+\r
+#ifndef ASSERT\r
+       #define ASSERT(expr)\r
+#endif\r
+\r
+#if DBG\r
+#define ODM_RT_TRACE(pDM_Odm, comp, level, fmt)                                                                        \\r
+       do {    \\r
+               if(((comp) & pDM_Odm->DebugComponents) && (level <= pDM_Odm->DebugLevel || level == ODM_DBG_SERIOUS))   \\r
+               {                                                                                                                                                       \\r
+                       if(pDM_Odm->SupportICType == ODM_RTL8192C)                                                              \\r
+                               DbgPrint("[ODM-92C] ");                                                                                         \\r
+                       else if(pDM_Odm->SupportICType == ODM_RTL8192D)                                                 \\r
+                               DbgPrint("[ODM-92D] ");                                                                                         \\r
+                       else if(pDM_Odm->SupportICType == ODM_RTL8723A)                                                 \\r
+                               DbgPrint("[ODM-8723A] ");                                                                                       \\r
+                       else if(pDM_Odm->SupportICType == ODM_RTL8188E)                                                 \\r
+                               DbgPrint("[ODM-8188E] ");                                                                                       \\r
+                       else if(pDM_Odm->SupportICType == ODM_RTL8192E)                                                 \\r
+                               DbgPrint("[ODM-8192E] ");                                                                                       \\r
+                       else if(pDM_Odm->SupportICType == ODM_RTL8812)                                                  \\r
+                               DbgPrint("[ODM-8812] ");                                                                                        \\r
+                       else if(pDM_Odm->SupportICType == ODM_RTL8821)                                                  \\r
+                               DbgPrint("[ODM-8821] ");                                                                                        \\r
+                       else if(pDM_Odm->SupportICType == ODM_RTL8814A)                                                 \\r
+                               DbgPrint("[ODM-8814] ");                                                                                        \\r
+                       else if(pDM_Odm->SupportICType == ODM_RTL8703B)                                                 \\r
+                               DbgPrint("[ODM-8703B] ");                                                                                       \\r
+                       else if(pDM_Odm->SupportICType == ODM_RTL8822B)                                                 \\r
+                               DbgPrint("[ODM-8822] ");                                                                                        \\r
+                       else if (pDM_Odm->SupportICType == ODM_RTL8188F)                                                        \\r
+                               DbgPrint("[ODM-8188F] ");                                                                                       \\r
+                       RT_PRINTK fmt;                                                                                                                  \\r
+               }       \\r
+       } while (0)\r
+       \r
+#define ODM_RT_TRACE_F(pDM_Odm, comp, level, fmt)                                                                      \\r
+               if(((comp) & pDM_Odm->DebugComponents) && (level <= pDM_Odm->DebugLevel))       \\r
+               {                                                                                                                                                       \\r
+                       RT_PRINTK fmt;                                                                                                                  \\r
+               }\r
+\r
+#define ODM_RT_ASSERT(pDM_Odm, expr, fmt)                                                                                      \\r
+               if(!(expr)) {                                                                                                                                   \\r
+                       DbgPrint( "Assertion failed! %s at ......\n", #expr);                                                           \\r
+                       DbgPrint( "      ......%s,%s,line=%d\n",__FILE__,__FUNCTION__,__LINE__);                        \\r
+                       RT_PRINTK fmt;                                                                                                                  \\r
+                       ASSERT(FALSE);                                                                                                                  \\r
+               }\r
+#define ODM_dbg_enter() { DbgPrint("==> %s\n", __FUNCTION__); }\r
+#define ODM_dbg_exit() { DbgPrint("<== %s\n", __FUNCTION__); }\r
+#define ODM_dbg_trace(str) { DbgPrint("%s:%s\n", __FUNCTION__, str); }\r
+\r
+#define ODM_PRINT_ADDR(pDM_Odm, comp, level, title_str, ptr)                                                   \\r
+                       if(((comp) & pDM_Odm->DebugComponents) && (level <= pDM_Odm->DebugLevel))       \\r
+                       {                                                                                                                                               \\r
+                               int __i;                                                                                                                                \\r
+                               pu1Byte __ptr = (pu1Byte)ptr;                                                                                   \\r
+                               DbgPrint("[ODM] ");                                                                                                     \\r
+                               DbgPrint(title_str);                                                                                                    \\r
+                               DbgPrint(" ");                                                                                                          \\r
+                               for( __i=0; __i<6; __i++ )                                                                                              \\r
+                                       DbgPrint("%02X%s", __ptr[__i], (__i==5)?"":"-");                                                \\r
+                               DbgPrint("\n");                                                                                                         \\r
+                       }\r
+#else\r
+#define ODM_RT_TRACE(pDM_Odm, comp, level, fmt)\r
+#define ODM_RT_TRACE_F(pDM_Odm, comp, level, fmt)\r
+#define ODM_RT_ASSERT(pDM_Odm, expr, fmt)\r
+#define ODM_dbg_enter()\r
+#define ODM_dbg_exit()\r
+#define ODM_dbg_trace(str)\r
+#define ODM_PRINT_ADDR(pDM_Odm, comp, level, title_str, ptr)\r
+#endif\r
+\r
+\r
+VOID \r
+PHYDM_InitDebugSetting(IN              PDM_ODM_T               pDM_Odm);\r
+\r
+#if (DM_ODM_SUPPORT_TYPE == ODM_WIN)\r
+VOID phydm_BB_RxHang_Info(IN PDM_ODM_T pDM_Odm);\r
+#endif\r
+\r
+#define        BB_TMP_BUF_SIZE         100\r
+VOID phydm_BB_Debug_Info(IN PDM_ODM_T pDM_Odm);\r
+VOID phydm_BasicDbgMessage(    IN              PVOID                   pDM_VOID);\r
+\r
+#if (DM_ODM_SUPPORT_TYPE == ODM_WIN)\r
+#define        PHYDM_DBGPRINT          0\r
+#define        PHYDM_SSCANF(x, y, z)   DCMD_Scanf(x, y, z)\r
+#if (PHYDM_DBGPRINT == 1)\r
+#define        PHYDM_SNPRINTF(msg)     \\r
+               do {\\r
+                       rsprintf msg;\\r
+                       DbgPrint(output);\\r
+               } while (0)\r
+#else\r
+#define        PHYDM_SNPRINTF(msg)     \\r
+               do {\\r
+                       rsprintf msg;\\r
+                       DCMD_Printf(output);\\r
+               } while (0)\r
+#endif\r
+#else\r
+#if (DM_ODM_SUPPORT_TYPE == ODM_CE)\r
+#define        PHYDM_DBGPRINT          0\r
+#else\r
+#define        PHYDM_DBGPRINT          1\r
+#endif\r
+#define        MAX_ARGC                                20\r
+#define        MAX_ARGV                                16\r
+#define        DCMD_DECIMAL                    "%d"\r
+#define        DCMD_CHAR                               "%c"\r
+#define        DCMD_HEX                                "%x"\r
+\r
+#define        PHYDM_SSCANF(x, y, z)   sscanf(x, y, z)\r
+#if (PHYDM_DBGPRINT == 1)\r
+#define        PHYDM_SNPRINTF(msg)\\r
+               do {\\r
+                       snprintf msg;\\r
+                       DbgPrint(output);\\r
+               } while (0)\r
+#else\r
+#define        PHYDM_SNPRINTF(msg)\\r
+               do {\\r
+                       if(out_len > used)\\r
+                               used+=snprintf msg;\\r
+               } while (0)\r
+#endif\r
+#endif\r
+\r
+\r
+VOID phydm_BasicProfile(\r
+       IN              PVOID                   pDM_VOID,\r
+       IN              u4Byte                  *_used,\r
+       OUT             char                            *output,\r
+       IN              u4Byte                  *_out_len\r
+       );\r
+#if(DM_ODM_SUPPORT_TYPE & (ODM_CE|ODM_AP))\r
+s4Byte\r
+phydm_cmd(\r
+       IN PDM_ODM_T    pDM_Odm,\r
+       IN char         *input,\r
+       IN u4Byte       in_len,\r
+       IN u1Byte       flag,\r
+       OUT char        *output,\r
+       IN u4Byte       out_len\r
+);\r
+#endif\r
+VOID\r
+phydm_cmd_parser(\r
+       IN PDM_ODM_T    pDM_Odm,\r
+       IN char         input[][16],\r
+       IN u4Byte       input_num,\r
+       IN u1Byte       flag,\r
+       OUT char        *output,\r
+       IN u4Byte       out_len\r
+);\r
+\r
+#if (DM_ODM_SUPPORT_TYPE == ODM_WIN)\r
+void phydm_sbd_check(\r
+       IN      PDM_ODM_T                                       pDM_Odm\r
+       );\r
+\r
+void phydm_sbd_callback(\r
+       PRT_TIMER               pTimer\r
+       );\r
+\r
+void phydm_sbd_workitem_callback(\r
+    IN PVOID            pContext\r
+       );\r
+#endif\r
+\r
+VOID\r
+phydm_fw_trace_en_h2c(\r
+       IN      PVOID   pDM_VOID,\r
+       IN      BOOLEAN         enable,\r
+       IN      u4Byte          monitor_mode,\r
+       IN      u4Byte          macid\r
+);\r
+\r
+VOID\r
+phydm_fw_trace_handler(\r
+       IN              PVOID   pDM_VOID,\r
+       IN              pu1Byte CmdBuf,\r
+       IN              u1Byte  CmdLen\r
+);\r
+\r
+VOID\r
+phydm_fw_trace_handler_code(\r
+       IN      PVOID   pDM_VOID,\r
+       IN      pu1Byte Buffer,\r
+       IN      u1Byte  CmdLen\r
+);\r
+\r
+VOID\r
+phydm_fw_trace_handler_8051(\r
+       IN      PVOID   pDM_VOID,\r
+       IN      pu1Byte CmdBuf,\r
+       IN      u1Byte  CmdLen\r
+);\r
+\r
+#endif // __ODM_DBG_H__\r
+\r