net: wireless: rockchip_wlan: add rtl8188eu support
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rtl8188eu / hal / led / hal_usb_led.c
old mode 100755 (executable)
new mode 100644 (file)
index 7f17221..abc1292
-/******************************************************************************\r
- *\r
- * Copyright(c) 2007 - 2012 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
-#include <drv_types.h>\r
-#include <hal_data.h>\r
-\r
-//\r
-//     Description:\r
-//             Implementation of LED blinking behavior.\r
-//             It toggle off LED and schedule corresponding timer if necessary.\r
-//\r
-void\r
-SwLedBlink(\r
-       PLED_USB                        pLed\r
-       )\r
-{\r
-       _adapter                        *padapter = pLed->padapter;\r
-       struct mlme_priv        *pmlmepriv = &(padapter->mlmepriv);\r
-       u8                              bStopBlinking = _FALSE;\r
-\r
-       // Change LED according to BlinkingLedState specified.\r
-       if( pLed->BlinkingLedState == RTW_LED_ON )\r
-       {\r
-               SwLedOn(padapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));\r
-       }\r
-       else\r
-       {\r
-               SwLedOff(padapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,( "Blinktimes (%d): turn off\n", pLed->BlinkTimes));\r
-       }\r
-\r
-       // Determine if we shall change LED state again.\r
-       pLed->BlinkTimes--;\r
-       switch(pLed->CurrLedState)\r
-       {\r
-\r
-       case LED_BLINK_NORMAL:\r
-               if(pLed->BlinkTimes == 0)\r
-               {\r
-                       bStopBlinking = _TRUE;\r
-               }\r
-               break;\r
-\r
-       case LED_BLINK_StartToBlink:\r
-               if( check_fwstate(pmlmepriv, _FW_LINKED) && check_fwstate(pmlmepriv, WIFI_STATION_STATE) )\r
-               {\r
-                       bStopBlinking = _TRUE;\r
-               }\r
-               if( check_fwstate(pmlmepriv, _FW_LINKED) &&\r
-                       (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) || check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)) )\r
-               {\r
-                       bStopBlinking = _TRUE;\r
-               }\r
-               else if(pLed->BlinkTimes == 0)\r
-               {\r
-                       bStopBlinking = _TRUE;\r
-               }\r
-               break;\r
-\r
-       case LED_BLINK_WPS:\r
-               if( pLed->BlinkTimes == 0 )\r
-               {\r
-                       bStopBlinking = _TRUE;\r
-               }\r
-               break;\r
-\r
-\r
-       default:\r
-               bStopBlinking = _TRUE;\r
-               break;\r
-\r
-       }\r
-\r
-       if(bStopBlinking)\r
-       {\r
-               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )\r
-               {\r
-                       SwLedOff(padapter, pLed);\r
-               }\r
-               else if( (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE) && (pLed->bLedOn == _FALSE))\r
-               {\r
-                       SwLedOn(padapter, pLed);\r
-               }\r
-               else if( (check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE) &&  pLed->bLedOn == _TRUE)\r
-               {\r
-                       SwLedOff(padapter, pLed);\r
-               }\r
-\r
-               pLed->BlinkTimes = 0;\r
-               pLed->bLedBlinkInProgress = _FALSE;\r
-       }\r
-       else\r
-       {\r
-               // Assign LED state to toggle.\r
-               if( pLed->BlinkingLedState == RTW_LED_ON )\r
-                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-               else\r
-                       pLed->BlinkingLedState = RTW_LED_ON;\r
-\r
-               // Schedule a timer to toggle LED state.\r
-               switch( pLed->CurrLedState )\r
-               {\r
-               case LED_BLINK_NORMAL:\r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);\r
-                       break;\r
-\r
-               case LED_BLINK_SLOWLY:\r
-               case LED_BLINK_StartToBlink:\r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);\r
-                       break;\r
-\r
-               case LED_BLINK_WPS:\r
-                       {\r
-                               if( pLed->BlinkingLedState == RTW_LED_ON )\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LONG_INTERVAL);\r
-                               else\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LONG_INTERVAL);\r
-                       }\r
-                       break;\r
-\r
-               default:\r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);\r
-                       break;\r
-               }\r
-       }\r
-}\r
-\r
-void\r
-SwLedBlink1(\r
-       PLED_USB                        pLed\r
-       )\r
-{\r
-       _adapter                                *padapter = pLed->padapter;\r
-       EEPROM_EFUSE_PRIV       *pEEPROM = GET_EEPROM_EFUSE_PRIV(padapter);\r
-       struct led_priv         *ledpriv = &(padapter->ledpriv);\r
-       struct mlme_priv                *pmlmepriv = &(padapter->mlmepriv);\r
-       PLED_USB                        pLed1 = &(ledpriv->SwLed1);\r
-       u8                                      bStopBlinking = _FALSE;\r
-\r
-       u32 uLedBlinkNoLinkInterval = LED_BLINK_NO_LINK_INTERVAL_ALPHA; //add by ylb 20121012 for customer led for alpha\r
-       if(pEEPROM->CustomerID == RT_CID_819x_ALPHA_Dlink)\r
-               uLedBlinkNoLinkInterval= LED_BLINK_NO_LINK_INTERVAL_ALPHA_500MS;\r
-       \r
-       if(pEEPROM->CustomerID == RT_CID_819x_CAMEO)\r
-               pLed = &(ledpriv->SwLed1);\r
-\r
-       // Change LED according to BlinkingLedState specified.\r
-       if( pLed->BlinkingLedState == RTW_LED_ON )\r
-       {\r
-               SwLedOn(padapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,( "Blinktimes (%d): turn on\n", pLed->BlinkTimes));\r
-       }\r
-       else\r
-       {\r
-               SwLedOff(padapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));\r
-       }\r
-\r
-\r
-       if(pEEPROM->CustomerID == RT_CID_DEFAULT)\r
-       {\r
-               if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)\r
-               {\r
-                       if(!pLed1->bSWLedCtrl)\r
-                       {\r
-                               SwLedOn(padapter, pLed1);\r
-                               pLed1->bSWLedCtrl = _TRUE;\r
-                       }\r
-                       else if(!pLed1->bLedOn)\r
-                               SwLedOn(padapter, pLed1);\r
-                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (): turn on pLed1\n"));\r
-               }\r
-               else\r
-               {\r
-                       if(!pLed1->bSWLedCtrl)\r
-                       {\r
-                               SwLedOff(padapter, pLed1);\r
-                               pLed1->bSWLedCtrl = _TRUE;\r
-                       }\r
-                       else if(pLed1->bLedOn)\r
-                               SwLedOff(padapter, pLed1);\r
-                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (): turn off pLed1\n"));\r
-               }\r
-       }\r
-\r
-       switch(pLed->CurrLedState)\r
-       {\r
-               case LED_BLINK_SLOWLY:\r
-                       if( pLed->bLedOn )\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       else\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                       _set_timer(&(pLed->BlinkTimer), uLedBlinkNoLinkInterval);//change by ylb 20121012 for customer led for alpha\r
-                       break;\r
-\r
-               case LED_BLINK_NORMAL:\r
-                       if( pLed->bLedOn )\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       else\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);\r
-                       break;\r
-\r
-               case LED_BLINK_SCAN:\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-\r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )\r
-                               {\r
-                                       SwLedOff(padapter, pLed);\r
-                               }\r
-                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)\r
-                               {\r
-                                       pLed->bLedLinkBlinkInProgress = _TRUE;\r
-                                       pLed->CurrLedState = LED_BLINK_NORMAL;\r
-                                       if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));\r
-\r
-                               }\r
-                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)\r
-                               {\r
-                                       pLed->bLedNoLinkBlinkInProgress = _TRUE;\r
-                                       pLed->CurrLedState = LED_BLINK_SLOWLY;\r
-                                       if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), uLedBlinkNoLinkInterval);\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));\r
-                               }\r
-                               pLed->bLedScanBlinkInProgress = _FALSE;\r
-                       }\r
-                       else\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )\r
-                               {\r
-                                       SwLedOff(padapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_TXRX:\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )\r
-                               {\r
-                                       SwLedOff(padapter, pLed);\r
-                               }\r
-                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)\r
-                               {\r
-                                       pLed->bLedLinkBlinkInProgress = _TRUE;\r
-                                       pLed->CurrLedState = LED_BLINK_NORMAL;\r
-                                       if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));\r
-                               }\r
-                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)\r
-                               {\r
-                                       pLed->bLedNoLinkBlinkInProgress = _TRUE;\r
-                                       pLed->CurrLedState = LED_BLINK_SLOWLY;\r
-                                       if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), uLedBlinkNoLinkInterval);\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));\r
-                               }\r
-                               pLed->BlinkTimes = 0;\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       else\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )\r
-                               {\r
-                                       SwLedOff(padapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_WPS:\r
-                       if( pLed->bLedOn )\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       else\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);\r
-                       break;\r
-\r
-               case LED_BLINK_WPS_STOP:        //WPS success\r
-                       if(pLed->BlinkingLedState == RTW_LED_ON)\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_WPS_SUCESS_INTERVAL_ALPHA);\r
-                               bStopBlinking = _FALSE;\r
-                       }\r
-                       else\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-\r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )\r
-                               {\r
-                                       SwLedOff(padapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       pLed->bLedLinkBlinkInProgress = _TRUE;\r
-                                       pLed->CurrLedState = LED_BLINK_NORMAL;\r
-                                       if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));\r
-                               }\r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                       }\r
-                       break;\r
-\r
-               default:\r
-                       break;\r
-       }\r
-\r
-}\r
-\r
-void\r
-SwLedBlink2(\r
-       PLED_USB                        pLed\r
-       )\r
-{\r
-       _adapter                                *padapter = pLed->padapter;\r
-       struct mlme_priv                *pmlmepriv = &(padapter->mlmepriv);\r
-       u8                                      bStopBlinking = _FALSE;\r
-\r
-       // Change LED according to BlinkingLedState specified.\r
-       if( pLed->BlinkingLedState == RTW_LED_ON)\r
-       {\r
-               SwLedOn(padapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));\r
-       }\r
-       else\r
-       {\r
-               SwLedOff(padapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));\r
-       }\r
-\r
-       switch(pLed->CurrLedState)\r
-       {\r
-               case LED_BLINK_SCAN:\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-\r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )\r
-                               {\r
-                                       SwLedOff(padapter, pLed);\r
-                               }\r
-                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)\r
-                               {\r
-                                       pLed->CurrLedState = RTW_LED_ON;\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       SwLedOn(padapter, pLed);\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("stop scan blink CurrLedState %d\n", pLed->CurrLedState));\r
-\r
-                               }\r
-                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)\r
-                               {\r
-                                       pLed->CurrLedState = RTW_LED_OFF;\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       SwLedOff(padapter, pLed);\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("stop scan blink CurrLedState %d\n", pLed->CurrLedState));\r
-                               }\r
-                               pLed->bLedScanBlinkInProgress = _FALSE;\r
-                       }\r
-                       else\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )\r
-                               {\r
-                                       SwLedOff(padapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                        if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_TXRX:\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )\r
-                               {\r
-                                       SwLedOff(padapter, pLed);\r
-                               }\r
-                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)\r
-                               {\r
-                                       pLed->CurrLedState = RTW_LED_ON;\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       SwLedOn(padapter, pLed);\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("stop CurrLedState %d\n", pLed->CurrLedState));\r
-\r
-                               }\r
-                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)\r
-                               {\r
-                                       pLed->CurrLedState = RTW_LED_OFF;\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       SwLedOff(padapter, pLed);\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("stop CurrLedState %d\n", pLed->CurrLedState));\r
-                               }\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       else\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )\r
-                               {\r
-                                       SwLedOff(padapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                        if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               default:\r
-                       break;\r
-       }\r
-\r
-}\r
-\r
-void\r
-SwLedBlink3(\r
-       PLED_USB                        pLed\r
-       )\r
-{\r
-       _adapter                        *padapter = pLed->padapter;\r
-       struct mlme_priv        *pmlmepriv = &(padapter->mlmepriv);\r
-       u8                              bStopBlinking = _FALSE;\r
-\r
-       // Change LED according to BlinkingLedState specified.\r
-       if( pLed->BlinkingLedState == RTW_LED_ON )\r
-       {\r
-               SwLedOn(padapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));\r
-       }\r
-       else\r
-       {\r
-               if(pLed->CurrLedState != LED_BLINK_WPS_STOP)\r
-                       SwLedOff(padapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));\r
-       }\r
-\r
-       switch(pLed->CurrLedState)\r
-       {\r
-               case LED_BLINK_SCAN:\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-\r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )\r
-                               {\r
-                                       SwLedOff(padapter, pLed);\r
-                               }\r
-                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)\r
-                               {\r
-                                       pLed->CurrLedState = RTW_LED_ON;\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       if( !pLed->bLedOn )\r
-                                               SwLedOn(padapter, pLed);\r
-\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));\r
-                               }\r
-                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)\r
-                               {\r
-                                       pLed->CurrLedState = RTW_LED_OFF;\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       if( pLed->bLedOn )\r
-                                               SwLedOff(padapter, pLed);\r
-\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));\r
-                               }\r
-                               pLed->bLedScanBlinkInProgress = _FALSE;\r
-                       }\r
-                       else\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )\r
-                               {\r
-                                       SwLedOff(padapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_TXRX:\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )\r
-                               {\r
-                                       SwLedOff(padapter, pLed);\r
-                               }\r
-                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)\r
-                               {\r
-                                       pLed->CurrLedState = RTW_LED_ON;\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-\r
-                                       if( !pLed->bLedOn )\r
-                                               SwLedOn(padapter, pLed);\r
-\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));\r
-                               }\r
-                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)\r
-                               {\r
-                                       pLed->CurrLedState = RTW_LED_OFF;\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-\r
-                                       if( pLed->bLedOn )\r
-                                               SwLedOff(padapter, pLed);\r
-\r
-\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));\r
-                               }\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       else\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )\r
-                               {\r
-                                       SwLedOff(padapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_WPS:\r
-                       if( pLed->bLedOn )\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       else\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);\r
-                       break;\r
-\r
-               case LED_BLINK_WPS_STOP:        //WPS success\r
-                       if(pLed->BlinkingLedState == RTW_LED_ON)\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_WPS_SUCESS_INTERVAL_ALPHA);\r
-                               bStopBlinking = _FALSE;\r
-                       }\r
-                       else\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-\r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )\r
-                               {\r
-                                       SwLedOff(padapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       pLed->CurrLedState = RTW_LED_ON;\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       SwLedOn(padapter, pLed);\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));\r
-                               }\r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                       }\r
-                       break;\r
-\r
-\r
-               default:\r
-                       break;\r
-       }\r
-\r
-}\r
-\r
-\r
-void\r
-SwLedBlink4(\r
-       PLED_USB                        pLed\r
-       )\r
-{\r
-       _adapter                        *padapter = pLed->padapter;\r
-       struct led_priv *ledpriv = &(padapter->ledpriv);\r
-       struct mlme_priv        *pmlmepriv = &(padapter->mlmepriv);\r
-       PLED_USB                pLed1 = &(ledpriv->SwLed1);\r
-       u8                              bStopBlinking = _FALSE;\r
-\r
-       // Change LED according to BlinkingLedState specified.\r
-       if( pLed->BlinkingLedState == RTW_LED_ON )\r
-       {\r
-               SwLedOn(padapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));\r
-       }\r
-       else\r
-       {\r
-               SwLedOff(padapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));\r
-       }\r
-\r
-       if(!pLed1->bLedWPSBlinkInProgress && pLed1->BlinkingLedState == LED_UNKNOWN)\r
-       {\r
-               pLed1->BlinkingLedState = RTW_LED_OFF;\r
-               pLed1->CurrLedState = RTW_LED_OFF;\r
-               SwLedOff(padapter, pLed1);\r
-       }\r
-\r
-       switch(pLed->CurrLedState)\r
-       {\r
-               case LED_BLINK_SLOWLY:\r
-                       if( pLed->bLedOn )\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       else\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);\r
-                       break;\r
-\r
-               case LED_BLINK_StartToBlink:\r
-                       if( pLed->bLedOn )\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);\r
-                       }\r
-                       else\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_SCAN:\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _FALSE;\r
-                       }\r
-\r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       SwLedOff(padapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-                                       pLed->CurrLedState = LED_BLINK_SLOWLY;\r
-                                       if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);\r
-                               }\r
-                               pLed->bLedScanBlinkInProgress = _FALSE;\r
-                       }\r
-                       else\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       SwLedOff(padapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                        if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_TXRX:\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       SwLedOff(padapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       pLed->bLedNoLinkBlinkInProgress = _TRUE;\r
-                                       pLed->CurrLedState = LED_BLINK_SLOWLY;\r
-                                       if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);\r
-                               }\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       else\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       SwLedOff(padapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       if(IS_HARDWARE_TYPE_8192DU(padapter))\r
-                                       {\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                               pLed->CurrLedState = LED_BLINK_ALWAYS_ON;\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               if( pLed->bLedOn )\r
-                                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                               else\r
-                                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       }\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_WPS:\r
-                       if( pLed->bLedOn )\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);\r
-                       }\r
-                       else\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_WPS_STOP:        //WPS authentication fail\r
-                       if( pLed->bLedOn )\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       else\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-\r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);\r
-                       break;\r
-\r
-               case LED_BLINK_WPS_STOP_OVERLAP:        //WPS session overlap\r
-                       pLed->BlinkTimes--;\r
-                       if(pLed->BlinkTimes == 0)\r
-                       {\r
-                               if(pLed->bLedOn)\r
-                               {\r
-                                       pLed->BlinkTimes = 1;\r
-                               }\r
-                               else\r
-                               {\r
-                                       bStopBlinking = _TRUE;\r
-                               }\r
-                       }\r
-\r
-                       if(bStopBlinking)\r
-                       {\r
-                               pLed->BlinkTimes = 10;\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);\r
-                       }\r
-                       else\r
-                       {\r
-                               if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_ALWAYS_ON:\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       SwLedOff(padapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       if(IS_HARDWARE_TYPE_8192DU(padapter))\r
-                                       {\r
-                                               pLed->BlinkingLedState = RTW_LED_ON; \r
-                                               pLed->CurrLedState = LED_BLINK_ALWAYS_ON;\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               pLed->bLedNoLinkBlinkInProgress = _TRUE;\r
-                                               pLed->CurrLedState = LED_BLINK_SLOWLY;\r
-                                               if( pLed->bLedOn )\r
-                                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                               else\r
-                                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       }\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);\r
-                               }\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       else\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("RFOff Status \n"));\r
-                                       SwLedOff(padapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       if(IS_HARDWARE_TYPE_8192DU(padapter))\r
-                                       {\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               if( pLed->bLedOn )\r
-                                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                               else\r
-                                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       }\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               default:\r
-                       break;\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink4 CurrLedState %d\n", pLed->CurrLedState));\r
-\r
-\r
-}\r
-\r
-void\r
-SwLedBlink5(\r
-       PLED_USB                        pLed\r
-       )\r
-{\r
-       _adapter                        *padapter = pLed->padapter;\r
-       struct mlme_priv        *pmlmepriv = &(padapter->mlmepriv);\r
-       u8                              bStopBlinking = _FALSE;\r
-\r
-       // Change LED according to BlinkingLedState specified.\r
-       if( pLed->BlinkingLedState == RTW_LED_ON )\r
-       {\r
-               SwLedOn(padapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));\r
-       }\r
-       else\r
-       {\r
-               SwLedOff(padapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));\r
-       }\r
-\r
-       switch(pLed->CurrLedState)\r
-       {\r
-               case LED_BLINK_SCAN:\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-\r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       pLed->CurrLedState = RTW_LED_OFF;\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       if(pLed->bLedOn)\r
-                                               SwLedOff(padapter, pLed);\r
-                               }\r
-                               else\r
-                               {               pLed->CurrLedState = RTW_LED_ON;\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                               if(!pLed->bLedOn)\r
-                                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                               }\r
-\r
-                               pLed->bLedScanBlinkInProgress = _FALSE;\r
-                       }\r
-                       else\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       SwLedOff(padapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-\r
-               case LED_BLINK_TXRX:\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-\r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       pLed->CurrLedState = RTW_LED_OFF;\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       if(pLed->bLedOn)\r
-                                               SwLedOff(padapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       pLed->CurrLedState = RTW_LED_ON;\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       if(!pLed->bLedOn)\r
-                                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                               }\r
-\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       else\r
-                       {\r
-                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       SwLedOff(padapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                        if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               default:\r
-                       break;\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink5 CurrLedState %d\n", pLed->CurrLedState));\r
-\r
-\r
-}\r
-\r
-void\r
-SwLedBlink6(\r
-       PLED_USB                        pLed\r
-       )\r
-{\r
-       _adapter                        *padapter = pLed->padapter;\r
-       struct mlme_priv        *pmlmepriv = &(padapter->mlmepriv);\r
-       u8                              bStopBlinking = _FALSE;\r
-\r
-       // Change LED according to BlinkingLedState specified.\r
-       if( pLed->BlinkingLedState == RTW_LED_ON )\r
-       {\r
-               SwLedOn(padapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));\r
-       }\r
-       else\r
-       {\r
-               SwLedOff(padapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink6\n"));\r
-}\r
-\r
-void\r
-SwLedBlink7(\r
-       PLED_USB                        pLed\r
-       )\r
-{\r
-       PADAPTER Adapter = pLed->padapter;\r
-       struct mlme_priv        *pmlmepriv = &(Adapter->mlmepriv);\r
-       BOOLEAN bStopBlinking = _FALSE;\r
-\r
-       // Change LED according to BlinkingLedState specified.\r
-       if( pLed->BlinkingLedState == RTW_LED_ON )\r
-       {\r
-               SwLedOn(Adapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));\r
-       }\r
-       else\r
-       {\r
-               if(pLed->CurrLedState != LED_BLINK_WPS_STOP)\r
-                       SwLedOff(Adapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));\r
-       }\r
-\r
-       switch(pLed->CurrLedState)\r
-       {\r
-               case LED_BLINK_SCAN:\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-\r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on )\r
-                               {\r
-                                       SwLedOff(Adapter, pLed);\r
-                               }\r
-                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)\r
-                               {\r
-                                       pLed->CurrLedState = RTW_LED_ON;\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       if( !pLed->bLedOn )\r
-                                               SwLedOn(Adapter, pLed);\r
-\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));\r
-                               }\r
-                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)\r
-                               {\r
-                                       pLed->CurrLedState = RTW_LED_OFF;\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       if( pLed->bLedOn )\r
-                                               SwLedOff(Adapter, pLed);\r
-\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));                                  \r
-                               }\r
-                               pLed->bLedScanBlinkInProgress = _FALSE;\r
-                       }\r
-                       else\r
-                       {\r
-                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on )\r
-                               {\r
-                                       SwLedOff(Adapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_WPS:\r
-                       if( pLed->bLedOn )\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       else\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);\r
-                       break;\r
-\r
-               case LED_BLINK_WPS_STOP:        //WPS success\r
-                       if(pLed->BlinkingLedState == RTW_LED_ON)\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);\r
-                               bStopBlinking = _FALSE;\r
-                       }\r
-                       else\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-\r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on )\r
-                               {\r
-                                       SwLedOff(Adapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       pLed->CurrLedState = RTW_LED_ON;\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       SwLedOn(Adapter, pLed);\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));\r
-                               }\r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                       }\r
-                       break;\r
-\r
-\r
-               default:\r
-                       break;\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink7\n"));\r
-\r
-}\r
-\r
-void\r
-SwLedBlink8(\r
-       PLED_USB                        pLed\r
-       )\r
-{\r
-       PADAPTER Adapter = pLed->padapter;\r
-\r
-       // Change LED according to BlinkingLedState specified.\r
-       if( pLed->BlinkingLedState == RTW_LED_ON )\r
-       {\r
-               SwLedOn(Adapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes blink8(%d): turn on\n", pLed->BlinkTimes));\r
-       }\r
-       else\r
-       {\r
-               SwLedOff(Adapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes blink8(%d): turn off\n", pLed->BlinkTimes));\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink8\n"));\r
-\r
-}\r
-\r
-//page added for Belkin AC950. 20120813\r
-void\r
-SwLedBlink9(\r
-       PLED_USB                        pLed\r
-       )\r
-{\r
-       PADAPTER Adapter = pLed->padapter; \r
-       struct mlme_priv        *pmlmepriv = &(Adapter->mlmepriv);\r
-       BOOLEAN bStopBlinking = _FALSE;\r
-\r
-       // Change LED according to BlinkingLedState specified.\r
-       if( pLed->BlinkingLedState == RTW_LED_ON ) \r
-       {\r
-               SwLedOn(Adapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));\r
-       }\r
-       else \r
-       {\r
-               SwLedOff(Adapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));\r
-       }       \r
-\r
-\r
-       switch(pLed->CurrLedState)\r
-       {\r
-               case RTW_LED_ON:\r
-                       SwLedOn(Adapter, pLed);\r
-                       break;\r
-                       \r
-               case RTW_LED_OFF:\r
-                       SwLedOff(Adapter, pLed);\r
-                       break;\r
-                       \r
-               case LED_BLINK_SLOWLY:                  \r
-                       if( pLed->bLedOn )\r
-                               pLed->BlinkingLedState = RTW_LED_OFF; \r
-                       else\r
-                               pLed->BlinkingLedState = RTW_LED_ON; \r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);\r
-                       break;\r
-\r
-               case LED_BLINK_StartToBlink:\r
-                       if( pLed->bLedOn )\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_OFF; \r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);                             \r
-                       }\r
-                       else\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_ON; \r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);\r
-                       }\r
-                       break;                  \r
-                       \r
-               case LED_BLINK_SCAN:\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-                       \r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on )\r
-                               {\r
-                                       SwLedOff(Adapter, pLed);\r
-                               }\r
-                               else if(check_fwstate(pmlmepriv, _FW_LINKED) == _TRUE)\r
-                               {\r
-                                       pLed->bLedLinkBlinkInProgress = _TRUE;\r
-                                       pLed->CurrLedState = LED_BLINK_ALWAYS_ON;\r
-                                       \r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));                                  \r
-                               }\r
-                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)\r
-                               {\r
-                                       pLed->bLedNoLinkBlinkInProgress = _TRUE;\r
-                                       pLed->CurrLedState = LED_BLINK_SLOWLY;\r
-                                       if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF; \r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON; \r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));                                  \r
-                               }\r
-                               pLed->BlinkTimes = 0;\r
-                               pLed->bLedBlinkInProgress = _FALSE;     \r
-                       }\r
-                       else\r
-                       {\r
-                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       SwLedOff(Adapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                        if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF; \r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON; \r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_TXRX:\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       SwLedOff(Adapter, pLed);\r
-                               }\r
-                               else \r
-                               {\r
-                                       pLed->bLedNoLinkBlinkInProgress = _TRUE;\r
-                                       pLed->CurrLedState = LED_BLINK_ALWAYS_ON;\r
-                                       if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF; \r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON; \r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                               }\r
-                               pLed->bLedBlinkInProgress = _FALSE;     \r
-                       }\r
-                       else\r
-                       {\r
-                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       SwLedOff(Adapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       if(IS_HARDWARE_TYPE_8192DU(Adapter))\r
-                                       {\r
-                                               pLed->BlinkingLedState = RTW_LED_ON; \r
-                                               pLed->CurrLedState = LED_BLINK_ALWAYS_ON;\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                                if( pLed->bLedOn )\r
-                                                       pLed->BlinkingLedState = RTW_LED_OFF; \r
-                                               else\r
-                                                       pLed->BlinkingLedState = RTW_LED_ON; \r
-                                       }\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_WPS:\r
-                       if( pLed->bLedOn )\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_OFF; \r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);\r
-                       }\r
-                       else\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_ON; \r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_WPS_STOP:        //WPS authentication fail\r
-                       if( pLed->bLedOn )                      \r
-                               pLed->BlinkingLedState = RTW_LED_OFF;                   \r
-                       else                    \r
-                               pLed->BlinkingLedState = RTW_LED_ON; \r
-                       \r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);\r
-                       break;\r
-\r
-               case LED_BLINK_WPS_STOP_OVERLAP:        //WPS session overlap           \r
-                       pLed->BlinkTimes--;\r
-                       pLed->BlinkCounter --;\r
-                       if(pLed->BlinkCounter == 0)\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_OFF; \r
-                               pLed->CurrLedState = RTW_LED_OFF;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);\r
-                       }\r
-                       else\r
-                       {\r
-                               if(pLed->BlinkTimes == 0)\r
-                               {\r
-                                       if(pLed->bLedOn)\r
-                                       {\r
-                                               pLed->BlinkTimes = 1;                                                   \r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               bStopBlinking = _TRUE;\r
-                                       }\r
-                               }\r
-\r
-                               if(bStopBlinking)\r
-                               {                               \r
-                                       pLed->BlinkTimes = 10;                  \r
-                                       pLed->BlinkingLedState = RTW_LED_ON;                                                    \r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);                                                         \r
-                               }\r
-                               else\r
-                               {\r
-                                       if( pLed->bLedOn )                      \r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;                   \r
-                                       else                    \r
-                                               pLed->BlinkingLedState = RTW_LED_ON; \r
-                                       \r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);                                             \r
-                               }\r
-                       }\r
-                       break;\r
-                       \r
-               case LED_BLINK_ALWAYS_ON:\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       SwLedOff(Adapter, pLed);\r
-                               }\r
-                               else \r
-                               {\r
-                                       if(IS_HARDWARE_TYPE_8192DU(Adapter) || IS_HARDWARE_TYPE_8812AU(Adapter))\r
-                                       {\r
-                                               pLed->BlinkingLedState = RTW_LED_ON; \r
-                                               pLed->CurrLedState = LED_BLINK_ALWAYS_ON;\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               pLed->bLedNoLinkBlinkInProgress = _TRUE;\r
-                                               pLed->CurrLedState = LED_BLINK_SLOWLY;\r
-                                               if( pLed->bLedOn )\r
-                                                       pLed->BlinkingLedState = RTW_LED_OFF; \r
-                                               else\r
-                                                       pLed->BlinkingLedState = RTW_LED_ON; \r
-                                       }\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);\r
-                               }\r
-                               pLed->bLedBlinkInProgress = _FALSE;     \r
-                       }\r
-                       else\r
-                       {\r
-                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("RFOff Status \n"));\r
-                                       SwLedOff(Adapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       if(IS_HARDWARE_TYPE_8192DU(Adapter) || IS_HARDWARE_TYPE_8723AU(Adapter) || IS_HARDWARE_TYPE_8812AU(Adapter))\r
-                                       {\r
-                                               pLed->BlinkingLedState = RTW_LED_ON; \r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               if( pLed->bLedOn )\r
-                                                       pLed->BlinkingLedState = RTW_LED_OFF; \r
-                                               else\r
-                                                       pLed->BlinkingLedState = RTW_LED_ON; \r
-                                       }\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_LINK_IN_PROCESS:\r
-                       if( pLed->bLedOn )\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_OFF; \r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ON_BELKIN);\r
-                       }\r
-                       else\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_ON; \r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_OFF_BELKIN);\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_AUTH_ERROR:\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-                       if(bStopBlinking == _FALSE)\r
-                       {\r
-                               if( pLed->bLedOn )\r
-                               {\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF; \r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);\r
-                               }\r
-                               else\r
-                               {\r
-                                       pLed->BlinkingLedState = RTW_LED_ON; \r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);\r
-                               }\r
-                       }\r
-                       else\r
-                       {\r
-                               pLed->CurrLedState = RTW_LED_OFF;\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);\r
-                       }\r
-                       break;\r
-\r
-               default:\r
-                       break;\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink9 CurrLedState %d\n", pLed->CurrLedState));                                      \r
-}\r
-\r
-//page added for Netgear A6200V2. 20120827\r
-void\r
-SwLedBlink10(\r
-       PLED_USB                        pLed\r
-       )\r
-{\r
-       PADAPTER Adapter = pLed->padapter;\r
-       struct mlme_priv        *pmlmepriv = &(Adapter->mlmepriv);\r
-       BOOLEAN bStopBlinking = _FALSE;\r
-\r
-       // Change LED according to BlinkingLedState specified.\r
-       if( pLed->BlinkingLedState == RTW_LED_ON )\r
-       {\r
-               SwLedOn(Adapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));\r
-       }\r
-       else\r
-       {\r
-               SwLedOff(Adapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));\r
-       }\r
-\r
-\r
-       switch(pLed->CurrLedState)\r
-       {\r
-               case RTW_LED_ON:\r
-                       SwLedOn(Adapter, pLed);\r
-                       break;\r
-\r
-               case RTW_LED_OFF:\r
-                       SwLedOff(Adapter, pLed);\r
-                       break;\r
-\r
-               case LED_BLINK_SLOWLY:                  \r
-                       if( pLed->bLedOn )\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       else\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);\r
-                       break;\r
-\r
-               case LED_BLINK_StartToBlink:\r
-                       if( pLed->bLedOn )\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);\r
-                       }\r
-                       else\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_SCAN:\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-\r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on )\r
-                               {\r
-                                       SwLedOff(Adapter, pLed);\r
-                               }\r
-                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)\r
-                               {\r
-                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-                                       pLed->CurrLedState = RTW_LED_OFF;\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));\r
-                               }\r
-                               pLed->BlinkTimes = 0;\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       else\r
-                       {\r
-                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       SwLedOff(Adapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       if( pLed->bLedOn )\r
-                                       {\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_SLOWLY_INTERVAL_NETGEAR+LED_BLINK_LINK_INTERVAL_NETGEAR);\r
-                                       }\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_WPS:\r
-                       if( pLed->bLedOn )\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);\r
-                       }\r
-                       else\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL+LED_BLINK_LINK_INTERVAL_NETGEAR);\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_WPS_STOP:        //WPS authentication fail\r
-                       if( pLed->bLedOn )\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       else    \r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-\r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);\r
-                       break;\r
-\r
-               case LED_BLINK_WPS_STOP_OVERLAP:        //WPS session overlap\r
-                       pLed->BlinkTimes--;\r
-                       pLed->BlinkCounter --;\r
-                       if(pLed->BlinkCounter == 0)\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               pLed->CurrLedState = RTW_LED_OFF;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);\r
-                       }\r
-                       else\r
-                       {\r
-                               if(pLed->BlinkTimes == 0)\r
-                               {\r
-                                       if(pLed->bLedOn)\r
-                                       {\r
-                                               pLed->BlinkTimes = 1;\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               bStopBlinking = _TRUE;\r
-                                       }\r
-                               }\r
-\r
-                               if(bStopBlinking)\r
-                               {\r
-                                       pLed->BlinkTimes = 10;\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);\r
-                               }\r
-                               else\r
-                               {\r
-                                       if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       else    \r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_ALWAYS_ON:\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       SwLedOff(Adapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       if(IS_HARDWARE_TYPE_8192DU(Adapter) || IS_HARDWARE_TYPE_8812AU(Adapter))\r
-                                       {\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                               pLed->CurrLedState = LED_BLINK_ALWAYS_ON;\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               pLed->bLedNoLinkBlinkInProgress = _TRUE;\r
-                                               pLed->CurrLedState = LED_BLINK_SLOWLY;\r
-                                               if( pLed->bLedOn )\r
-                                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                               else\r
-                                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       }\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);\r
-                               }\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       else\r
-                       {\r
-                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("RFOff Status \n"));\r
-                                       SwLedOff(Adapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       if(IS_HARDWARE_TYPE_8192DU(Adapter) || IS_HARDWARE_TYPE_8723AU(Adapter) || IS_HARDWARE_TYPE_8812AU(Adapter))\r
-                                       {\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               if( pLed->bLedOn )\r
-                                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                               else\r
-                                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       }\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_LINK_IN_PROCESS:\r
-                       if( pLed->bLedOn )\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ON_BELKIN);\r
-                       }\r
-                       else\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_OFF_BELKIN);\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_AUTH_ERROR:\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-                       if(bStopBlinking == _FALSE)\r
-                       {\r
-                               if( pLed->bLedOn )\r
-                               {\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);\r
-                               }\r
-                               else\r
-                               {\r
-                                       pLed->BlinkingLedState = RTW_LED_ON; \r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);\r
-                               }\r
-                       }\r
-                       else\r
-                       {\r
-                               pLed->CurrLedState = RTW_LED_OFF;\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);\r
-                       }\r
-                       break;\r
-\r
-               default:\r
-                       break;\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink10 CurrLedState %d\n", pLed->CurrLedState));\r
-\r
-}\r
-\r
-void\r
-SwLedBlink11(\r
-       PLED_USB                        pLed\r
-       )\r
-{\r
-       PADAPTER Adapter = pLed->padapter;\r
-       struct mlme_priv        *pmlmepriv = &(Adapter->mlmepriv);\r
-       BOOLEAN bStopBlinking = _FALSE;\r
-\r
-       // Change LED according to BlinkingLedState specified.\r
-       if( pLed->BlinkingLedState == RTW_LED_ON )\r
-       {\r
-               SwLedOn(Adapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));\r
-       }\r
-       else\r
-       {\r
-               SwLedOff(Adapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));\r
-       }\r
-\r
-       switch(pLed->CurrLedState)\r
-       {\r
-               case LED_BLINK_TXRX:\r
-                       if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                       {\r
-                               SwLedOff(Adapter, pLed);\r
-                       }\r
-                       else\r
-                       {\r
-                                if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);\r
-                       }\r
-\r
-                       break;\r
-\r
-               case LED_BLINK_WPS:\r
-                       if(pLed->BlinkTimes == 5)\r
-                       {\r
-                               SwLedOn(Adapter, pLed);\r
-                               _set_timer(&(pLed->BlinkTimer), LED_CM11_LINK_ON_INTERVEL);\r
-                       }\r
-                       else\r
-                       {\r
-                               if( pLed->bLedOn )\r
-                               {\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_CM11_BLINK_INTERVAL);\r
-                               }\r
-                               else\r
-                               {\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_CM11_BLINK_INTERVAL);\r
-                               }\r
-                       }\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-                       if(bStopBlinking == _TRUE)\r
-                               pLed->BlinkTimes = 5;\r
-                       break;\r
-\r
-               case LED_BLINK_WPS_STOP:        //WPS authentication fail\r
-                       if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)\r
-                       {\r
-                               if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);\r
-                       }\r
-                       else\r
-                       {\r
-                               pLed->CurrLedState = RTW_LED_ON;\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                               SwLedOn(Adapter, pLed);\r
-                               _set_timer(&(pLed->BlinkTimer), 0);\r
-                       }\r
-                       break;\r
-\r
-               default:\r
-                       break;\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink5 CurrLedState %d\n", pLed->CurrLedState));\r
-}\r
-\r
-void\r
-SwLedBlink12(\r
-       PLED_USB                        pLed\r
-       )\r
-{\r
-       PADAPTER Adapter = pLed->padapter;\r
-       struct mlme_priv        *pmlmepriv = &(Adapter->mlmepriv);\r
-       BOOLEAN bStopBlinking = _FALSE;\r
-\r
-       // Change LED according to BlinkingLedState specified.\r
-       if( pLed->BlinkingLedState == RTW_LED_ON )\r
-       {\r
-               SwLedOn(Adapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%ld): turn on\n", pLed->BlinkTimes));\r
-       }\r
-       else\r
-       {\r
-               SwLedOff(Adapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%ld): turn off\n", pLed->BlinkTimes));\r
-       }\r
-\r
-       switch(pLed->CurrLedState)\r
-       {\r
-               case LED_BLINK_SLOWLY:\r
-                       if( pLed->bLedOn )\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       else\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);\r
-                       break;\r
-\r
-               case LED_BLINK_TXRX:\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-\r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       pLed->CurrLedState = RTW_LED_OFF;\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       if(pLed->bLedOn)\r
-                                               SwLedOff(Adapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       pLed->bLedNoLinkBlinkInProgress = _TRUE;\r
-                                       pLed->CurrLedState = LED_BLINK_SLOWLY;\r
-                                       if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);\r
-                               }\r
-\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       else\r
-                       {\r
-                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       SwLedOff(Adapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                        if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               default:\r
-                       break;\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink8 CurrLedState %d\n", pLed->CurrLedState));\r
-\r
-\r
-}\r
-\r
-VOID\r
-SwLedBlink13(\r
-       IN PLED_USB                     pLed\r
-       )\r
-{\r
-       PADAPTER Adapter = pLed->padapter;\r
-       struct mlme_priv        *pmlmepriv = &(Adapter->mlmepriv);\r
-       BOOLEAN bStopBlinking = _FALSE;\r
-       static u8       LinkBlinkCnt=0;\r
-\r
-       // Change LED according to BlinkingLedState specified.\r
-       if( pLed->BlinkingLedState == RTW_LED_ON ) \r
-       {\r
-               SwLedOn(Adapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));\r
-       }\r
-       else \r
-       {\r
-               if(pLed->CurrLedState != LED_BLINK_WPS_STOP)\r
-                       SwLedOff(Adapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));\r
-       }       \r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("!!! SwLedBlink13 CurrLedState %d, bLedWPSBlinkInProgress %d, bLedBlinkInProgress %d\n", pLed->CurrLedState,pLed->bLedWPSBlinkInProgress,pLed->bLedBlinkInProgress));\r
-       switch(pLed->CurrLedState)\r
-       {                       \r
-               case LED_BLINK_LINK_IN_PROCESS:\r
-                       if(!pLed->bLedWPSBlinkInProgress)\r
-                               LinkBlinkCnt++;\r
-                       \r
-                       if(LinkBlinkCnt>15)\r
-                       {\r
-                               LinkBlinkCnt=0;\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                               break;\r
-                       }\r
-                       if( pLed->bLedOn )\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_OFF; \r
-                               _set_timer(&(pLed->BlinkTimer), 500);\r
-                       }\r
-                       else\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_ON; \r
-                               _set_timer(&(pLed->BlinkTimer), 500);\r
-                       }\r
-\r
-                       break;\r
-\r
-               case LED_BLINK_WPS:\r
-                       if( pLed->bLedOn )\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_OFF; \r
-                               _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_ON_INTERVAL_NETGEAR);\r
-                       }\r
-                       else\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_ON; \r
-                               _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_OFF_INTERVAL_NETGEAR);\r
-                       }\r
-                       \r
-                       break;\r
-\r
-               case LED_BLINK_WPS_STOP:        //WPS success\r
-                       SwLedOff(Adapter, pLed);        \r
-                       pLed->bLedWPSBlinkInProgress = _FALSE;  \r
-                       break;\r
-                                       \r
-               default:\r
-                       LinkBlinkCnt=0;\r
-                       break;\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink13\n"));\r
-\r
-}\r
-\r
-VOID\r
-SwLedBlink14(\r
-       IN PLED_USB                     pLed\r
-       )\r
-{\r
-       PADAPTER Adapter = pLed->padapter;\r
-       struct mlme_priv        *pmlmepriv = &(Adapter->mlmepriv);\r
-       BOOLEAN bStopBlinking = _FALSE;\r
-       static u8       LinkBlinkCnt=0;\r
-\r
-       // Change LED according to BlinkingLedState specified.\r
-       if( pLed->BlinkingLedState == RTW_LED_ON )\r
-       {\r
-               SwLedOn(Adapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));\r
-       }\r
-       else \r
-       {\r
-               if(pLed->CurrLedState != LED_BLINK_WPS_STOP)\r
-                       SwLedOff(Adapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));\r
-       }       \r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("!!! SwLedBlink14 CurrLedState %d, bLedWPSBlinkInProgress %d, bLedBlinkInProgress %d\n", pLed->CurrLedState,pLed->bLedWPSBlinkInProgress,pLed->bLedBlinkInProgress));\r
-       switch(pLed->CurrLedState)\r
-       {                       \r
-               case LED_BLINK_TXRX:\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       SwLedOff(Adapter, pLed);\r
-                               }\r
-                               else \r
-                               {\r
-                                       SwLedOn(Adapter, pLed);\r
-                               }\r
-                               pLed->bLedBlinkInProgress = _FALSE;     \r
-                       }\r
-                       else\r
-                       {\r
-                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       SwLedOff(Adapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       if( pLed->bLedOn )\r
-                                       {\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                               if (IS_HARDWARE_TYPE_8812AU(Adapter))\r
-                                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);\r
-                                               else\r
-                                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                               if (IS_HARDWARE_TYPE_8812AU(Adapter))\r
-                                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);\r
-                                               else\r
-                                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                                       }\r
-                               }\r
-                       }\r
-\r
-                       break;\r
-                                       \r
-               default:\r
-                       LinkBlinkCnt=0;\r
-                       break;\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink14\n"));\r
-}\r
-\r
-VOID\r
-SwLedBlink15(\r
-       IN PLED_USB                     pLed\r
-       )\r
-{\r
-       PADAPTER Adapter = pLed->padapter;\r
-       struct mlme_priv        *pmlmepriv = &(Adapter->mlmepriv);\r
-       BOOLEAN bStopBlinking = _FALSE;\r
-       static u8       LinkBlinkCnt=0;\r
-       // Change LED according to BlinkingLedState specified.\r
-       \r
-       if( pLed->BlinkingLedState == RTW_LED_ON ) \r
-       {\r
-               SwLedOn(Adapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));\r
-       }\r
-       else \r
-       {\r
-               if(pLed->CurrLedState != LED_BLINK_WPS_STOP)\r
-                       SwLedOff(Adapter, pLed);\r
-               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));\r
-       }       \r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("!!! SwLedBlink15 CurrLedState %d, bLedWPSBlinkInProgress %d, bLedBlinkInProgress %d\n", pLed->CurrLedState,pLed->bLedWPSBlinkInProgress,pLed->bLedBlinkInProgress));\r
-       switch(pLed->CurrLedState)\r
-       {\r
-               case LED_BLINK_WPS:\r
-                       if( pLed->bLedOn )\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_OFF; \r
-                               _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_ON_INTERVAL_DLINK);\r
-                       }\r
-                       else\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_ON; \r
-                               _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_OFF_INTERVAL_DLINK);\r
-                       }\r
-                       break;\r
-       \r
-               case LED_BLINK_WPS_STOP:        //WPS success\r
-                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("blink15, LED_BLINK_WPS_STOP  BlinkingLedState %d\n",pLed->BlinkingLedState));\r
-                       \r
-                       if(pLed->BlinkingLedState == RTW_LED_OFF)\r
-                       {\r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;  \r
-                               return;\r
-                       }\r
-                       \r
-                       pLed->CurrLedState = LED_BLINK_WPS_STOP;\r
-                       pLed->BlinkingLedState = RTW_LED_OFF;   \r
-\r
-                       _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_LINKED_ON_INTERVAL_DLINK);                        \r
-                       break;\r
-\r
-               case LED_BLINK_NO_LINK:\r
-                       {\r
-                               static BOOLEAN          bLedOn=_TRUE;\r
-                               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("blink15, LED_NO_LINK_BLINK  bLedOn %d\n",bLedOn));\r
-                               if(bLedOn)\r
-                               {\r
-                                       bLedOn=_FALSE;\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               }\r
-                               else\r
-                               {\r
-                                       bLedOn=_TRUE;\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                               }\r
-                               pLed->bLedBlinkInProgress = _TRUE;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL);\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_LINK_IDEL:\r
-                       {\r
-                               static BOOLEAN          bLedOn=_TRUE;\r
-                               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("blink15, LED_BLINK_LINK_IDEL  bLedOn %d\n",bLedOn));\r
-                               if(bLedOn)\r
-                               {\r
-                                       bLedOn=_FALSE;\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               }\r
-                               else\r
-                               {\r
-                                       bLedOn=_TRUE;\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       \r
-                               }\r
-                               pLed->bLedBlinkInProgress = _TRUE;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_IDEL_INTERVAL);\r
-                       }       \r
-                       break;\r
-\r
-               case LED_BLINK_SCAN:\r
-                       {\r
-                               static u8       BlinkTime=0;\r
-                               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("blink15, LED_SCAN_BLINK  bLedOn %d\n",BlinkTime));\r
-                               if(BlinkTime %2==0)\r
-                               {\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                               }\r
-                               else\r
-                               {\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               }\r
-                               BlinkTime ++;\r
-\r
-                               if(BlinkTime<24)\r
-                               {\r
-                                       pLed->bLedBlinkInProgress = _TRUE;\r
-                                       \r
-                                       if(pLed->BlinkingLedState == RTW_LED_ON)\r
-                                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_OFF_INTERVAL);\r
-                                       else\r
-                                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_ON_INTERVAL);\r
-                               }\r
-                               else\r
-                               {\r
-                                       //if(pLed->OLDLedState ==LED_NO_LINK_BLINK)\r
-                                       if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)\r
-                                       {\r
-                                               pLed->CurrLedState = LED_BLINK_NO_LINK;\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;    \r
-\r
-                                               _set_timer(&(pLed->BlinkTimer), 100);\r
-                                       }\r
-                                       BlinkTime =0;\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               case LED_BLINK_TXRX:\r
-                       pLed->BlinkTimes--;\r
-                       if( pLed->BlinkTimes == 0 )\r
-                       {\r
-                               bStopBlinking = _TRUE;\r
-                       }\r
-                       if(bStopBlinking)\r
-                       {\r
-                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       SwLedOff(Adapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       SwLedOn(Adapter, pLed);\r
-                               }\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       else\r
-                       {\r
-                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)\r
-                               {\r
-                                       SwLedOff(Adapter, pLed);\r
-                               }\r
-                               else\r
-                               {\r
-                                       if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF; \r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON; \r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               default:\r
-                       LinkBlinkCnt=0;\r
-                       break;\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink15\n"));\r
-}\r
-\r
-//\r
-//     Description:\r
-//             Handler function of LED Blinking.\r
-//             We dispatch acture LED blink action according to LedStrategy.\r
-//\r
-void BlinkHandler(PLED_USB pLed)\r
-{\r
-       _adapter                *padapter = pLed->padapter;\r
-       struct led_priv *ledpriv = &(padapter->ledpriv);\r
-\r
-       //DBG_871X("%s (%s:%d)\n",__FUNCTION__, current->comm, current->pid);\r
-\r
-       if( (padapter->bSurpriseRemoved == _TRUE) || (padapter->hw_init_completed == _FALSE))   \r
-       {\r
-               //DBG_871X("%s bSurpriseRemoved:%d, bDriverStopped:%d\n", __FUNCTION__, padapter->bSurpriseRemoved, padapter->bDriverStopped);\r
-               return;\r
-       }\r
-\r
-       switch(ledpriv->LedStrategy)\r
-       {\r
-               case SW_LED_MODE0:\r
-                       SwLedBlink(pLed);\r
-                       break;\r
-               \r
-               case SW_LED_MODE1:\r
-                       SwLedBlink1(pLed);\r
-                       break;\r
-               \r
-               case SW_LED_MODE2:\r
-                       SwLedBlink2(pLed);\r
-                       break;\r
-                       \r
-               case SW_LED_MODE3:\r
-                       SwLedBlink3(pLed);\r
-                       break;\r
-\r
-               case SW_LED_MODE4:\r
-                       SwLedBlink4(pLed);\r
-                       break;                  \r
-\r
-               case SW_LED_MODE5:\r
-                       SwLedBlink5(pLed);\r
-                       break;\r
-\r
-               case SW_LED_MODE6:\r
-                       SwLedBlink6(pLed);\r
-                       break;\r
-\r
-               case SW_LED_MODE7:\r
-                       SwLedBlink7(pLed);\r
-                       break;\r
-\r
-               case SW_LED_MODE8:\r
-                       SwLedBlink8(pLed);\r
-                       break;\r
-\r
-               case SW_LED_MODE9:\r
-                       SwLedBlink9(pLed);\r
-                       break;\r
-\r
-               case SW_LED_MODE10:\r
-                       SwLedBlink10(pLed);\r
-                       break;\r
-\r
-               case SW_LED_MODE11:\r
-                       SwLedBlink11(pLed);\r
-                       break;\r
-\r
-               case SW_LED_MODE12:\r
-                       SwLedBlink12(pLed);\r
-                       break;\r
-\r
-               case SW_LED_MODE13:\r
-                       SwLedBlink13(pLed);\r
-                       break;\r
-\r
-               case SW_LED_MODE14:\r
-                       SwLedBlink14(pLed);\r
-                       break;\r
-\r
-               case SW_LED_MODE15:\r
-                       SwLedBlink15(pLed);\r
-                       break;\r
-\r
-               default:\r
-                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("BlinkWorkItemCallback 0x%x \n", ledpriv->LedStrategy));\r
-                       //SwLedBlink(pLed);\r
-                       break;\r
-       }\r
-}\r
-\r
-//\r
-//     Description:\r
-//             Callback function of LED BlinkTimer, \r
-//             it just schedules to corresponding BlinkWorkItem/led_blink_hdl\r
-//\r
-void BlinkTimerCallback(void *data)\r
-{\r
-       PLED_USB         pLed = (PLED_USB)data;\r
-       _adapter                *padapter = pLed->padapter;\r
-\r
-       //DBG_871X("%s\n", __FUNCTION__);\r
-\r
-       if( (padapter->bSurpriseRemoved == _TRUE) || (padapter->hw_init_completed == _FALSE))   \r
-       {\r
-               //DBG_871X("%s bSurpriseRemoved:%d, bDriverStopped:%d\n", __FUNCTION__, padapter->bSurpriseRemoved, padapter->bDriverStopped);\r
-               return;\r
-       }\r
-\r
-       #ifdef CONFIG_LED_HANDLED_BY_CMD_THREAD\r
-       rtw_led_blink_cmd(padapter, (PVOID)pLed);\r
-       #else\r
-       _set_workitem(&(pLed->BlinkWorkItem));\r
-       #endif\r
-}\r
-\r
-//\r
-//     Description:\r
-//             Callback function of LED BlinkWorkItem.\r
-//             We dispatch acture LED blink action according to LedStrategy.\r
-//\r
-void BlinkWorkItemCallback(_workitem *work)\r
-{\r
-       PLED_USB         pLed = container_of(work, LED_USB, BlinkWorkItem);\r
-       BlinkHandler(pLed);\r
-}\r
-\r
-static void\r
-SwLedControlMode0(\r
-       _adapter                *padapter,\r
-       LED_CTL_MODE            LedAction\r
-)\r
-{\r
-       struct led_priv *ledpriv = &(padapter->ledpriv);\r
-       PLED_USB        pLed = &(ledpriv->SwLed1);\r
-\r
-       // Decide led state\r
-       switch(LedAction)\r
-       {\r
-       case LED_CTL_TX:\r
-       case LED_CTL_RX:\r
-               if( pLed->bLedBlinkInProgress == _FALSE )\r
-               {\r
-                       pLed->bLedBlinkInProgress = _TRUE;\r
-\r
-                       pLed->CurrLedState = LED_BLINK_NORMAL;\r
-                       pLed->BlinkTimes = 2;\r
-\r
-                       if( pLed->bLedOn )\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       else\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);\r
-               }\r
-               break;\r
-\r
-       case LED_CTL_START_TO_LINK:\r
-               if( pLed->bLedBlinkInProgress == _FALSE )\r
-               {\r
-                       pLed->bLedBlinkInProgress = _TRUE;\r
-\r
-                       pLed->CurrLedState = LED_BLINK_StartToBlink;\r
-                       pLed->BlinkTimes = 24;\r
-\r
-                       if( pLed->bLedOn )\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       else\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);\r
-               }\r
-               else\r
-               {\r
-                       pLed->CurrLedState = LED_BLINK_StartToBlink;\r
-               }\r
-               break;\r
-\r
-       case LED_CTL_LINK:\r
-               pLed->CurrLedState = RTW_LED_ON;\r
-               if( pLed->bLedBlinkInProgress == _FALSE )\r
-               {\r
-                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                       _set_timer(&(pLed->BlinkTimer), 0);\r
-               }\r
-               break;\r
-\r
-       case LED_CTL_NO_LINK:\r
-               pLed->CurrLedState = RTW_LED_OFF;\r
-               if( pLed->bLedBlinkInProgress == _FALSE )\r
-               {\r
-                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       _set_timer(&(pLed->BlinkTimer), 0);\r
-               }\r
-               break;\r
-\r
-       case LED_CTL_POWER_OFF:\r
-               pLed->CurrLedState = RTW_LED_OFF;\r
-               if(pLed->bLedBlinkInProgress)\r
-               {\r
-                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                       pLed->bLedBlinkInProgress = _FALSE;\r
-               }\r
-               SwLedOff(padapter, pLed);\r
-               break;\r
-\r
-       case LED_CTL_START_WPS:\r
-               if( pLed->bLedBlinkInProgress == _FALSE || pLed->CurrLedState == RTW_LED_ON)\r
-               {\r
-                       pLed->bLedBlinkInProgress = _TRUE;\r
-\r
-                       pLed->CurrLedState = LED_BLINK_WPS;\r
-                       pLed->BlinkTimes = 20;\r
-\r
-                       if( pLed->bLedOn )\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LONG_INTERVAL);\r
-                       }\r
-                       else\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LONG_INTERVAL);\r
-                       }\r
-               }\r
-               break;\r
-\r
-       case LED_CTL_STOP_WPS:\r
-               if(pLed->bLedBlinkInProgress)\r
-               {\r
-                       pLed->CurrLedState = RTW_LED_OFF;\r
-                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                       pLed->bLedBlinkInProgress = _FALSE;\r
-               }\r
-               break;\r
-\r
-\r
-       default:\r
-               break;\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led %d\n", pLed->CurrLedState));\r
-\r
-}\r
-\r
- //ALPHA, added by chiyoko, 20090106\r
-static void\r
-SwLedControlMode1(\r
-       _adapter                *padapter,\r
-       LED_CTL_MODE            LedAction\r
-)\r
-{\r
-       struct led_priv         *ledpriv = &(padapter->ledpriv);\r
-       PLED_USB                        pLed = &(ledpriv->SwLed0);\r
-       struct mlme_priv                *pmlmepriv = &(padapter->mlmepriv);\r
-       EEPROM_EFUSE_PRIV       *pEEPROM = GET_EEPROM_EFUSE_PRIV(padapter);\r
-\r
-       u32 uLedBlinkNoLinkInterval = LED_BLINK_NO_LINK_INTERVAL_ALPHA; //add by ylb 20121012 for customer led for alpha\r
-       if(pEEPROM->CustomerID == RT_CID_819x_ALPHA_Dlink)\r
-               uLedBlinkNoLinkInterval= LED_BLINK_NO_LINK_INTERVAL_ALPHA_500MS;        \r
-       \r
-       if(pEEPROM->CustomerID == RT_CID_819x_CAMEO)\r
-               pLed = &(ledpriv->SwLed1);\r
-\r
-       switch(LedAction)\r
-       {\r
-               case LED_CTL_POWER_ON:\r
-               case LED_CTL_START_TO_LINK:\r
-               case LED_CTL_NO_LINK:\r
-                       if( pLed->bLedNoLinkBlinkInProgress == _FALSE )\r
-                       {\r
-                               if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))\r
-                               {\r
-                                       return;\r
-                               }\r
-                               if( pLed->bLedLinkBlinkInProgress == _TRUE )\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedLinkBlinkInProgress = _FALSE;\r
-                               }\r
-                               if(pLed->bLedBlinkInProgress ==_TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-\r
-                               pLed->bLedNoLinkBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_SLOWLY;\r
-                               if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), uLedBlinkNoLinkInterval);//change by ylb 20121012 for customer led for alpha\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_LINK:\r
-                       if( pLed->bLedLinkBlinkInProgress == _FALSE )\r
-                       {\r
-                               if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))\r
-                               {\r
-                                       return;\r
-                               }\r
-                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-                               }\r
-                               if(pLed->bLedBlinkInProgress ==_TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-                               pLed->bLedLinkBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_NORMAL;\r
-                               if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_SITE_SURVEY:\r
-                        if((pmlmepriv->LinkDetectInfo.bBusyTraffic) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))\r
-                               ;\r
-                        else if(pLed->bLedScanBlinkInProgress ==_FALSE)\r
-                        {\r
-                               if(IS_LED_WPS_BLINKING(pLed))\r
-                                       return;\r
-\r
-                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-                               }\r
-                               if( pLed->bLedLinkBlinkInProgress == _TRUE )\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                        pLed->bLedLinkBlinkInProgress = _FALSE;\r
-                               }\r
-                               if(pLed->bLedBlinkInProgress ==_TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-                               pLed->bLedScanBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_SCAN;\r
-                               pLed->BlinkTimes = 24;\r
-                               if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-\r
-                               if (adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason == RF_CHANGE_BY_IPS)\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_INITIAL_INTERVAL);\r
-                               else                                    \r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);\r
-\r
-                        }\r
-                       break;\r
-\r
-               case LED_CTL_TX:\r
-               case LED_CTL_RX:\r
-                       if(pLed->bLedBlinkInProgress ==_FALSE)\r
-                       {\r
-                               if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))\r
-                               {\r
-                                       return;\r
-                               }\r
-                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-                               }\r
-                               if( pLed->bLedLinkBlinkInProgress == _TRUE )\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedLinkBlinkInProgress = _FALSE;\r
-                               }\r
-                               pLed->bLedBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_TXRX;\r
-                               pLed->BlinkTimes = 2;\r
-                               if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_START_WPS: //wait until xinpin finish\r
-               case LED_CTL_START_WPS_BOTTON:\r
-                        if(pLed->bLedWPSBlinkInProgress ==_FALSE)\r
-                        {\r
-                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-                               }\r
-                               if( pLed->bLedLinkBlinkInProgress == _TRUE )\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                        pLed->bLedLinkBlinkInProgress = _FALSE;\r
-                               }\r
-                               if(pLed->bLedBlinkInProgress ==_TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-                               if(pLed->bLedScanBlinkInProgress ==_TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedScanBlinkInProgress = _FALSE;\r
-                               }\r
-                               pLed->bLedWPSBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_WPS;\r
-                               if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);\r
-                        }\r
-                       break;\r
-\r
-\r
-               case LED_CTL_STOP_WPS:\r
-                       if(pLed->bLedNoLinkBlinkInProgress == _TRUE)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedLinkBlinkInProgress == _TRUE )\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                pLed->bLedLinkBlinkInProgress = _FALSE;\r
-                       }\r
-                       if(pLed->bLedBlinkInProgress ==_TRUE)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       if(pLed->bLedScanBlinkInProgress ==_TRUE)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedScanBlinkInProgress = _FALSE;\r
-                       }\r
-                       if(pLed->bLedWPSBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                       }\r
-                       else\r
-                       {\r
-                               pLed->bLedWPSBlinkInProgress = _TRUE;\r
-                       }\r
-\r
-                       pLed->CurrLedState = LED_BLINK_WPS_STOP;\r
-                       if(pLed->bLedOn)\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_WPS_SUCESS_INTERVAL_ALPHA);\r
-                       }\r
-                       else\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), 0);\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_STOP_WPS_FAIL:\r
-                       if(pLed->bLedWPSBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                       }\r
-\r
-                       pLed->bLedNoLinkBlinkInProgress = _TRUE;\r
-                       pLed->CurrLedState = LED_BLINK_SLOWLY;\r
-                       if( pLed->bLedOn )\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       else\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                       _set_timer(&(pLed->BlinkTimer), uLedBlinkNoLinkInterval);//change by ylb 20121012 for customer led for alpha\r
-                       break;\r
-\r
-               case LED_CTL_POWER_OFF:\r
-                       pLed->CurrLedState = RTW_LED_OFF;\r
-                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       if( pLed->bLedNoLinkBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedLinkBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedLinkBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedWPSBlinkInProgress )\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedScanBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedScanBlinkInProgress = _FALSE;\r
-                       }\r
-\r
-                       SwLedOff(padapter, pLed);\r
-                       break;\r
-\r
-               default:\r
-                       break;\r
-\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led %d\n", pLed->CurrLedState));\r
-}\r
-\r
- //Arcadyan/Sitecom , added by chiyoko, 20090216\r
-static void\r
-SwLedControlMode2(\r
-       _adapter                                *padapter,\r
-       LED_CTL_MODE            LedAction\r
-)\r
-{\r
-       struct led_priv *ledpriv = &(padapter->ledpriv);\r
-       struct mlme_priv        *pmlmepriv = &padapter->mlmepriv;\r
-       PLED_USB                pLed = &(ledpriv->SwLed0);\r
-\r
-       switch(LedAction)\r
-       {\r
-               case LED_CTL_SITE_SURVEY:\r
-                        if(pmlmepriv->LinkDetectInfo.bBusyTraffic)\r
-                               ;\r
-                        else if(pLed->bLedScanBlinkInProgress ==_FALSE)\r
-                        {\r
-                               if(IS_LED_WPS_BLINKING(pLed))\r
-                                       return;\r
-\r
-                               if(pLed->bLedBlinkInProgress ==_TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-                               pLed->bLedScanBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_SCAN;\r
-                               pLed->BlinkTimes = 24;\r
-                               if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);\r
-                        }\r
-                       break;\r
-\r
-               case LED_CTL_TX:\r
-               case LED_CTL_RX:\r
-                       if((pLed->bLedBlinkInProgress ==_FALSE) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))\r
-                       {\r
-                               if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))\r
-                               {\r
-                                       return;\r
-                               }\r
-\r
-                               pLed->bLedBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_TXRX;\r
-                               pLed->BlinkTimes = 2;\r
-                               if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_LINK:\r
-                       pLed->CurrLedState = RTW_LED_ON;\r
-                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                       if( pLed->bLedBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedScanBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedScanBlinkInProgress = _FALSE;\r
-                       }\r
-\r
-                       _set_timer(&(pLed->BlinkTimer), 0);\r
-                       break;\r
-\r
-               case LED_CTL_START_WPS: //wait until xinpin finish\r
-               case LED_CTL_START_WPS_BOTTON:\r
-                       if(pLed->bLedWPSBlinkInProgress ==_FALSE)\r
-                       {\r
-                               if(pLed->bLedBlinkInProgress ==_TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-                               if(pLed->bLedScanBlinkInProgress ==_TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedScanBlinkInProgress = _FALSE;\r
-                               }\r
-                               pLed->bLedWPSBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = RTW_LED_ON;\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), 0);\r
-                        }\r
-                       break;\r
-\r
-               case LED_CTL_STOP_WPS:\r
-                       pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                       if(adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on)\r
-                       {\r
-                               pLed->CurrLedState = RTW_LED_OFF;\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               _set_timer(&(pLed->BlinkTimer), 0);\r
-                       }\r
-                       else\r
-                       {\r
-                               pLed->CurrLedState = RTW_LED_ON;\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), 0);\r
-                               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_STOP_WPS_FAIL:\r
-                       pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                       pLed->CurrLedState = RTW_LED_OFF;\r
-                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       _set_timer(&(pLed->BlinkTimer), 0);\r
-                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));\r
-                       break;\r
-\r
-               case LED_CTL_START_TO_LINK:\r
-               case LED_CTL_NO_LINK:\r
-                       if(!IS_LED_BLINKING(pLed))\r
-                       {\r
-                               pLed->CurrLedState = RTW_LED_OFF;\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               _set_timer(&(pLed->BlinkTimer), 0);\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_POWER_OFF:\r
-                       pLed->CurrLedState = RTW_LED_OFF;\r
-                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       if( pLed->bLedBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedScanBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedScanBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedWPSBlinkInProgress )\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                       }\r
-\r
-                       SwLedOff(padapter, pLed);\r
-                       break;\r
-\r
-               default:\r
-                       break;\r
-\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));\r
-}\r
-\r
-  //COREGA, added by chiyoko, 20090316\r
- static void\r
- SwLedControlMode3(\r
-       _adapter                                *padapter,\r
-       LED_CTL_MODE            LedAction\r
-)\r
-{\r
-       struct led_priv *ledpriv = &(padapter->ledpriv);\r
-       struct mlme_priv        *pmlmepriv = &padapter->mlmepriv;\r
-       PLED_USB                pLed = &(ledpriv->SwLed0);\r
-\r
-       switch(LedAction)\r
-       {\r
-               case LED_CTL_SITE_SURVEY:\r
-                       if(pmlmepriv->LinkDetectInfo.bBusyTraffic)\r
-                               ;\r
-                       else if(pLed->bLedScanBlinkInProgress ==_FALSE)\r
-                       {\r
-                               if(IS_LED_WPS_BLINKING(pLed))\r
-                                       return;\r
-\r
-                               if(pLed->bLedBlinkInProgress ==_TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-                               pLed->bLedScanBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_SCAN;\r
-                               pLed->BlinkTimes = 24;\r
-                               if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_TX:\r
-               case LED_CTL_RX:\r
-                       if((pLed->bLedBlinkInProgress ==_FALSE) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))\r
-                       {\r
-                               if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))\r
-                               {\r
-                                       return;\r
-                               }\r
-\r
-                               pLed->bLedBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_TXRX;\r
-                               pLed->BlinkTimes = 2;\r
-                               if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_LINK:\r
-                       if(IS_LED_WPS_BLINKING(pLed))\r
-                               return;\r
-\r
-                       pLed->CurrLedState = RTW_LED_ON;\r
-                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                       if( pLed->bLedBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedScanBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedScanBlinkInProgress = _FALSE;\r
-                       }\r
-\r
-                       _set_timer(&(pLed->BlinkTimer), 0);\r
-                       break;\r
-\r
-               case LED_CTL_START_WPS: //wait until xinpin finish\r
-               case LED_CTL_START_WPS_BOTTON:\r
-                       if(pLed->bLedWPSBlinkInProgress ==_FALSE)\r
-                       {\r
-                               if(pLed->bLedBlinkInProgress ==_TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-                               if(pLed->bLedScanBlinkInProgress ==_TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedScanBlinkInProgress = _FALSE;\r
-                               }\r
-                               pLed->bLedWPSBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_WPS;\r
-                               if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_STOP_WPS:\r
-                       if(pLed->bLedWPSBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                       }\r
-                       else\r
-                       {\r
-                               pLed->bLedWPSBlinkInProgress = _TRUE;\r
-                       }\r
-\r
-                       pLed->CurrLedState = LED_BLINK_WPS_STOP;\r
-                       if(pLed->bLedOn)\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_WPS_SUCESS_INTERVAL_ALPHA);\r
-                       }\r
-                       else\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), 0);\r
-                       }\r
-\r
-                       break;\r
-\r
-               case LED_CTL_STOP_WPS_FAIL:\r
-                       if(pLed->bLedWPSBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                       }\r
-\r
-                       pLed->CurrLedState = RTW_LED_OFF;\r
-                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       _set_timer(&(pLed->BlinkTimer), 0);\r
-                       break;\r
-\r
-               case LED_CTL_START_TO_LINK:\r
-               case LED_CTL_NO_LINK:\r
-                       if(!IS_LED_BLINKING(pLed))\r
-                       {\r
-                               pLed->CurrLedState = RTW_LED_OFF;\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               _set_timer(&(pLed->BlinkTimer), 0);\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_POWER_OFF:\r
-                       pLed->CurrLedState = RTW_LED_OFF;\r
-                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       if( pLed->bLedBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedScanBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedScanBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedWPSBlinkInProgress )\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                       }\r
-\r
-                       SwLedOff(padapter, pLed);\r
-                       break;\r
-\r
-               default:\r
-                       break;\r
-\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));\r
-}\r
-\r
-\r
- //Edimax-Belkin, added by chiyoko, 20090413\r
-static void\r
-SwLedControlMode4(\r
-       _adapter                                *padapter,\r
-       LED_CTL_MODE            LedAction\r
-)\r
-{\r
-       struct led_priv *ledpriv = &(padapter->ledpriv);\r
-       struct mlme_priv        *pmlmepriv = &padapter->mlmepriv;\r
-       PLED_USB                pLed = &(ledpriv->SwLed0);\r
-       PLED_USB                pLed1 = &(ledpriv->SwLed1);\r
-\r
-       switch(LedAction)\r
-       {\r
-               case LED_CTL_START_TO_LINK:\r
-                       if(pLed1->bLedWPSBlinkInProgress)\r
-                       {\r
-                               pLed1->bLedWPSBlinkInProgress = _FALSE;\r
-                               _cancel_timer_ex(&(pLed1->BlinkTimer));\r
-\r
-                               pLed1->BlinkingLedState = RTW_LED_OFF;\r
-                               pLed1->CurrLedState = RTW_LED_OFF;\r
-\r
-                               if(pLed1->bLedOn)\r
-                                       _set_timer(&(pLed->BlinkTimer), 0);\r
-                       }\r
-\r
-                       if( pLed->bLedStartToLinkBlinkInProgress == _FALSE )\r
-                       {\r
-                               if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))\r
-                               {\r
-                                       return;\r
-                               }\r
-                               if(pLed->bLedBlinkInProgress ==_TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-                               if(pLed->bLedNoLinkBlinkInProgress ==_TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-                               }\r
-\r
-                               pLed->bLedStartToLinkBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_StartToBlink;\r
-                               if( pLed->bLedOn )\r
-                               {\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);\r
-                               }\r
-                               else\r
-                               {\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_LINK:\r
-               case LED_CTL_NO_LINK:\r
-                       //LED1 settings\r
-                       if(LedAction == LED_CTL_LINK)\r
-                       {\r
-                               if(pLed1->bLedWPSBlinkInProgress)\r
-                               {\r
-                                       pLed1->bLedWPSBlinkInProgress = _FALSE;\r
-                                       _cancel_timer_ex(&(pLed1->BlinkTimer));\r
-\r
-                                       pLed1->BlinkingLedState = RTW_LED_OFF;\r
-                                       pLed1->CurrLedState = RTW_LED_OFF;\r
-\r
-                                       if(pLed1->bLedOn)\r
-                                               _set_timer(&(pLed->BlinkTimer), 0);\r
-                               }\r
-                       }\r
-\r
-                       if( pLed->bLedNoLinkBlinkInProgress == _FALSE )\r
-                       {\r
-                               if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))\r
-                               {\r
-                                       return;\r
-                               }\r
-                               if(pLed->bLedBlinkInProgress ==_TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-\r
-                               pLed->bLedNoLinkBlinkInProgress = _TRUE;\r
-                               if(IS_HARDWARE_TYPE_8192DU(padapter))\r
-                               {\r
-                                       if(LedAction == LED_CTL_LINK)\r
-                                       {\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                               pLed->CurrLedState = LED_BLINK_ALWAYS_ON;\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               pLed->CurrLedState = LED_BLINK_SLOWLY;\r
-                                               if( pLed->bLedOn )\r
-                                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                               else\r
-                                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-\r
-                                       }\r
-                               }\r
-                               else\r
-                               {\r
-                                       pLed->CurrLedState = LED_BLINK_SLOWLY;\r
-                                       if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                               }\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_SITE_SURVEY:\r
-                       if((pmlmepriv->LinkDetectInfo.bBusyTraffic) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))\r
-                               ;\r
-                       else if(pLed->bLedScanBlinkInProgress ==_FALSE)\r
-                       {\r
-                               if(IS_LED_WPS_BLINKING(pLed))\r
-                                       return;\r
-\r
-                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-                               }\r
-                               if(pLed->bLedBlinkInProgress ==_TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-                               pLed->bLedScanBlinkInProgress = _TRUE;\r
-                               if(IS_HARDWARE_TYPE_8192D(padapter))\r
-                                       pLed->CurrLedState = LED_BLINK_SLOWLY;\r
-                               else\r
-                                       pLed->CurrLedState = LED_BLINK_SCAN;\r
-                               pLed->BlinkTimes = 24;\r
-                               if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_TX:\r
-               case LED_CTL_RX:\r
-                       if(pLed->bLedBlinkInProgress ==_FALSE)\r
-                       {\r
-                               if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))\r
-                               {\r
-                                       return;\r
-                               }\r
-                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-                               }\r
-                               pLed->bLedBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_TXRX;\r
-                               pLed->BlinkTimes = 2;\r
-                               if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_START_WPS: //wait until xinpin finish\r
-               case LED_CTL_START_WPS_BOTTON:\r
-                       if(pLed1->bLedWPSBlinkInProgress)\r
-                       {\r
-                               pLed1->bLedWPSBlinkInProgress = _FALSE;\r
-                               _cancel_timer_ex(&(pLed1->BlinkTimer));\r
-\r
-                               pLed1->BlinkingLedState = RTW_LED_OFF;\r
-                               pLed1->CurrLedState = RTW_LED_OFF;\r
-\r
-                               if(pLed1->bLedOn)\r
-                                       _set_timer(&(pLed->BlinkTimer), 0);\r
-                       }\r
-\r
-                       if(pLed->bLedWPSBlinkInProgress ==_FALSE)\r
-                       {\r
-                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-                               }\r
-                               if(pLed->bLedBlinkInProgress ==_TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-                               if(pLed->bLedScanBlinkInProgress ==_TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedScanBlinkInProgress = _FALSE;\r
-                               }\r
-                               pLed->bLedWPSBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_WPS;\r
-                               if( pLed->bLedOn )\r
-                               {\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);\r
-                               }\r
-                               else\r
-                               {\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_STOP_WPS:  //WPS connect success\r
-                       if(pLed->bLedWPSBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                       }\r
-\r
-                       pLed->bLedNoLinkBlinkInProgress = _TRUE;\r
-                       pLed->CurrLedState = LED_BLINK_SLOWLY;\r
-                       if( pLed->bLedOn )\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       else\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);\r
-\r
-                       break;\r
-\r
-               case LED_CTL_STOP_WPS_FAIL:             //WPS authentication fail\r
-                       if(pLed->bLedWPSBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                       }\r
-\r
-                       pLed->bLedNoLinkBlinkInProgress = _TRUE;\r
-                       pLed->CurrLedState = LED_BLINK_SLOWLY;\r
-                       if( pLed->bLedOn )\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       else\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);\r
-\r
-                       //LED1 settings\r
-                       if(pLed1->bLedWPSBlinkInProgress)\r
-                               _cancel_timer_ex(&(pLed1->BlinkTimer));\r
-                       else\r
-                               pLed1->bLedWPSBlinkInProgress = _TRUE;\r
-\r
-                       pLed1->CurrLedState = LED_BLINK_WPS_STOP;\r
-                       if( pLed1->bLedOn )\r
-                               pLed1->BlinkingLedState = RTW_LED_OFF;\r
-                       else\r
-                               pLed1->BlinkingLedState = RTW_LED_ON;\r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);\r
-\r
-                       break;\r
-\r
-               case LED_CTL_STOP_WPS_FAIL_OVERLAP:     //WPS session overlap\r
-                       if(pLed->bLedWPSBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                       }\r
-\r
-                       pLed->bLedNoLinkBlinkInProgress = _TRUE;\r
-                       pLed->CurrLedState = LED_BLINK_SLOWLY;\r
-                       if( pLed->bLedOn )\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       else\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);\r
-\r
-                       //LED1 settings\r
-                       if(pLed1->bLedWPSBlinkInProgress)\r
-                               _cancel_timer_ex(&(pLed1->BlinkTimer));\r
-                       else\r
-                               pLed1->bLedWPSBlinkInProgress = _TRUE;\r
-\r
-                       pLed1->CurrLedState = LED_BLINK_WPS_STOP_OVERLAP;\r
-                       pLed1->BlinkTimes = 10;\r
-                       if( pLed1->bLedOn )\r
-                               pLed1->BlinkingLedState = RTW_LED_OFF;\r
-                       else\r
-                               pLed1->BlinkingLedState = RTW_LED_ON;\r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);\r
-\r
-                       break;\r
-\r
-               case LED_CTL_POWER_OFF:\r
-                       pLed->CurrLedState = RTW_LED_OFF;\r
-                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-\r
-                       if( pLed->bLedNoLinkBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedLinkBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedLinkBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedWPSBlinkInProgress )\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedScanBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedScanBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedStartToLinkBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedStartToLinkBlinkInProgress = _FALSE;\r
-                       }\r
-\r
-                       if( pLed1->bLedWPSBlinkInProgress )\r
-                       {\r
-                               _cancel_timer_ex(&(pLed1->BlinkTimer));\r
-                               pLed1->bLedWPSBlinkInProgress = _FALSE;\r
-                       }\r
-\r
-                       pLed1->BlinkingLedState = LED_UNKNOWN;\r
-                       SwLedOff(padapter, pLed);\r
-                       SwLedOff(padapter, pLed1);\r
-                       break;\r
-\r
-               case LED_CTL_CONNECTION_NO_TRANSFER:\r
-                        if(pLed->bLedBlinkInProgress == _FALSE)\r
-                        {\r
-                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-                               }\r
-                               pLed->bLedBlinkInProgress = _TRUE;\r
-\r
-                               pLed->CurrLedState = LED_BLINK_ALWAYS_ON;\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);\r
-                       }\r
-                       break;\r
-\r
-               default:\r
-                       break;\r
-\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led %d\n", pLed->CurrLedState));\r
-}\r
-\r
-\r
-\r
- //Sercomm-Belkin, added by chiyoko, 20090415\r
-static void\r
-SwLedControlMode5(\r
-       _adapter                                *padapter,\r
-       LED_CTL_MODE            LedAction\r
-)\r
-{\r
-       struct led_priv *ledpriv = &(padapter->ledpriv);\r
-       struct mlme_priv        *pmlmepriv = &padapter->mlmepriv;\r
-       EEPROM_EFUSE_PRIV       *pEEPROM = GET_EEPROM_EFUSE_PRIV(padapter);\r
-       PLED_USB                pLed = &(ledpriv->SwLed0);\r
-\r
-       if(pEEPROM->CustomerID == RT_CID_819x_CAMEO)\r
-               pLed = &(ledpriv->SwLed1);\r
-\r
-       switch(LedAction)\r
-       {\r
-               case LED_CTL_POWER_ON:\r
-               case LED_CTL_NO_LINK:\r
-               case LED_CTL_LINK:      //solid blue\r
-                       pLed->CurrLedState = RTW_LED_ON;\r
-                       pLed->BlinkingLedState = RTW_LED_ON;\r
-\r
-                       _set_timer(&(pLed->BlinkTimer), 0);\r
-                       break;\r
-\r
-               case LED_CTL_SITE_SURVEY:\r
-                       if((pmlmepriv->LinkDetectInfo.bBusyTraffic) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))\r
-                               ;\r
-                       else if(pLed->bLedScanBlinkInProgress ==_FALSE)\r
-                       {\r
-                               if(pLed->bLedBlinkInProgress ==_TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-                               pLed->bLedScanBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_SCAN;\r
-                               pLed->BlinkTimes = 24;\r
-                               if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_TX:\r
-               case LED_CTL_RX:\r
-                       if(pLed->bLedBlinkInProgress ==_FALSE)\r
-                       {\r
-                               if(pLed->CurrLedState == LED_BLINK_SCAN)\r
-                               {\r
-                                       return;\r
-                               }\r
-                               pLed->bLedBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_TXRX;\r
-                               pLed->BlinkTimes = 2;\r
-                               if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_POWER_OFF:\r
-                       pLed->CurrLedState = RTW_LED_OFF;\r
-                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-\r
-                       if( pLed->bLedBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-\r
-                       SwLedOff(padapter, pLed);\r
-                       break;\r
-\r
-               default:\r
-                       break;\r
-\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led %d\n", pLed->CurrLedState));\r
-}\r
-\r
- //WNC-Corega, added by chiyoko, 20090902\r
-static void\r
-SwLedControlMode6(\r
-       _adapter                                *padapter,\r
-       LED_CTL_MODE            LedAction\r
-)\r
-{\r
-       struct led_priv *ledpriv = &(padapter->ledpriv);\r
-       struct mlme_priv        *pmlmepriv = &padapter->mlmepriv;\r
-       PLED_USB        pLed0 = &(ledpriv->SwLed0);\r
-\r
-       switch(LedAction)\r
-       {\r
-               case LED_CTL_POWER_ON:\r
-               case LED_CTL_LINK:\r
-               case LED_CTL_NO_LINK:\r
-                       _cancel_timer_ex(&(pLed0->BlinkTimer));\r
-                       pLed0->CurrLedState = RTW_LED_ON;\r
-                       pLed0->BlinkingLedState = RTW_LED_ON;\r
-                       _set_timer(&(pLed0->BlinkTimer), 0);\r
-                       break;\r
-\r
-               case LED_CTL_POWER_OFF:\r
-                       SwLedOff(padapter, pLed0);\r
-                       break;\r
-\r
-               default:\r
-                       break;\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("ledcontrol 6 Led %d\n", pLed0->CurrLedState));\r
-}\r
-\r
-//Netgear, added by sinda, 2011/11/11\r
- void\r
- SwLedControlMode7(\r
-        PADAPTER                        Adapter,\r
-        LED_CTL_MODE            LedAction\r
- )\r
-{\r
-       struct led_priv *ledpriv = &(Adapter->ledpriv);\r
-       struct mlme_priv        *pmlmepriv = &Adapter->mlmepriv;\r
-       PLED_USB        pLed = &(ledpriv->SwLed0);\r
-       \r
-       switch(LedAction)\r
-       {               \r
-               case LED_CTL_SITE_SURVEY:\r
-                       if(pmlmepriv->LinkDetectInfo.bBusyTraffic)\r
-                               ;\r
-                       else if(pLed->bLedScanBlinkInProgress == _FALSE)\r
-                       {\r
-                               if(IS_LED_WPS_BLINKING(pLed))\r
-                                       return;\r
-\r
-                               if(pLed->bLedBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-                               pLed->bLedScanBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_SCAN;\r
-                               pLed->BlinkTimes = 6;\r
-                               if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_LINK:\r
-                       if(IS_LED_WPS_BLINKING(pLed))\r
-                               return;\r
-\r
-                       pLed->CurrLedState = RTW_LED_ON;\r
-                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                       if( pLed->bLedBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedScanBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedScanBlinkInProgress = _FALSE;\r
-                       }                       \r
-\r
-                       _set_timer(&(pLed->BlinkTimer), 0);\r
-                       break;\r
-\r
-               case LED_CTL_START_WPS: //wait until xinpin finish\r
-               case LED_CTL_START_WPS_BOTTON:\r
-                       if(pLed->bLedWPSBlinkInProgress ==_FALSE)\r
-                       {\r
-                               if(pLed->bLedBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-                               if(pLed->bLedScanBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedScanBlinkInProgress = _FALSE;\r
-                               }\r
-                               pLed->bLedWPSBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_WPS;\r
-                               if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);\r
-                       }       \r
-                       break;\r
-\r
-               case LED_CTL_STOP_WPS:\r
-                       if(pLed->bLedWPSBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;                          \r
-                       }                                               \r
-                       else\r
-                       {\r
-                               pLed->bLedWPSBlinkInProgress = _TRUE;\r
-                       }\r
-\r
-                       pLed->CurrLedState = LED_BLINK_WPS_STOP;\r
-                       if(pLed->bLedOn)\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);\r
-                       }\r
-                       else\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), 0);\r
-                       }                                       \r
-\r
-                       break;\r
-\r
-\r
-               case LED_CTL_STOP_WPS_FAIL:                     \r
-               case LED_CTL_STOP_WPS_FAIL_OVERLAP:     //WPS session overlap                   \r
-                       if(pLed->bLedWPSBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                       }\r
-\r
-                       pLed->CurrLedState = RTW_LED_OFF;\r
-                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       _set_timer(&(pLed->BlinkTimer), 0);\r
-                       break;\r
-\r
-               case LED_CTL_START_TO_LINK:\r
-               case LED_CTL_NO_LINK:\r
-                       if(!IS_LED_BLINKING(pLed))\r
-                       {\r
-                               pLed->CurrLedState = RTW_LED_OFF;\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;           \r
-                               _set_timer(&(pLed->BlinkTimer), 0);\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_POWER_OFF:\r
-               case LED_CTL_POWER_ON:\r
-                       pLed->CurrLedState = RTW_LED_OFF;\r
-                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       if( pLed->bLedBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedScanBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedScanBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedWPSBlinkInProgress )\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                       }\r
-\r
-                       _set_timer(&(pLed->BlinkTimer), 0);\r
-                       break;\r
-\r
-               default:\r
-                       break;\r
-\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("LEd control mode 7 CurrLedState %d\n", pLed->CurrLedState));\r
-}\r
-\r
-void\r
-SwLedControlMode8(\r
-       PADAPTER                        Adapter,\r
-       LED_CTL_MODE            LedAction\r
-       )\r
-{\r
-       struct led_priv *ledpriv = &(Adapter->ledpriv);\r
-       struct mlme_priv        *pmlmepriv = &Adapter->mlmepriv;\r
-       PLED_USB        pLed0 = &(ledpriv->SwLed0);\r
-\r
-       switch(LedAction)\r
-       {\r
-               case LED_CTL_LINK:\r
-                       _cancel_timer_ex(&(pLed0->BlinkTimer));                 \r
-                       pLed0->CurrLedState = RTW_LED_ON;\r
-                       pLed0->BlinkingLedState = RTW_LED_ON;\r
-                       _set_timer(&(pLed0->BlinkTimer), 0);\r
-                       break;\r
-\r
-               case LED_CTL_NO_LINK:\r
-                       _cancel_timer_ex(&(pLed0->BlinkTimer));\r
-                       pLed0->CurrLedState = RTW_LED_OFF;\r
-                       pLed0->BlinkingLedState = RTW_LED_OFF;                          \r
-                       _set_timer(&(pLed0->BlinkTimer), 0);    \r
-                       break;\r
-\r
-               case LED_CTL_POWER_OFF:\r
-                       SwLedOff(Adapter, pLed0);\r
-                       break;\r
-\r
-               default:\r
-                       break;\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 8 %d\n", pLed0->CurrLedState));\r
-\r
-}\r
-\r
-//page added for Belkin AC950, 20120813\r
-void\r
-SwLedControlMode9(\r
-       IN      PADAPTER                        Adapter,\r
-       IN      LED_CTL_MODE            LedAction\r
-)\r
-{\r
-       struct led_priv *ledpriv = &(Adapter->ledpriv);\r
-       struct mlme_priv        *pmlmepriv = &Adapter->mlmepriv;\r
-       PLED_USB        pLed = &(ledpriv->SwLed0);\r
-       PLED_USB        pLed1 = &(ledpriv->SwLed1);\r
-       PLED_USB        pLed2 = &(ledpriv->SwLed2);\r
-       BOOLEAN  bWPSOverLap = _FALSE;\r
-       \r
-       switch(LedAction)\r
-       {               \r
-               case LED_CTL_START_TO_LINK:     \r
-                       if(pLed2->bLedBlinkInProgress == _FALSE)\r
-                       {\r
-                               pLed2->bLedBlinkInProgress = _TRUE;\r
-                               pLed2->BlinkingLedState = RTW_LED_ON;\r
-                               pLed2->CurrLedState = LED_BLINK_LINK_IN_PROCESS;\r
-\r
-                               _set_timer(&(pLed2->BlinkTimer), 0);    \r
-                       }\r
-                       break;          \r
-\r
-               case LED_CTL_LINK:                      \r
-               case LED_CTL_NO_LINK:\r
-                       //LED1 settings\r
-                       if(LedAction == LED_CTL_NO_LINK)\r
-                       {\r
-                               //if(pMgntInfo->AuthStatus == AUTH_STATUS_FAILED)\r
-                               if(0)\r
-                               {\r
-                                       pLed1->CurrLedState = LED_BLINK_AUTH_ERROR;\r
-                                               if( pLed1->bLedOn )\r
-                                                       pLed1->BlinkingLedState = RTW_LED_OFF; \r
-                                               else\r
-                                                       pLed1->BlinkingLedState = RTW_LED_ON; \r
-                                               _set_timer(&(pLed1->BlinkTimer), 0);\r
-                               } \r
-                               else\r
-                               {\r
-                                       pLed1->CurrLedState = RTW_LED_OFF;\r
-                                       pLed1->BlinkingLedState = RTW_LED_OFF; \r
-                                       if( pLed1->bLedOn )\r
-                                               _set_timer(&(pLed1->BlinkTimer), 0);\r
-                               }\r
-                       }\r
-                       else\r
-                       {\r
-                               pLed1->CurrLedState = RTW_LED_OFF;\r
-                               pLed1->BlinkingLedState = RTW_LED_OFF; \r
-                               if( pLed1->bLedOn )\r
-                                       _set_timer(&(pLed1->BlinkTimer), 0); \r
-                       }\r
-                                               \r
-                       //LED2 settings\r
-                       if(LedAction == LED_CTL_LINK)\r
-                       {\r
-                               if(Adapter->securitypriv.dot11PrivacyAlgrthm != _NO_PRIVACY_)\r
-                               {\r
-                                       if(pLed2->bLedBlinkInProgress ==_TRUE)\r
-                                       {       \r
-                                               _cancel_timer_ex(&(pLed2->BlinkTimer));\r
-                                               pLed2->bLedBlinkInProgress = _FALSE;\r
-                                       }\r
-                                       pLed2->CurrLedState = RTW_LED_ON;\r
-                                       pLed2->bLedNoLinkBlinkInProgress = _TRUE;\r
-                                       if(!pLed2->bLedOn)\r
-                                               _set_timer(&(pLed2->BlinkTimer), 0);    \r
-                               }\r
-                               else\r
-                               {\r
-                                       if(pLed2->bLedWPSBlinkInProgress != _TRUE)\r
-                                       {\r
-                                               pLed2->CurrLedState = RTW_LED_OFF;\r
-                                               pLed2->BlinkingLedState = RTW_LED_OFF;\r
-                                               if(pLed2->bLedOn)\r
-                                                       _set_timer(&(pLed2->BlinkTimer), 0);\r
-                                       }\r
-                               }\r
-                       }\r
-                       else //NO_LINK\r
-                       {\r
-                               if(pLed2->bLedWPSBlinkInProgress == _FALSE)\r
-                               {\r
-                                       pLed2->CurrLedState = RTW_LED_OFF;\r
-                                       pLed2->BlinkingLedState = RTW_LED_OFF;\r
-                                       if(pLed2->bLedOn)\r
-                                               _set_timer(&(pLed2->BlinkTimer), 0);            \r
-                               }\r
-                       }\r
-\r
-                       //LED0 settings                 \r
-                       if( pLed->bLedNoLinkBlinkInProgress == _FALSE )\r
-                       {\r
-                               if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))\r
-                               {\r
-                                       return;\r
-                               }\r
-                               if(pLed->bLedBlinkInProgress == _TRUE)\r
-                               {       \r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-                               \r
-                               pLed->bLedNoLinkBlinkInProgress = _TRUE;\r
-                               if(IS_HARDWARE_TYPE_8192DU(Adapter) || IS_HARDWARE_TYPE_8812AU(Adapter))\r
-                               {\r
-                                       if(LedAction == LED_CTL_LINK)\r
-                                       {\r
-                                               pLed->BlinkingLedState = RTW_LED_ON; \r
-                                               pLed->CurrLedState = LED_BLINK_ALWAYS_ON;\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               pLed->CurrLedState = LED_BLINK_SLOWLY;\r
-                                               if( pLed->bLedOn )\r
-                                                       pLed->BlinkingLedState = RTW_LED_OFF; \r
-                                               else\r
-                                                       pLed->BlinkingLedState = RTW_LED_ON; \r
-                                       }\r
-                               }\r
-                               else\r
-                               {\r
-                                       pLed->CurrLedState = LED_BLINK_SLOWLY;\r
-                                       if( pLed->bLedOn )\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF; \r
-                                       else\r
-                                               pLed->BlinkingLedState = RTW_LED_ON; \r
-                               }\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);\r
-                       }\r
-                       \r
-                       break;          \r
-\r
-               case LED_CTL_SITE_SURVEY:\r
-                        if((pmlmepriv->LinkDetectInfo.bBusyTraffic) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))\r
-                               ;\r
-                        else //if(pLed->bLedScanBlinkInProgress ==FALSE)\r
-                        {\r
-                               if(IS_LED_WPS_BLINKING(pLed))\r
-                                       return;\r
-                               \r
-                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-                               }\r
-                               if(pLed->bLedBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-                               pLed->bLedScanBlinkInProgress = _TRUE;\r
-                               if(IS_HARDWARE_TYPE_8192D(Adapter))\r
-                                       pLed->CurrLedState = LED_BLINK_SLOWLY;\r
-                               else\r
-                                       pLed->CurrLedState = LED_BLINK_SCAN;\r
-                               pLed->BlinkTimes = 24;\r
-                               if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF; \r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON; \r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);\r
-\r
-                        }\r
-                       break;\r
-               \r
-               case LED_CTL_TX:\r
-               case LED_CTL_RX:\r
-                       if(pLed->bLedBlinkInProgress == _FALSE)\r
-                       {\r
-                               if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))\r
-                               {\r
-                                       return;\r
-                               }\r
-                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-                               }\r
-                               pLed->bLedBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_TXRX;\r
-                               pLed->BlinkTimes = 2;\r
-                               if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF; \r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON; \r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_START_WPS: //wait until xinpin finish\r
-               case LED_CTL_START_WPS_BOTTON:\r
-                       pLed2->bLedBlinkInProgress = _TRUE;\r
-                       pLed2->BlinkingLedState = RTW_LED_ON;\r
-                       pLed2->CurrLedState = LED_BLINK_LINK_IN_PROCESS;\r
-                       pLed2->bLedWPSBlinkInProgress = _TRUE;\r
-\r
-                       _set_timer(&(pLed2->BlinkTimer), 0);\r
-                        \r
-                       break;\r
-               \r
-               case LED_CTL_STOP_WPS:  //WPS connect success   \r
-                       //LED2 settings\r
-                       if(pLed2->bLedWPSBlinkInProgress == _TRUE)\r
-                       {       \r
-                               _cancel_timer_ex(&(pLed2->BlinkTimer));\r
-                               pLed2->bLedBlinkInProgress = _FALSE;\r
-                               pLed2->bLedWPSBlinkInProgress = _FALSE;\r
-                       }\r
-                       pLed2->CurrLedState = RTW_LED_ON;\r
-                       pLed2->bLedNoLinkBlinkInProgress = _TRUE;\r
-                       if(!pLed2->bLedOn)\r
-                               _set_timer(&(pLed2->BlinkTimer), 0);    \r
-\r
-                       //LED1 settings\r
-                       _cancel_timer_ex(&(pLed1->BlinkTimer));\r
-                       pLed1->CurrLedState = RTW_LED_OFF;\r
-                       pLed1->BlinkingLedState = RTW_LED_OFF; \r
-                       if( pLed1->bLedOn )\r
-                               _set_timer(&(pLed1->BlinkTimer), 0);    \r
-                       \r
-                               \r
-                       break;          \r
-\r
-               case LED_CTL_STOP_WPS_FAIL:             //WPS authentication fail       \r
-                       //LED1 settings\r
-                       //if(bWPSOverLap == _FALSE)\r
-                       {\r
-                               pLed1->CurrLedState = LED_BLINK_AUTH_ERROR;\r
-                               pLed1->BlinkTimes = 50;\r
-                               if( pLed1->bLedOn )\r
-                                       pLed1->BlinkingLedState = RTW_LED_OFF; \r
-                               else\r
-                                       pLed1->BlinkingLedState = RTW_LED_ON; \r
-                               _set_timer(&(pLed1->BlinkTimer), 0);\r
-                       }\r
-                       //else\r
-                       //{\r
-                       //      bWPSOverLap = _FALSE;\r
-                       //      pLed1->CurrLedState = RTW_LED_OFF;\r
-                       //      pLed1->BlinkingLedState = RTW_LED_OFF; \r
-                       //      _set_timer(&(pLed1->BlinkTimer), 0);\r
-                       //}\r
-\r
-                       //LED2 settings\r
-                       pLed2->CurrLedState = RTW_LED_OFF;\r
-                       pLed2->BlinkingLedState = RTW_LED_OFF; \r
-                       pLed2->bLedWPSBlinkInProgress = _FALSE;\r
-                       if( pLed2->bLedOn )\r
-                               _set_timer(&(pLed2->BlinkTimer), 0);\r
-                                               \r
-                       break;                          \r
-\r
-               case LED_CTL_STOP_WPS_FAIL_OVERLAP:     //WPS session overlap\r
-                       //LED1 settings\r
-                       bWPSOverLap = _TRUE;\r
-                       pLed1->CurrLedState = LED_BLINK_WPS_STOP_OVERLAP;\r
-                       pLed1->BlinkTimes = 10;\r
-                       pLed1->BlinkCounter = 50;\r
-                       if( pLed1->bLedOn )\r
-                               pLed1->BlinkingLedState = RTW_LED_OFF; \r
-                       else\r
-                               pLed1->BlinkingLedState = RTW_LED_ON; \r
-                       _set_timer(&(pLed1->BlinkTimer), 0);\r
-\r
-                       //LED2 settings\r
-                       pLed2->CurrLedState = RTW_LED_OFF;\r
-                       pLed2->BlinkingLedState = RTW_LED_OFF;\r
-                       pLed2->bLedWPSBlinkInProgress = _FALSE;\r
-                       if( pLed2->bLedOn )\r
-                               _set_timer(&(pLed2->BlinkTimer), 0);\r
-                       \r
-                       break;\r
-\r
-               case LED_CTL_POWER_OFF:\r
-                       pLed->CurrLedState = RTW_LED_OFF;\r
-                       pLed->BlinkingLedState = RTW_LED_OFF; \r
-                       \r
-                       if( pLed->bLedNoLinkBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedLinkBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedLinkBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedWPSBlinkInProgress )\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedScanBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedScanBlinkInProgress = _FALSE;\r
-                       }       \r
-                       if( pLed->bLedStartToLinkBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedStartToLinkBlinkInProgress = _FALSE;\r
-                       }                       \r
-\r
-                       if( pLed1->bLedWPSBlinkInProgress )\r
-                       {\r
-                               _cancel_timer_ex(&(pLed1->BlinkTimer));\r
-                               pLed1->bLedWPSBlinkInProgress = _FALSE;\r
-                       }\r
-\r
-\r
-                       pLed1->BlinkingLedState = LED_UNKNOWN;                          \r
-                       SwLedOff(Adapter, pLed);\r
-                       SwLedOff(Adapter, pLed1);                       \r
-                       break;\r
-\r
-               case LED_CTL_CONNECTION_NO_TRANSFER:\r
-                        if(pLed->bLedBlinkInProgress == _FALSE)\r
-                        {\r
-                                 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-                               }\r
-                               pLed->bLedBlinkInProgress = _TRUE;\r
-\r
-                               pLed->CurrLedState = LED_BLINK_ALWAYS_ON;\r
-                               pLed->BlinkingLedState = RTW_LED_ON; \r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);\r
-                        }\r
-                       break;\r
-       \r
-               default:\r
-                       break;\r
-\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 9 Led %d\n", pLed->CurrLedState));\r
-}\r
-\r
-//page added for Netgear A6200V2, 20120827\r
-void\r
-SwLedControlMode10(\r
-       PADAPTER                        Adapter,\r
-       LED_CTL_MODE            LedAction\r
-)\r
-{\r
-       HAL_DATA_TYPE   *pHalData = GET_HAL_DATA(Adapter);\r
-       struct led_priv *ledpriv = &(Adapter->ledpriv);\r
-       struct mlme_priv        *pmlmepriv = &Adapter->mlmepriv;\r
-       PLED_USB        pLed = &(ledpriv->SwLed0);\r
-       PLED_USB        pLed1 = &(ledpriv->SwLed1);\r
-\r
-       switch(LedAction)\r
-       {\r
-               case LED_CTL_START_TO_LINK:\r
-                       if(pLed1->bLedBlinkInProgress == _FALSE)\r
-                       {\r
-                               pLed1->bLedBlinkInProgress = _TRUE;\r
-                               pLed1->BlinkingLedState = RTW_LED_ON;\r
-                               pLed1->CurrLedState = LED_BLINK_LINK_IN_PROCESS;\r
-\r
-                               _set_timer(&(pLed1->BlinkTimer), 0);\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_LINK:                      \r
-               case LED_CTL_NO_LINK:\r
-                       if(LedAction == LED_CTL_LINK)\r
-                       {\r
-                               if(pLed->bLedWPSBlinkInProgress == _TRUE || pLed1->bLedWPSBlinkInProgress == _TRUE)\r
-                                       ;\r
-                               else\r
-                               {\r
-                                       if(pHalData->CurrentBandType == BAND_ON_2_4G)\r
-                                       //LED0 settings\r
-                                       {\r
-                                               pLed->CurrLedState = RTW_LED_ON;\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                               if(pLed->bLedBlinkInProgress == _TRUE)\r
-                                               {       \r
-                                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                                               }\r
-                                               _set_timer(&(pLed->BlinkTimer), 0);\r
-\r
-                                               pLed1->CurrLedState = RTW_LED_OFF;\r
-                                               pLed1->BlinkingLedState = RTW_LED_OFF;\r
-                                               _set_timer(&(pLed1->BlinkTimer), 0);\r
-                                       }\r
-                                       else if(pHalData->CurrentBandType == BAND_ON_5G)\r
-                                       //LED1 settings\r
-                                       {\r
-                                               pLed1->CurrLedState = RTW_LED_ON;\r
-                                               pLed1->BlinkingLedState = RTW_LED_ON;\r
-                                               if(pLed1->bLedBlinkInProgress == _TRUE)\r
-                                               {       \r
-                                                       _cancel_timer_ex(&(pLed1->BlinkTimer));\r
-                                                       pLed1->bLedBlinkInProgress = _FALSE;\r
-                                               }\r
-                                               _set_timer(&(pLed1->BlinkTimer), 0);\r
-\r
-                                               pLed->CurrLedState = RTW_LED_OFF;\r
-                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                               _set_timer(&(pLed->BlinkTimer), 0);\r
-                                       }\r
-                               }\r
-                       }\r
-                       else if(LedAction == LED_CTL_NO_LINK)   //TODO by page\r
-                       {\r
-                               if(pLed->bLedWPSBlinkInProgress == _TRUE || pLed1->bLedWPSBlinkInProgress == _TRUE)\r
-                                       ;\r
-                               else\r
-                               {\r
-                                       pLed->CurrLedState = RTW_LED_OFF;\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       if( pLed->bLedOn )\r
-                                               _set_timer(&(pLed->BlinkTimer), 0);\r
-\r
-                                       pLed1->CurrLedState = RTW_LED_OFF;\r
-                                       pLed1->BlinkingLedState = RTW_LED_OFF;\r
-                                       if( pLed1->bLedOn )\r
-                                               _set_timer(&(pLed1->BlinkTimer), 0);\r
-                               }\r
-                       }\r
-\r
-                       break;          \r
-\r
-               case LED_CTL_SITE_SURVEY:\r
-                        if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)\r
-                               ;                                                                  //don't blink when media connect\r
-                        else //if(pLed->bLedScanBlinkInProgress ==FALSE)\r
-                        {\r
-                               if(IS_LED_WPS_BLINKING(pLed) || IS_LED_WPS_BLINKING(pLed1))\r
-                                       return;\r
-\r
-                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-                               }\r
-                               if(pLed->bLedBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-                               pLed->bLedScanBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_SCAN;\r
-                               pLed->BlinkTimes = 12;\r
-                               pLed->BlinkingLedState = LED_BLINK_SCAN;\r
-                               _set_timer(&(pLed->BlinkTimer), 0);\r
-\r
-                               if(pLed1->bLedNoLinkBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed1->BlinkTimer));\r
-                                       pLed1->bLedNoLinkBlinkInProgress = _FALSE;\r
-                               }\r
-                               if(pLed1->bLedBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed1->BlinkTimer));\r
-                                       pLed1->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-                               pLed1->bLedScanBlinkInProgress = _TRUE;\r
-                               pLed1->CurrLedState = LED_BLINK_SCAN;\r
-                               pLed1->BlinkTimes = 12;\r
-                               pLed1->BlinkingLedState = LED_BLINK_SCAN;\r
-                               _set_timer(&(pLed1->BlinkTimer), LED_BLINK_LINK_SLOWLY_INTERVAL_NETGEAR);\r
-\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_START_WPS: //wait until xinpin finish\r
-               case LED_CTL_START_WPS_BOTTON:\r
-                       //LED0 settings\r
-                       if(pLed->bLedBlinkInProgress == _FALSE)\r
-                       {\r
-                               pLed->bLedBlinkInProgress = _TRUE;\r
-                               pLed->bLedWPSBlinkInProgress = _TRUE;\r
-                               pLed->BlinkingLedState = LED_BLINK_WPS;\r
-                               pLed->CurrLedState = LED_BLINK_WPS;\r
-                               _set_timer(&(pLed->BlinkTimer), 0);\r
-                       }\r
-\r
-                       //LED1 settings\r
-                       if(pLed1->bLedBlinkInProgress == _FALSE)\r
-                       {\r
-                               pLed1->bLedBlinkInProgress = _TRUE;\r
-                               pLed1->bLedWPSBlinkInProgress = _TRUE;\r
-                               pLed1->BlinkingLedState = LED_BLINK_WPS;\r
-                               pLed1->CurrLedState = LED_BLINK_WPS;\r
-                               _set_timer(&(pLed1->BlinkTimer), LED_BLINK_NORMAL_INTERVAL+LED_BLINK_LINK_INTERVAL_NETGEAR);\r
-                       }\r
-\r
-\r
-                       break;\r
-\r
-               case LED_CTL_STOP_WPS:  //WPS connect success\r
-                       if(pHalData->CurrentBandType == BAND_ON_2_4G)\r
-                       //LED0 settings\r
-                       {\r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                               pLed->CurrLedState = RTW_LED_ON;\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                               if(pLed->bLedBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-                               _set_timer(&(pLed->BlinkTimer), 0);\r
-\r
-                               pLed1->CurrLedState = RTW_LED_OFF;\r
-                               pLed1->BlinkingLedState = RTW_LED_OFF;\r
-                               _set_timer(&(pLed1->BlinkTimer), 0);\r
-                       }\r
-                       else if(pHalData->CurrentBandType == BAND_ON_5G)\r
-                       //LED1 settings\r
-                       {\r
-                               pLed1->bLedWPSBlinkInProgress = _FALSE;\r
-                               pLed1->CurrLedState = RTW_LED_ON;\r
-                               pLed1->BlinkingLedState = RTW_LED_ON;\r
-                               if(pLed1->bLedBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed1->BlinkTimer));\r
-                                       pLed1->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-                               _set_timer(&(pLed1->BlinkTimer), 0);\r
-\r
-                               pLed->CurrLedState = RTW_LED_OFF;\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               _set_timer(&(pLed->BlinkTimer), 0);\r
-                       }\r
-\r
-                       break;\r
-\r
-               case LED_CTL_STOP_WPS_FAIL:             //WPS authentication fail       \r
-                       //LED1 settings\r
-                       pLed1->bLedWPSBlinkInProgress = _FALSE;\r
-                       pLed1->CurrLedState = RTW_LED_OFF;\r
-                       pLed1->BlinkingLedState = RTW_LED_OFF; \r
-                       _set_timer(&(pLed1->BlinkTimer), 0);\r
-\r
-                       //LED0 settings\r
-                       pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                       pLed->CurrLedState = RTW_LED_OFF;\r
-                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       if( pLed->bLedOn )\r
-                               _set_timer(&(pLed->BlinkTimer), 0);\r
-\r
-                       break;\r
-\r
-\r
-               default:\r
-                       break;\r
-\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 10 Led %d\n", pLed->CurrLedState));\r
-}\r
-\r
- //Edimax-ASUS, added by Page, 20121221\r
-void\r
-SwLedControlMode11(\r
-       PADAPTER                        Adapter,\r
-       LED_CTL_MODE            LedAction\r
-)\r
-{\r
-       struct led_priv *ledpriv = &(Adapter->ledpriv);\r
-       struct mlme_priv        *pmlmepriv = &Adapter->mlmepriv;\r
-       PLED_USB        pLed = &(ledpriv->SwLed0);\r
-\r
-       switch(LedAction)\r
-       {       \r
-               case LED_CTL_POWER_ON:\r
-               case LED_CTL_START_TO_LINK:     \r
-               case LED_CTL_NO_LINK:\r
-                       pLed->CurrLedState = RTW_LED_ON;\r
-                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                       _set_timer(&(pLed->BlinkTimer), 0);\r
-                       break;\r
-\r
-               case LED_CTL_LINK:\r
-                       if( pLed->bLedBlinkInProgress == _TRUE )\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       pLed->bLedBlinkInProgress = _TRUE;\r
-                       pLed->CurrLedState = LED_BLINK_TXRX;\r
-                       if( pLed->bLedOn )\r
-                               pLed->BlinkingLedState = RTW_LED_OFF; \r
-                       else\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);\r
-                       break;\r
-\r
-               case LED_CTL_START_WPS: //wait until xinpin finish\r
-               case LED_CTL_START_WPS_BOTTON:\r
-                       if(pLed->bLedBlinkInProgress == _TRUE)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       pLed->bLedWPSBlinkInProgress = _TRUE;\r
-                       pLed->bLedBlinkInProgress = _TRUE;\r
-                       pLed->CurrLedState = LED_BLINK_WPS;\r
-                       if( pLed->bLedOn )\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       else\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                       pLed->BlinkTimes = 5;\r
-                       _set_timer(&(pLed->BlinkTimer), 0);\r
-\r
-                       break;\r
-\r
-\r
-               case LED_CTL_STOP_WPS:\r
-               case LED_CTL_STOP_WPS_FAIL:\r
-                       if(pLed->bLedBlinkInProgress == _TRUE)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       pLed->CurrLedState = LED_BLINK_WPS_STOP;\r
-                       _set_timer(&(pLed->BlinkTimer), 0);\r
-                       break;\r
-\r
-               case LED_CTL_POWER_OFF:\r
-                       pLed->CurrLedState = RTW_LED_OFF;\r
-                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-\r
-                       if( pLed->bLedNoLinkBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedLinkBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedLinkBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedWPSBlinkInProgress )\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedScanBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedScanBlinkInProgress = _FALSE;\r
-                       }\r
-\r
-                       SwLedOff(Adapter, pLed);\r
-                       break;\r
-\r
-               default:\r
-                       break;\r
-\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led mode 1 CurrLedState %d\n", pLed->CurrLedState));\r
-}\r
-\r
-// page added for NEC\r
-\r
-VOID\r
-SwLedControlMode12(\r
-       PADAPTER                        Adapter,\r
-       LED_CTL_MODE            LedAction\r
-)\r
-{\r
-       struct led_priv *ledpriv = &(Adapter->ledpriv);\r
-       struct mlme_priv        *pmlmepriv = &Adapter->mlmepriv;\r
-       PLED_USB        pLed = &(ledpriv->SwLed0);\r
-\r
-       switch(LedAction)\r
-       {\r
-               case LED_CTL_POWER_ON:\r
-               case LED_CTL_NO_LINK:\r
-               case LED_CTL_LINK:\r
-               case LED_CTL_SITE_SURVEY:\r
-\r
-                       if( pLed->bLedNoLinkBlinkInProgress == _FALSE )\r
-                       {\r
-                               if(pLed->bLedBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-\r
-                               pLed->bLedNoLinkBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_SLOWLY;\r
-                               if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_TX:\r
-               case LED_CTL_RX:\r
-                       if(pLed->bLedBlinkInProgress == _FALSE)\r
-                       {\r
-                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-                               }\r
-                               pLed->bLedBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_TXRX;\r
-                               pLed->BlinkTimes = 2;\r
-                               if( pLed->bLedOn )\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                               else\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_POWER_OFF:\r
-                       pLed->CurrLedState = RTW_LED_OFF;\r
-                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-\r
-                       if( pLed->bLedBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-\r
-                       if( pLed->bLedScanBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedScanBlinkInProgress = _FALSE;\r
-                       }\r
-\r
-                       if(pLed->bLedNoLinkBlinkInProgress == _TRUE)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-                       }\r
-\r
-                       SwLedOff(Adapter, pLed);\r
-                       break;\r
-\r
-               default:\r
-                       break;\r
-\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SWLed12 %d\n", pLed->CurrLedState));\r
-}\r
-\r
-// Maddest add for NETGEAR R6100\r
-\r
-VOID\r
-SwLedControlMode13(\r
-       IN      PADAPTER                        Adapter,\r
-       IN      LED_CTL_MODE            LedAction\r
-)\r
-{\r
-       struct led_priv *ledpriv = &(Adapter->ledpriv);\r
-       struct mlme_priv        *pmlmepriv = &Adapter->mlmepriv;\r
-       PLED_USB        pLed = &(ledpriv->SwLed0);\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 13 CurrLedState %d, LedAction %d\n", pLed->CurrLedState,LedAction));\r
-       switch(LedAction)\r
-       {               \r
-               case LED_CTL_LINK:\r
-                       if(pLed->bLedWPSBlinkInProgress)\r
-                       {\r
-                               return; \r
-                       }\r
-\r
-                       \r
-                       pLed->CurrLedState = RTW_LED_ON;\r
-                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                       if( pLed->bLedBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedScanBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedScanBlinkInProgress = _FALSE;\r
-                       }                       \r
-\r
-                       _set_timer(&(pLed->BlinkTimer), 0);\r
-                       break;                  \r
-\r
-               case LED_CTL_START_WPS: //wait until xinpin finish\r
-               case LED_CTL_START_WPS_BOTTON:  \r
-                       if(pLed->bLedWPSBlinkInProgress == _FALSE)\r
-                       {\r
-                               if(pLed->bLedBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-                               if(pLed->bLedScanBlinkInProgress == _TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedScanBlinkInProgress = _FALSE;\r
-                               }                               \r
-                               pLed->bLedWPSBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_WPS;\r
-                               if( pLed->bLedOn )\r
-                               {\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_OFF_INTERVAL_NETGEAR);\r
-                               }\r
-                               else\r
-                               {\r
-                                       pLed->BlinkingLedState = RTW_LED_ON; \r
-                                       _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_ON_INTERVAL_NETGEAR);\r
-                               }\r
-                       }       \r
-                       break;\r
-                       \r
-               case LED_CTL_STOP_WPS:  \r
-                       if(pLed->bLedWPSBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));                                                  \r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;                          \r
-                       }                                               \r
-                       else\r
-                       {\r
-                               pLed->bLedWPSBlinkInProgress = _TRUE;\r
-                       }\r
-                       \r
-                       pLed->bLedWPSBlinkInProgress = _FALSE;          \r
-                       pLed->CurrLedState = LED_BLINK_WPS_STOP;\r
-                       if(pLed->bLedOn)\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;                   \r
-                                       \r
-                               _set_timer(&(pLed->BlinkTimer), 0);\r
-                       }                                       \r
-\r
-                       break;          \r
-\r
-                       \r
-               case LED_CTL_STOP_WPS_FAIL:             \r
-               case LED_CTL_STOP_WPS_FAIL_OVERLAP: //WPS session overlap\r
-                       if(pLed->bLedWPSBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));                                                  \r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;                          \r
-                       }                       \r
-\r
-                       pLed->CurrLedState = RTW_LED_OFF;\r
-                       pLed->BlinkingLedState = RTW_LED_OFF;                           \r
-                       _set_timer(&(pLed->BlinkTimer), 0);     \r
-                       break;                          \r
-\r
-               case LED_CTL_START_TO_LINK:     \r
-                       if((pLed->bLedBlinkInProgress == _FALSE) && (pLed->bLedWPSBlinkInProgress == _FALSE)) \r
-                       {\r
-                               pLed->bLedBlinkInProgress = _TRUE;\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                               pLed->CurrLedState = LED_BLINK_LINK_IN_PROCESS;\r
-\r
-                               _set_timer(&(pLed->BlinkTimer), 0);\r
-                       }\r
-                       break;  \r
-\r
-               case LED_CTL_NO_LINK:\r
-\r
-                       if(pLed->bLedWPSBlinkInProgress)\r
-                       {\r
-                               return; \r
-                       }\r
-                       if( pLed->bLedBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedScanBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedScanBlinkInProgress = _FALSE;\r
-                       }                       \r
-                       //if(!IS_LED_BLINKING(pLed))\r
-                       {\r
-                               pLed->CurrLedState = RTW_LED_OFF;\r
-                               pLed->BlinkingLedState = RTW_LED_OFF;                           \r
-                               _set_timer(&(pLed->BlinkTimer), 0);                             \r
-                       }\r
-                       break;\r
-                       \r
-               case LED_CTL_POWER_OFF:\r
-               case LED_CTL_POWER_ON:\r
-                       pLed->CurrLedState = RTW_LED_OFF;\r
-                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       if( pLed->bLedBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedScanBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedScanBlinkInProgress = _FALSE;\r
-                       }                       \r
-                       if( pLed->bLedWPSBlinkInProgress )\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                       }\r
-\r
-                       if (LedAction == LED_CTL_POWER_ON)\r
-                               _set_timer(&(pLed->BlinkTimer), 0);\r
-                       else\r
-                               SwLedOff(Adapter, pLed);\r
-                       break;\r
-                       \r
-               default:\r
-                       break;\r
-\r
-       }\r
-\r
-       \r
-}\r
-\r
-// Maddest add for DNI Buffalo\r
-\r
-VOID\r
-SwLedControlMode14(\r
-       IN      PADAPTER                        Adapter,\r
-       IN      LED_CTL_MODE            LedAction\r
-)\r
-{\r
-       struct led_priv *ledpriv = &(Adapter->ledpriv);\r
-       PLED_USB        pLed = &(ledpriv->SwLed0);\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 14 CurrLedState %d, LedAction %d\n", pLed->CurrLedState,LedAction));\r
-       switch(LedAction)\r
-       {                               \r
-               case LED_CTL_POWER_OFF:\r
-                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 14 LED_CTL_POWER_OFF\n"));\r
-                       pLed->CurrLedState = RTW_LED_OFF;\r
-                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       if( pLed->bLedBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }                       \r
-                       SwLedOff(Adapter, pLed);        \r
-                       break;\r
-\r
-               case LED_CTL_POWER_ON:\r
-                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 14 LED_CTL_POWER_ON\n"));\r
-                       SwLedOn(Adapter, pLed);\r
-                       break;\r
-\r
-               case LED_CTL_LINK:\r
-               case LED_CTL_NO_LINK:\r
-                       if (IS_HARDWARE_TYPE_8812AU(Adapter))\r
-                               SwLedOn(Adapter, pLed);\r
-                       break;\r
-\r
-               case LED_CTL_TX:\r
-               case LED_CTL_RX:\r
-                       if(pLed->bLedBlinkInProgress ==_FALSE)\r
-                       {\r
-                               pLed->bLedBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_TXRX;\r
-                               pLed->BlinkTimes = 2;\r
-                               if( pLed->bLedOn )\r
-                               {\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       if (IS_HARDWARE_TYPE_8812AU(Adapter))\r
-                                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);\r
-                                       else\r
-                                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                               }\r
-                               else\r
-                               {\r
-                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       if (IS_HARDWARE_TYPE_8812AU(Adapter))\r
-                                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);\r
-                                       else\r
-                                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                               }\r
-                       }\r
-                       break;\r
-\r
-               default:\r
-                       break;\r
-       }\r
-}\r
-\r
-// Maddest add for Dlink\r
-\r
-VOID\r
-SwLedControlMode15(\r
-       IN      PADAPTER                        Adapter,\r
-       IN      LED_CTL_MODE            LedAction\r
-)\r
-{\r
-       struct led_priv *ledpriv = &(Adapter->ledpriv);\r
-       struct mlme_priv        *pmlmepriv = &Adapter->mlmepriv;\r
-       PLED_USB        pLed = &(ledpriv->SwLed0);\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 CurrLedState %d, LedAction %d\n", pLed->CurrLedState,LedAction));\r
-       switch(LedAction)\r
-       {               \r
-               case LED_CTL_START_WPS: //wait until xinpin finish\r
-               case LED_CTL_START_WPS_BOTTON:  \r
-                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 LED_CTL_START_WPS\n"));\r
-                       if(pLed->bLedWPSBlinkInProgress ==_FALSE)\r
-                       {\r
-                               if(pLed->bLedBlinkInProgress ==_TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedBlinkInProgress = _FALSE;\r
-                               }\r
-                               if(pLed->bLedScanBlinkInProgress ==_TRUE)\r
-                               {\r
-                                       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                                       pLed->bLedScanBlinkInProgress = _FALSE;\r
-                               }                               \r
-                               pLed->bLedWPSBlinkInProgress = _TRUE;\r
-                               pLed->CurrLedState = LED_BLINK_WPS;\r
-                               if( pLed->bLedOn )\r
-                               {\r
-                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                       _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_OFF_INTERVAL_NETGEAR);\r
-                               }\r
-                               else\r
-                               {\r
-                                       pLed->BlinkingLedState = RTW_LED_ON; \r
-                                       _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_ON_INTERVAL_NETGEAR);\r
-                               }\r
-                       }       \r
-                       break;\r
-                       \r
-               case LED_CTL_STOP_WPS:  \r
-                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 LED_CTL_STOP_WPS\n"));\r
-                       if(pLed->bLedWPSBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));                                                                          \r
-                       }                                               \r
-                       \r
-                       pLed->CurrLedState = LED_BLINK_WPS_STOP;\r
-                       //if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)\r
-                       {\r
-                               pLed->BlinkingLedState = RTW_LED_ON;                    \r
-                                       \r
-                               _set_timer(&(pLed->BlinkTimer), 0);\r
-                       }                                       \r
-\r
-                       break;\r
-\r
-               case LED_CTL_STOP_WPS_FAIL:             \r
-               case LED_CTL_STOP_WPS_FAIL_OVERLAP: //WPS session overlap\r
-                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 LED_CTL_STOP_WPS_FAIL\n"));\r
-                       if(pLed->bLedWPSBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedWPSBlinkInProgress = _FALSE;\r
-                       }                       \r
-\r
-                       pLed->CurrLedState = RTW_LED_OFF;\r
-                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                       _set_timer(&(pLed->BlinkTimer), 0);\r
-                       break;\r
-\r
-               case LED_CTL_NO_LINK:\r
-                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 LED_CTL_NO_LINK\n"));\r
-                       if(pLed->bLedWPSBlinkInProgress)\r
-                       {\r
-                               return; \r
-                       }\r
-\r
-                       /*if(Adapter->securitypriv.dot11PrivacyAlgrthm > _NO_PRIVACY_)\r
-                       {\r
-                               if(SecIsTxKeyInstalled(Adapter, pMgntInfo->Bssid))\r
-                               {\r
-                               }\r
-                               else\r
-                               {\r
-                                       if(pMgntInfo->LEDAssocState ==LED_ASSOC_SECURITY_BEGIN)\r
-                                               return; \r
-                               }\r
-                       }*/\r
-\r
-                       if( pLed->bLedBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       if( pLed->bLedScanBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedScanBlinkInProgress = _FALSE;\r
-                       }                       \r
-                       //if(!IS_LED_BLINKING(pLed))\r
-                       {\r
-                               pLed->CurrLedState = LED_BLINK_NO_LINK;\r
-                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                               _set_timer(&(pLed->BlinkTimer), 30);\r
-                       }\r
-                       break;\r
-\r
-               case LED_CTL_LINK: \r
-                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 LED_CTL_LINK\n"));\r
-\r
-                       if(pLed->bLedWPSBlinkInProgress)\r
-                       {\r
-                               return; \r
-                       }\r
-\r
-                       if( pLed->bLedBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-\r
-                       pLed->CurrLedState = LED_BLINK_LINK_IDEL;\r
-                       pLed->BlinkingLedState = RTW_LED_ON;\r
-\r
-                       _set_timer(&(pLed->BlinkTimer), 30);\r
-                       break;  \r
-\r
-               case LED_CTL_SITE_SURVEY        :\r
-                       if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)\r
-                               return;\r
-\r
-                       if(pLed->bLedWPSBlinkInProgress ==_TRUE)\r
-                               return;\r
-                       \r
-                       if( pLed->bLedBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }\r
-                       pLed->CurrLedState = LED_BLINK_SCAN;\r
-                       pLed->BlinkingLedState = RTW_LED_ON;                            \r
-                       _set_timer(&(pLed->BlinkTimer), 0);     \r
-                       break;\r
-\r
-               case LED_CTL_TX:\r
-               case LED_CTL_RX:\r
-                       if(pLed->bLedWPSBlinkInProgress)\r
-                       {\r
-                               return; \r
-                       }\r
-\r
-                       if( pLed->bLedBlinkInProgress)\r
-                       {\r
-                               _cancel_timer_ex(&(pLed->BlinkTimer));\r
-                               pLed->bLedBlinkInProgress = _FALSE;\r
-                       }                       \r
-\r
-                       pLed->bLedBlinkInProgress = _TRUE;\r
-                       pLed->CurrLedState = LED_BLINK_TXRX;\r
-                       pLed->BlinkTimes = 2;\r
-                       if( pLed->bLedOn )\r
-                               pLed->BlinkingLedState = RTW_LED_OFF; \r
-                       else\r
-                               pLed->BlinkingLedState = RTW_LED_ON; \r
-                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
-                       break;                  \r
-\r
-               default:\r
-                       break;\r
-       }\r
-}\r
-\r
-void\r
-LedControlUSB(\r
-       _adapter                                *padapter,\r
-       LED_CTL_MODE            LedAction\r
-       )\r
-{\r
-       struct led_priv *ledpriv = &(padapter->ledpriv);\r
-\r
-#if(MP_DRIVER == 1)\r
-       if (padapter->registrypriv.mp_mode == 1)\r
-               return;\r
-#endif\r
-\r
-       if( (padapter->bSurpriseRemoved == _TRUE) ||(padapter->hw_init_completed == _FALSE) )\r
-       {\r
-             return;\r
-       }\r
-\r
-       if( ledpriv->bRegUseLed == _FALSE)\r
-               return;\r
-\r
-       //if(priv->bInHctTest)\r
-       //      return;\r
-\r
-#ifdef CONFIG_CONCURRENT_MODE\r
-       // Only do led action for PRIMARY_ADAPTER\r
-       if (padapter->adapter_type != PRIMARY_ADAPTER)\r
-               return;\r
-#endif\r
-\r
-       if( (adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on &&\r
-               adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS) &&\r
-               (LedAction == LED_CTL_TX || LedAction == LED_CTL_RX ||\r
-                LedAction == LED_CTL_SITE_SURVEY ||\r
-                LedAction == LED_CTL_LINK ||\r
-                LedAction == LED_CTL_NO_LINK ||\r
-                LedAction == LED_CTL_POWER_ON) )\r
-       {\r
-               return;\r
-       }\r
-\r
-       switch(ledpriv->LedStrategy)\r
-       {\r
-               case SW_LED_MODE0:\r
-                       SwLedControlMode0(padapter, LedAction);\r
-                       break;\r
-\r
-               case SW_LED_MODE1:\r
-                       SwLedControlMode1(padapter, LedAction);\r
-                       break;\r
-\r
-               case SW_LED_MODE2:\r
-                       SwLedControlMode2(padapter, LedAction);\r
-                       break;\r
-\r
-               case SW_LED_MODE3:\r
-                       SwLedControlMode3(padapter, LedAction);\r
-                       break;\r
-\r
-               case SW_LED_MODE4:\r
-                       SwLedControlMode4(padapter, LedAction);\r
-                       break;\r
-\r
-               case SW_LED_MODE5:\r
-                       SwLedControlMode5(padapter, LedAction);\r
-                       break;\r
-\r
-               case SW_LED_MODE6:\r
-                       SwLedControlMode6(padapter, LedAction);\r
-                       break;\r
-\r
-               case SW_LED_MODE7:\r
-                       SwLedControlMode7(padapter, LedAction);\r
-                       break;\r
-\r
-               case SW_LED_MODE8:\r
-                       SwLedControlMode8(padapter, LedAction);\r
-                       break;\r
-\r
-               case SW_LED_MODE9:\r
-                       SwLedControlMode9(padapter, LedAction);\r
-                       break;\r
-\r
-               case SW_LED_MODE10:\r
-                       SwLedControlMode10(padapter, LedAction);\r
-                       break;\r
-\r
-               case SW_LED_MODE11:\r
-                       SwLedControlMode11(padapter, LedAction);\r
-                       break;\r
-\r
-               case SW_LED_MODE12:\r
-                       SwLedControlMode12(padapter, LedAction);\r
-                       break;\r
-\r
-               case SW_LED_MODE13:\r
-                       SwLedControlMode13(padapter, LedAction);\r
-                       break;\r
-\r
-               case SW_LED_MODE14:\r
-                       SwLedControlMode14(padapter, LedAction);\r
-                       break;\r
-\r
-               case SW_LED_MODE15:\r
-                       SwLedControlMode15(padapter, LedAction);\r
-                       break;\r
-\r
-               default:\r
-                       break;\r
-       }\r
-\r
-       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("LedStrategy:%d, LedAction %d\n", ledpriv->LedStrategy,LedAction));\r
-}\r
-\r
-//\r
-//     Description:\r
-//             Reset status of LED_871x object.\r
-//\r
-void ResetLedStatus(PLED_USB pLed) {\r
-\r
-       pLed->CurrLedState = RTW_LED_OFF; // Current LED state.\r
-       pLed->bLedOn = _FALSE; // true if LED is ON, false if LED is OFF.\r
-\r
-       pLed->bLedBlinkInProgress = _FALSE; // true if it is blinking, false o.w..\r
-       pLed->bLedWPSBlinkInProgress = _FALSE;\r
-       \r
-       pLed->BlinkTimes = 0; // Number of times to toggle led state for blinking.\r
-       pLed->BlinkCounter = 0;\r
-       pLed->BlinkingLedState = LED_UNKNOWN; // Next state for blinking, either RTW_LED_ON or RTW_LED_OFF are.\r
-\r
-       pLed->bLedNoLinkBlinkInProgress = _FALSE;\r
-       pLed->bLedLinkBlinkInProgress = _FALSE;\r
-       pLed->bLedStartToLinkBlinkInProgress = _FALSE;\r
-       pLed->bLedScanBlinkInProgress = _FALSE;\r
-}\r
-\r
- //\r
-//     Description:\r
-//             Initialize an LED_871x object.\r
-//\r
-void\r
-InitLed(\r
-       _adapter                        *padapter,\r
-       PLED_USB                pLed,\r
-       LED_PIN                 LedPin\r
-       )\r
-{\r
-       pLed->padapter = padapter;\r
-       pLed->LedPin = LedPin;\r
-\r
-       ResetLedStatus(pLed);\r
-\r
-       _init_timer(&(pLed->BlinkTimer), padapter->pnetdev, BlinkTimerCallback, pLed);\r
-\r
-       _init_workitem(&(pLed->BlinkWorkItem), BlinkWorkItemCallback, pLed);\r
-}\r
-\r
-\r
-//\r
-//     Description:\r
-//             DeInitialize an LED_871x object.\r
-//\r
-void\r
-DeInitLed(\r
-       PLED_USB                pLed\r
-       )\r
-{\r
-       _cancel_workitem_sync(&(pLed->BlinkWorkItem));\r
-       _cancel_timer_ex(&(pLed->BlinkTimer));\r
-       ResetLedStatus(pLed);\r
-}\r
-\r
-\r
+/******************************************************************************
+ *
+ * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
+ *                                        
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ *
+ ******************************************************************************/
+
+#include <drv_types.h>
+#include <hal_data.h>
+
+//
+//     Description:
+//             Implementation of LED blinking behavior.
+//             It toggle off LED and schedule corresponding timer if necessary.
+//
+void
+SwLedBlink(
+       PLED_USB                        pLed
+       )
+{
+       _adapter                        *padapter = pLed->padapter;
+       struct mlme_priv        *pmlmepriv = &(padapter->mlmepriv);
+       u8                              bStopBlinking = _FALSE;
+
+       // Change LED according to BlinkingLedState specified.
+       if( pLed->BlinkingLedState == RTW_LED_ON )
+       {
+               SwLedOn(padapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
+       }
+       else
+       {
+               SwLedOff(padapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,( "Blinktimes (%d): turn off\n", pLed->BlinkTimes));
+       }
+
+       // Determine if we shall change LED state again.
+       pLed->BlinkTimes--;
+       switch(pLed->CurrLedState)
+       {
+
+       case LED_BLINK_NORMAL:
+               if(pLed->BlinkTimes == 0)
+               {
+                       bStopBlinking = _TRUE;
+               }
+               break;
+
+       case LED_BLINK_StartToBlink:
+               if( check_fwstate(pmlmepriv, _FW_LINKED) && check_fwstate(pmlmepriv, WIFI_STATION_STATE) )
+               {
+                       bStopBlinking = _TRUE;
+               }
+               if( check_fwstate(pmlmepriv, _FW_LINKED) &&
+                       (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) || check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)) )
+               {
+                       bStopBlinking = _TRUE;
+               }
+               else if(pLed->BlinkTimes == 0)
+               {
+                       bStopBlinking = _TRUE;
+               }
+               break;
+
+       case LED_BLINK_WPS:
+               if( pLed->BlinkTimes == 0 )
+               {
+                       bStopBlinking = _TRUE;
+               }
+               break;
+
+
+       default:
+               bStopBlinking = _TRUE;
+               break;
+
+       }
+
+       if(bStopBlinking)
+       {
+               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
+               {
+                       SwLedOff(padapter, pLed);
+               }
+               else if( (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE) && (pLed->bLedOn == _FALSE))
+               {
+                       SwLedOn(padapter, pLed);
+               }
+               else if( (check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE) &&  pLed->bLedOn == _TRUE)
+               {
+                       SwLedOff(padapter, pLed);
+               }
+
+               pLed->BlinkTimes = 0;
+               pLed->bLedBlinkInProgress = _FALSE;
+       }
+       else
+       {
+               // Assign LED state to toggle.
+               if( pLed->BlinkingLedState == RTW_LED_ON )
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+               else
+                       pLed->BlinkingLedState = RTW_LED_ON;
+
+               // Schedule a timer to toggle LED state.
+               switch( pLed->CurrLedState )
+               {
+               case LED_BLINK_NORMAL:
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
+                       break;
+
+               case LED_BLINK_SLOWLY:
+               case LED_BLINK_StartToBlink:
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
+                       break;
+
+               case LED_BLINK_WPS:
+                       {
+                               if( pLed->BlinkingLedState == RTW_LED_ON )
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LONG_INTERVAL);
+                               else
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LONG_INTERVAL);
+                       }
+                       break;
+
+               default:
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
+                       break;
+               }
+       }
+}
+
+void
+SwLedBlink1(
+       PLED_USB                        pLed
+       )
+{
+       _adapter                                *padapter = pLed->padapter;
+       PHAL_DATA_TYPE          pHalData = GET_HAL_DATA(padapter);
+       struct led_priv         *ledpriv = &(padapter->ledpriv);
+       struct mlme_priv                *pmlmepriv = &(padapter->mlmepriv);
+       PLED_USB                        pLed1 = &(ledpriv->SwLed1);
+       u8                                      bStopBlinking = _FALSE;
+
+       u32 uLedBlinkNoLinkInterval = LED_BLINK_NO_LINK_INTERVAL_ALPHA; //add by ylb 20121012 for customer led for alpha
+       if(pHalData->CustomerID == RT_CID_819x_ALPHA_Dlink)
+               uLedBlinkNoLinkInterval= LED_BLINK_NO_LINK_INTERVAL_ALPHA_500MS;
+       
+       if(pHalData->CustomerID == RT_CID_819x_CAMEO)
+               pLed = &(ledpriv->SwLed1);
+
+       // Change LED according to BlinkingLedState specified.
+       if( pLed->BlinkingLedState == RTW_LED_ON )
+       {
+               SwLedOn(padapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,( "Blinktimes (%d): turn on\n", pLed->BlinkTimes));
+       }
+       else
+       {
+               SwLedOff(padapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
+       }
+
+
+       if(pHalData->CustomerID == RT_CID_DEFAULT)
+       {
+               if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
+               {
+                       if(!pLed1->bSWLedCtrl)
+                       {
+                               SwLedOn(padapter, pLed1);
+                               pLed1->bSWLedCtrl = _TRUE;
+                       }
+                       else if(!pLed1->bLedOn)
+                               SwLedOn(padapter, pLed1);
+                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (): turn on pLed1\n"));
+               }
+               else
+               {
+                       if(!pLed1->bSWLedCtrl)
+                       {
+                               SwLedOff(padapter, pLed1);
+                               pLed1->bSWLedCtrl = _TRUE;
+                       }
+                       else if(pLed1->bLedOn)
+                               SwLedOff(padapter, pLed1);
+                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (): turn off pLed1\n"));
+               }
+       }
+
+       switch(pLed->CurrLedState)
+       {
+               case LED_BLINK_SLOWLY:
+                       if( pLed->bLedOn )
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                       else
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                       _set_timer(&(pLed->BlinkTimer), uLedBlinkNoLinkInterval);//change by ylb 20121012 for customer led for alpha
+                       break;
+
+               case LED_BLINK_NORMAL:
+                       if( pLed->bLedOn )
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                       else
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
+                       break;
+
+               case LED_BLINK_SCAN:
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
+                               {
+                                       SwLedOff(padapter, pLed);
+                               }
+                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
+                               {
+                                       pLed->bLedLinkBlinkInProgress = _TRUE;
+                                       pLed->CurrLedState = LED_BLINK_NORMAL;
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
+
+                               }
+                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)
+                               {
+                                       pLed->bLedNoLinkBlinkInProgress = _TRUE;
+                                       pLed->CurrLedState = LED_BLINK_SLOWLY;
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), uLedBlinkNoLinkInterval);
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
+                               }
+                               pLed->bLedScanBlinkInProgress = _FALSE;
+                       }
+                       else
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
+                               {
+                                       SwLedOff(padapter, pLed);
+                               }
+                               else
+                               {
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
+                               }
+                       }
+                       break;
+
+               case LED_BLINK_TXRX:
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
+                               {
+                                       SwLedOff(padapter, pLed);
+                               }
+                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
+                               {
+                                       pLed->bLedLinkBlinkInProgress = _TRUE;
+                                       pLed->CurrLedState = LED_BLINK_NORMAL;
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
+                               }
+                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)
+                               {
+                                       pLed->bLedNoLinkBlinkInProgress = _TRUE;
+                                       pLed->CurrLedState = LED_BLINK_SLOWLY;
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), uLedBlinkNoLinkInterval);
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
+                               }
+                               pLed->BlinkTimes = 0;
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       else
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
+                               {
+                                       SwLedOff(padapter, pLed);
+                               }
+                               else
+                               {
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                               }
+                       }
+                       break;
+
+               case LED_BLINK_WPS:
+                       if( pLed->bLedOn )
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                       else
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
+                       break;
+
+               case LED_BLINK_WPS_STOP:        //WPS success
+                       if(pLed->BlinkingLedState == RTW_LED_ON)
+                       {
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_WPS_SUCESS_INTERVAL_ALPHA);
+                               bStopBlinking = _FALSE;
+                       }
+                       else
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
+                               {
+                                       SwLedOff(padapter, pLed);
+                               }
+                               else
+                               {
+                                       pLed->bLedLinkBlinkInProgress = _TRUE;
+                                       pLed->CurrLedState = LED_BLINK_NORMAL;
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
+                               }
+                               pLed->bLedWPSBlinkInProgress = _FALSE;
+                       }
+                       break;
+
+               default:
+                       break;
+       }
+
+}
+
+void
+SwLedBlink2(
+       PLED_USB                        pLed
+       )
+{
+       _adapter                                *padapter = pLed->padapter;
+       struct mlme_priv                *pmlmepriv = &(padapter->mlmepriv);
+       u8                                      bStopBlinking = _FALSE;
+
+       // Change LED according to BlinkingLedState specified.
+       if( pLed->BlinkingLedState == RTW_LED_ON)
+       {
+               SwLedOn(padapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
+       }
+       else
+       {
+               SwLedOff(padapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
+       }
+
+       switch(pLed->CurrLedState)
+       {
+               case LED_BLINK_SCAN:
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
+                               {
+                                       SwLedOff(padapter, pLed);
+                               }
+                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
+                               {
+                                       pLed->CurrLedState = RTW_LED_ON;
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                                       SwLedOn(padapter, pLed);
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("stop scan blink CurrLedState %d\n", pLed->CurrLedState));
+
+                               }
+                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)
+                               {
+                                       pLed->CurrLedState = RTW_LED_OFF;
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                                       SwLedOff(padapter, pLed);
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("stop scan blink CurrLedState %d\n", pLed->CurrLedState));
+                               }
+                               pLed->bLedScanBlinkInProgress = _FALSE;
+                       }
+                       else
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
+                               {
+                                       SwLedOff(padapter, pLed);
+                               }
+                               else
+                               {
+                                        if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
+                               }
+                       }
+                       break;
+
+               case LED_BLINK_TXRX:
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
+                               {
+                                       SwLedOff(padapter, pLed);
+                               }
+                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
+                               {
+                                       pLed->CurrLedState = RTW_LED_ON;
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                                       SwLedOn(padapter, pLed);
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("stop CurrLedState %d\n", pLed->CurrLedState));
+
+                               }
+                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)
+                               {
+                                       pLed->CurrLedState = RTW_LED_OFF;
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                                       SwLedOff(padapter, pLed);
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("stop CurrLedState %d\n", pLed->CurrLedState));
+                               }
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       else
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
+                               {
+                                       SwLedOff(padapter, pLed);
+                               }
+                               else
+                               {
+                                        if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                               }
+                       }
+                       break;
+
+               default:
+                       break;
+       }
+
+}
+
+void
+SwLedBlink3(
+       PLED_USB                        pLed
+       )
+{
+       _adapter                        *padapter = pLed->padapter;
+       struct mlme_priv        *pmlmepriv = &(padapter->mlmepriv);
+       u8                              bStopBlinking = _FALSE;
+
+       // Change LED according to BlinkingLedState specified.
+       if( pLed->BlinkingLedState == RTW_LED_ON )
+       {
+               SwLedOn(padapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
+       }
+       else
+       {
+               if(pLed->CurrLedState != LED_BLINK_WPS_STOP)
+                       SwLedOff(padapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
+       }
+
+       switch(pLed->CurrLedState)
+       {
+               case LED_BLINK_SCAN:
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
+                               {
+                                       SwLedOff(padapter, pLed);
+                               }
+                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
+                               {
+                                       pLed->CurrLedState = RTW_LED_ON;
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                                       if( !pLed->bLedOn )
+                                               SwLedOn(padapter, pLed);
+
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
+                               }
+                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)
+                               {
+                                       pLed->CurrLedState = RTW_LED_OFF;
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                                       if( pLed->bLedOn )
+                                               SwLedOff(padapter, pLed);
+
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
+                               }
+                               pLed->bLedScanBlinkInProgress = _FALSE;
+                       }
+                       else
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
+                               {
+                                       SwLedOff(padapter, pLed);
+                               }
+                               else
+                               {
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
+                               }
+                       }
+                       break;
+
+               case LED_BLINK_TXRX:
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
+                               {
+                                       SwLedOff(padapter, pLed);
+                               }
+                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
+                               {
+                                       pLed->CurrLedState = RTW_LED_ON;
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+
+                                       if( !pLed->bLedOn )
+                                               SwLedOn(padapter, pLed);
+
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
+                               }
+                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)
+                               {
+                                       pLed->CurrLedState = RTW_LED_OFF;
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+
+                                       if( pLed->bLedOn )
+                                               SwLedOff(padapter, pLed);
+
+
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
+                               }
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       else
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
+                               {
+                                       SwLedOff(padapter, pLed);
+                               }
+                               else
+                               {
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                               }
+                       }
+                       break;
+
+               case LED_BLINK_WPS:
+                       if( pLed->bLedOn )
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                       else
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
+                       break;
+
+               case LED_BLINK_WPS_STOP:        //WPS success
+                       if(pLed->BlinkingLedState == RTW_LED_ON)
+                       {
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_WPS_SUCESS_INTERVAL_ALPHA);
+                               bStopBlinking = _FALSE;
+                       }
+                       else
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
+                               {
+                                       SwLedOff(padapter, pLed);
+                               }
+                               else
+                               {
+                                       pLed->CurrLedState = RTW_LED_ON;
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                                       SwLedOn(padapter, pLed);
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
+                               }
+                               pLed->bLedWPSBlinkInProgress = _FALSE;
+                       }
+                       break;
+
+
+               default:
+                       break;
+       }
+
+}
+
+
+void
+SwLedBlink4(
+       PLED_USB                        pLed
+       )
+{
+       _adapter                        *padapter = pLed->padapter;
+       struct led_priv *ledpriv = &(padapter->ledpriv);
+       struct mlme_priv        *pmlmepriv = &(padapter->mlmepriv);
+       PLED_USB                pLed1 = &(ledpriv->SwLed1);
+       u8                              bStopBlinking = _FALSE;
+
+       // Change LED according to BlinkingLedState specified.
+       if( pLed->BlinkingLedState == RTW_LED_ON )
+       {
+               SwLedOn(padapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
+       }
+       else
+       {
+               SwLedOff(padapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
+       }
+
+       if(!pLed1->bLedWPSBlinkInProgress && pLed1->BlinkingLedState == LED_UNKNOWN)
+       {
+               pLed1->BlinkingLedState = RTW_LED_OFF;
+               pLed1->CurrLedState = RTW_LED_OFF;
+               SwLedOff(padapter, pLed1);
+       }
+
+       switch(pLed->CurrLedState)
+       {
+               case LED_BLINK_SLOWLY:
+                       if( pLed->bLedOn )
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                       else
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
+                       break;
+
+               case LED_BLINK_StartToBlink:
+                       if( pLed->bLedOn )
+                       {
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
+                       }
+                       else
+                       {
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
+                       }
+                       break;
+
+               case LED_BLINK_SCAN:
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _FALSE;
+                       }
+
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       SwLedOff(padapter, pLed);
+                               }
+                               else
+                               {
+                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;
+                                       pLed->CurrLedState = LED_BLINK_SLOWLY;
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
+                               }
+                               pLed->bLedScanBlinkInProgress = _FALSE;
+                       }
+                       else
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       SwLedOff(padapter, pLed);
+                               }
+                               else
+                               {
+                                        if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
+                               }
+                       }
+                       break;
+
+               case LED_BLINK_TXRX:
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       SwLedOff(padapter, pLed);
+                               }
+                               else
+                               {
+                                       pLed->bLedNoLinkBlinkInProgress = _TRUE;
+                                       pLed->CurrLedState = LED_BLINK_SLOWLY;
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
+                               }
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       else
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       SwLedOff(padapter, pLed);
+                               }
+                               else
+                               {
+                                       
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                               }
+                       }
+                       break;
+
+               case LED_BLINK_WPS:
+                       if( pLed->bLedOn )
+                       {
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
+                       }
+                       else
+                       {
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
+                       }
+                       break;
+
+               case LED_BLINK_WPS_STOP:        //WPS authentication fail
+                       if( pLed->bLedOn )
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                       else
+                               pLed->BlinkingLedState = RTW_LED_ON;
+
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
+                       break;
+
+               case LED_BLINK_WPS_STOP_OVERLAP:        //WPS session overlap
+                       pLed->BlinkTimes--;
+                       if(pLed->BlinkTimes == 0)
+                       {
+                               if(pLed->bLedOn)
+                               {
+                                       pLed->BlinkTimes = 1;
+                               }
+                               else
+                               {
+                                       bStopBlinking = _TRUE;
+                               }
+                       }
+
+                       if(bStopBlinking)
+                       {
+                               pLed->BlinkTimes = 10;
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
+                       }
+                       else
+                       {
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
+                       }
+                       break;
+
+               case LED_BLINK_ALWAYS_ON:
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       SwLedOff(padapter, pLed);
+                               }
+                               else
+                               {
+                                       pLed->bLedNoLinkBlinkInProgress = _TRUE;
+                                       pLed->CurrLedState = LED_BLINK_SLOWLY;
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
+                               }
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       else
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("RFOff Status \n"));
+                                       SwLedOff(padapter, pLed);
+                               }
+                               else
+                               {
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                               }
+                       }
+                       break;
+
+               default:
+                       break;
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink4 CurrLedState %d\n", pLed->CurrLedState));
+
+
+}
+
+void
+SwLedBlink5(
+       PLED_USB                        pLed
+       )
+{
+       _adapter                        *padapter = pLed->padapter;
+       struct mlme_priv        *pmlmepriv = &(padapter->mlmepriv);
+       u8                              bStopBlinking = _FALSE;
+
+       // Change LED according to BlinkingLedState specified.
+       if( pLed->BlinkingLedState == RTW_LED_ON )
+       {
+               SwLedOn(padapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
+       }
+       else
+       {
+               SwLedOff(padapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
+       }
+
+       switch(pLed->CurrLedState)
+       {
+               case LED_BLINK_SCAN:
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       pLed->CurrLedState = RTW_LED_OFF;
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                                       if(pLed->bLedOn)
+                                               SwLedOff(padapter, pLed);
+                               }
+                               else
+                               {               pLed->CurrLedState = RTW_LED_ON;
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                               if(!pLed->bLedOn)
+                                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                               }
+
+                               pLed->bLedScanBlinkInProgress = _FALSE;
+                       }
+                       else
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       SwLedOff(padapter, pLed);
+                               }
+                               else
+                               {
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
+                               }
+                       }
+                       break;
+
+
+               case LED_BLINK_TXRX:
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       pLed->CurrLedState = RTW_LED_OFF;
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                                       if(pLed->bLedOn)
+                                               SwLedOff(padapter, pLed);
+                               }
+                               else
+                               {
+                                       pLed->CurrLedState = RTW_LED_ON;
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                                       if(!pLed->bLedOn)
+                                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                               }
+
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       else
+                       {
+                               if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       SwLedOff(padapter, pLed);
+                               }
+                               else
+                               {
+                                        if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                               }
+                       }
+                       break;
+
+               default:
+                       break;
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink5 CurrLedState %d\n", pLed->CurrLedState));
+
+
+}
+
+void
+SwLedBlink6(
+       PLED_USB                        pLed
+       )
+{
+       _adapter                        *padapter = pLed->padapter;
+       struct mlme_priv        *pmlmepriv = &(padapter->mlmepriv);
+       u8                              bStopBlinking = _FALSE;
+
+       // Change LED according to BlinkingLedState specified.
+       if( pLed->BlinkingLedState == RTW_LED_ON )
+       {
+               SwLedOn(padapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
+       }
+       else
+       {
+               SwLedOff(padapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink6\n"));
+}
+
+void
+SwLedBlink7(
+       PLED_USB                        pLed
+       )
+{
+       PADAPTER Adapter = pLed->padapter;
+       struct mlme_priv        *pmlmepriv = &(Adapter->mlmepriv);
+       BOOLEAN bStopBlinking = _FALSE;
+
+       // Change LED according to BlinkingLedState specified.
+       if( pLed->BlinkingLedState == RTW_LED_ON )
+       {
+               SwLedOn(Adapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
+       }
+       else
+       {
+               if(pLed->CurrLedState != LED_BLINK_WPS_STOP)
+                       SwLedOff(Adapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
+       }
+
+       switch(pLed->CurrLedState)
+       {
+               case LED_BLINK_SCAN:
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on )
+                               {
+                                       SwLedOff(Adapter, pLed);
+                               }
+                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
+                               {
+                                       pLed->CurrLedState = RTW_LED_ON;
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                                       if( !pLed->bLedOn )
+                                               SwLedOn(Adapter, pLed);
+
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
+                               }
+                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)
+                               {
+                                       pLed->CurrLedState = RTW_LED_OFF;
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                                       if( pLed->bLedOn )
+                                               SwLedOff(Adapter, pLed);
+
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));                                  
+                               }
+                               pLed->bLedScanBlinkInProgress = _FALSE;
+                       }
+                       else
+                       {
+                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on )
+                               {
+                                       SwLedOff(Adapter, pLed);
+                               }
+                               else
+                               {
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
+                               }
+                       }
+                       break;
+
+               case LED_BLINK_WPS:
+                       if( pLed->bLedOn )
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                       else
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
+                       break;
+
+               case LED_BLINK_WPS_STOP:        //WPS success
+                       if(pLed->BlinkingLedState == RTW_LED_ON)
+                       {
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
+                               bStopBlinking = _FALSE;
+                       }
+                       else
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on )
+                               {
+                                       SwLedOff(Adapter, pLed);
+                               }
+                               else
+                               {
+                                       pLed->CurrLedState = RTW_LED_ON;
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                                       SwLedOn(Adapter, pLed);
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
+                               }
+                               pLed->bLedWPSBlinkInProgress = _FALSE;
+                       }
+                       break;
+
+
+               default:
+                       break;
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink7\n"));
+
+}
+
+void
+SwLedBlink8(
+       PLED_USB                        pLed
+       )
+{
+       PADAPTER Adapter = pLed->padapter;
+
+       // Change LED according to BlinkingLedState specified.
+       if( pLed->BlinkingLedState == RTW_LED_ON )
+       {
+               SwLedOn(Adapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes blink8(%d): turn on\n", pLed->BlinkTimes));
+       }
+       else
+       {
+               SwLedOff(Adapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes blink8(%d): turn off\n", pLed->BlinkTimes));
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink8\n"));
+
+}
+
+//page added for Belkin AC950. 20120813
+void
+SwLedBlink9(
+       PLED_USB                        pLed
+       )
+{
+       PADAPTER Adapter = pLed->padapter; 
+       struct mlme_priv        *pmlmepriv = &(Adapter->mlmepriv);
+       BOOLEAN bStopBlinking = _FALSE;
+
+       // Change LED according to BlinkingLedState specified.
+       if( pLed->BlinkingLedState == RTW_LED_ON ) 
+       {
+               SwLedOn(Adapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
+       }
+       else 
+       {
+               SwLedOff(Adapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
+       }       
+       //DBG_871X("%s, pLed->CurrLedState=%d, pLed->BlinkingLedState=%d \n", __FUNCTION__, pLed->CurrLedState, pLed->BlinkingLedState);
+
+
+       switch(pLed->CurrLedState)
+       {
+               case RTW_LED_ON:
+                       SwLedOn(Adapter, pLed);
+                       break;
+                       
+               case RTW_LED_OFF:
+                       SwLedOff(Adapter, pLed);
+                       break;
+                       
+               case LED_BLINK_SLOWLY:                  
+                       if( pLed->bLedOn )
+                               pLed->BlinkingLedState = RTW_LED_OFF; 
+                       else
+                               pLed->BlinkingLedState = RTW_LED_ON; 
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
+                       break;
+
+               case LED_BLINK_StartToBlink:
+                       if( pLed->bLedOn )
+                       {
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);             
+                       }
+                       else
+                       {
+                               pLed->BlinkingLedState = RTW_LED_ON; 
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
+                       }
+                       break;                  
+                       
+               case LED_BLINK_SCAN:
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+                       
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on )
+                               {
+                                       SwLedOff(Adapter, pLed);
+                               }
+                               else if(check_fwstate(pmlmepriv, _FW_LINKED) == _TRUE)
+                               {
+                                       pLed->bLedLinkBlinkInProgress = _TRUE;
+                                       pLed->CurrLedState = LED_BLINK_SLOWLY;
+                                       
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));                                  
+                               }
+                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)
+                               {
+                                       pLed->bLedNoLinkBlinkInProgress = _TRUE;
+                                       pLed->CurrLedState = LED_BLINK_SLOWLY;
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF; 
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON; 
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));                                  
+                               }
+                               pLed->BlinkTimes = 0;
+                               pLed->bLedBlinkInProgress = _FALSE;     
+                       }
+                       else
+                       {
+                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       SwLedOff(Adapter, pLed);
+                               }
+                               else
+                               {
+                                        if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF; 
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON; 
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
+                               }
+                       }
+                       break;
+
+               case LED_BLINK_TXRX:
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       SwLedOff(Adapter, pLed);
+                               }
+                               else 
+                               {
+                                       pLed->CurrLedState = LED_BLINK_SLOWLY;
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF; 
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON; 
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                               }
+                               pLed->bLedBlinkInProgress = _FALSE;     
+                       }
+                       else
+                       {
+                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       SwLedOff(Adapter, pLed);
+                               }
+                               else
+                               {
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF; 
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON; 
+                                       
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                               }
+                       }
+                       break;
+
+               case LED_BLINK_WPS:
+                       if( pLed->bLedOn )
+                       {
+                               pLed->BlinkingLedState = RTW_LED_OFF; 
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
+                       }
+                       else
+                       {
+                               pLed->BlinkingLedState = RTW_LED_ON; 
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
+                       }
+                       break;
+
+               case LED_BLINK_WPS_STOP:        //WPS authentication fail
+                       if( pLed->bLedOn )                      
+                               pLed->BlinkingLedState = RTW_LED_OFF;                   
+                       else                    
+                               pLed->BlinkingLedState = RTW_LED_ON; 
+                       
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
+                       break;
+
+               case LED_BLINK_WPS_STOP_OVERLAP:        //WPS session overlap           
+                       pLed->BlinkTimes--;
+                       pLed->BlinkCounter --;
+                       if(pLed->BlinkCounter == 0)
+                       {
+                               pLed->BlinkingLedState = RTW_LED_OFF; 
+                               pLed->CurrLedState = RTW_LED_OFF;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
+                       }
+                       else
+                       {
+                               if(pLed->BlinkTimes == 0)
+                               {
+                                       if(pLed->bLedOn)
+                                       {
+                                               pLed->BlinkTimes = 1;                                                   
+                                       }
+                                       else
+                                       {
+                                               bStopBlinking = _TRUE;
+                                       }
+                               }
+
+                               if(bStopBlinking)
+                               {                               
+                                       pLed->BlinkTimes = 10;                  
+                                       pLed->BlinkingLedState = RTW_LED_ON;                                                    
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);                                                         
+                               }
+                               else
+                               {
+                                       if( pLed->bLedOn )                      
+                                               pLed->BlinkingLedState = RTW_LED_OFF;                   
+                                       else                    
+                                               pLed->BlinkingLedState = RTW_LED_ON; 
+                                       
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);                                             
+                               }
+                       }
+                       break;
+                       
+               case LED_BLINK_ALWAYS_ON:
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       SwLedOff(Adapter, pLed);
+                               }
+                               else 
+                               {
+                                       if(IS_HARDWARE_TYPE_8812AU(Adapter))
+                                       {
+                                               pLed->BlinkingLedState = RTW_LED_ON; 
+                                               pLed->CurrLedState = LED_BLINK_ALWAYS_ON;
+                                       }
+                                       else
+                                       {
+                                               pLed->bLedNoLinkBlinkInProgress = _TRUE;
+                                               pLed->CurrLedState = LED_BLINK_SLOWLY;
+                                               if( pLed->bLedOn )
+                                                       pLed->BlinkingLedState = RTW_LED_OFF; 
+                                               else
+                                                       pLed->BlinkingLedState = RTW_LED_ON; 
+                                       }
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
+                               }
+                               pLed->bLedBlinkInProgress = _FALSE;     
+                       }
+                       else
+                       {
+                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("RFOff Status \n"));
+                                       SwLedOff(Adapter, pLed);
+                               }
+                               else
+                               {
+                                       if(IS_HARDWARE_TYPE_8812AU(Adapter))
+                                       {
+                                               pLed->BlinkingLedState = RTW_LED_ON; 
+                                       }
+                                       else
+                                       {
+                                               if( pLed->bLedOn )
+                                                       pLed->BlinkingLedState = RTW_LED_OFF; 
+                                               else
+                                                       pLed->BlinkingLedState = RTW_LED_ON; 
+                                       }
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                               }
+                       }
+                       break;
+
+               case LED_BLINK_LINK_IN_PROCESS:
+                       if( pLed->bLedOn )
+                       {
+                               pLed->BlinkingLedState = RTW_LED_OFF; 
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ON_BELKIN);
+                       }
+                       else
+                       {
+                               pLed->BlinkingLedState = RTW_LED_ON; 
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_OFF_BELKIN);
+                       }
+                       break;
+
+               case LED_BLINK_AUTH_ERROR:
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+                       if(bStopBlinking == _FALSE)
+                       {
+                               if( pLed->bLedOn )
+                               {
+                                       pLed->BlinkingLedState = RTW_LED_OFF; 
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);
+                               }
+                               else
+                               {
+                                       pLed->BlinkingLedState = RTW_LED_ON; 
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);
+                               }
+                       }
+                       else
+                       {
+                               pLed->CurrLedState = RTW_LED_OFF;
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);
+                       }
+                       break;
+
+               default:
+                       break;
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink9 CurrLedState %d\n", pLed->CurrLedState));                                      
+}
+
+//page added for Netgear A6200V2. 20120827
+void
+SwLedBlink10(
+       PLED_USB                        pLed
+       )
+{
+       PADAPTER Adapter = pLed->padapter;
+       struct mlme_priv        *pmlmepriv = &(Adapter->mlmepriv);
+       BOOLEAN bStopBlinking = _FALSE;
+
+       // Change LED according to BlinkingLedState specified.
+       if( pLed->BlinkingLedState == RTW_LED_ON )
+       {
+               SwLedOn(Adapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
+       }
+       else
+       {
+               SwLedOff(Adapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
+       }
+
+
+       switch(pLed->CurrLedState)
+       {
+               case RTW_LED_ON:
+                       SwLedOn(Adapter, pLed);
+                       break;
+
+               case RTW_LED_OFF:
+                       SwLedOff(Adapter, pLed);
+                       break;
+
+               case LED_BLINK_SLOWLY:                  
+                       if( pLed->bLedOn )
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                       else
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
+                       break;
+
+               case LED_BLINK_StartToBlink:
+                       if( pLed->bLedOn )
+                       {
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
+                       }
+                       else
+                       {
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
+                       }
+                       break;
+
+               case LED_BLINK_SCAN:
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on )
+                               {
+                                       SwLedOff(Adapter, pLed);
+                               }
+                               else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
+                               {
+                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;
+                                       pLed->CurrLedState = RTW_LED_OFF;
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
+                               }
+                               pLed->BlinkTimes = 0;
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       else
+                       {
+                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       SwLedOff(Adapter, pLed);
+                               }
+                               else
+                               {
+                                       if( pLed->bLedOn )
+                                       {
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
+                                       }
+                                       else
+                                       {
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_SLOWLY_INTERVAL_NETGEAR+LED_BLINK_LINK_INTERVAL_NETGEAR);
+                                       }
+                               }
+                       }
+                       break;
+
+               case LED_BLINK_WPS:
+                       if( pLed->bLedOn )
+                       {
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
+                       }
+                       else
+                       {
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL+LED_BLINK_LINK_INTERVAL_NETGEAR);
+                       }
+                       break;
+
+               case LED_BLINK_WPS_STOP:        //WPS authentication fail
+                       if( pLed->bLedOn )
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                       else    
+                               pLed->BlinkingLedState = RTW_LED_ON;
+
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
+                       break;
+
+               case LED_BLINK_WPS_STOP_OVERLAP:        //WPS session overlap
+                       pLed->BlinkTimes--;
+                       pLed->BlinkCounter --;
+                       if(pLed->BlinkCounter == 0)
+                       {
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                               pLed->CurrLedState = RTW_LED_OFF;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
+                       }
+                       else
+                       {
+                               if(pLed->BlinkTimes == 0)
+                               {
+                                       if(pLed->bLedOn)
+                                       {
+                                               pLed->BlinkTimes = 1;
+                                       }
+                                       else
+                                       {
+                                               bStopBlinking = _TRUE;
+                                       }
+                               }
+
+                               if(bStopBlinking)
+                               {
+                                       pLed->BlinkTimes = 10;
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
+                               }
+                               else
+                               {
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else    
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
+                               }
+                       }
+                       break;
+
+               case LED_BLINK_ALWAYS_ON:
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       SwLedOff(Adapter, pLed);
+                               }
+                               else
+                               {
+                                       if(IS_HARDWARE_TYPE_8812AU(Adapter))
+                                       {
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                               pLed->CurrLedState = LED_BLINK_ALWAYS_ON;
+                                       }
+                                       else
+                                       {
+                                               pLed->bLedNoLinkBlinkInProgress = _TRUE;
+                                               pLed->CurrLedState = LED_BLINK_SLOWLY;
+                                               if( pLed->bLedOn )
+                                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                                               else
+                                                       pLed->BlinkingLedState = RTW_LED_ON;
+                                       }
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
+                               }
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       else
+                       {
+                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("RFOff Status \n"));
+                                       SwLedOff(Adapter, pLed);
+                               }
+                               else
+                               {
+                                       if(IS_HARDWARE_TYPE_8812AU(Adapter))
+                                       {
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       }
+                                       else
+                                       {
+                                               if( pLed->bLedOn )
+                                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                                               else
+                                                       pLed->BlinkingLedState = RTW_LED_ON;
+                                       }
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                               }
+                       }
+                       break;
+
+               case LED_BLINK_LINK_IN_PROCESS:
+                       if( pLed->bLedOn )
+                       {
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ON_BELKIN);
+                       }
+                       else
+                       {
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_OFF_BELKIN);
+                       }
+                       break;
+
+               case LED_BLINK_AUTH_ERROR:
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+                       if(bStopBlinking == _FALSE)
+                       {
+                               if( pLed->bLedOn )
+                               {
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);
+                               }
+                               else
+                               {
+                                       pLed->BlinkingLedState = RTW_LED_ON; 
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);
+                               }
+                       }
+                       else
+                       {
+                               pLed->CurrLedState = RTW_LED_OFF;
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);
+                       }
+                       break;
+
+               default:
+                       break;
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink10 CurrLedState %d\n", pLed->CurrLedState));
+
+}
+
+void
+SwLedBlink11(
+       PLED_USB                        pLed
+       )
+{
+       PADAPTER Adapter = pLed->padapter;
+       struct mlme_priv        *pmlmepriv = &(Adapter->mlmepriv);
+       BOOLEAN bStopBlinking = _FALSE;
+
+       // Change LED according to BlinkingLedState specified.
+       if( pLed->BlinkingLedState == RTW_LED_ON )
+       {
+               SwLedOn(Adapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
+       }
+       else
+       {
+               SwLedOff(Adapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
+       }
+
+       switch(pLed->CurrLedState)
+       {
+               case LED_BLINK_TXRX:
+                       if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                       {
+                               SwLedOff(Adapter, pLed);
+                       }
+                       else
+                       {
+                                if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
+                       }
+
+                       break;
+
+               case LED_BLINK_WPS:
+                       if(pLed->BlinkTimes == 5)
+                       {
+                               SwLedOn(Adapter, pLed);
+                               _set_timer(&(pLed->BlinkTimer), LED_CM11_LINK_ON_INTERVEL);
+                       }
+                       else
+                       {
+                               if( pLed->bLedOn )
+                               {
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                                       _set_timer(&(pLed->BlinkTimer), LED_CM11_BLINK_INTERVAL);
+                               }
+                               else
+                               {
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), LED_CM11_BLINK_INTERVAL);
+                               }
+                       }
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+                       if(bStopBlinking == _TRUE)
+                               pLed->BlinkTimes = 5;
+                       break;
+
+               case LED_BLINK_WPS_STOP:        //WPS authentication fail
+                       if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
+                       {
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
+                       }
+                       else
+                       {
+                               pLed->CurrLedState = RTW_LED_ON;
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                               SwLedOn(Adapter, pLed);
+                               _set_timer(&(pLed->BlinkTimer), 0);
+                       }
+                       break;
+
+               default:
+                       break;
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink5 CurrLedState %d\n", pLed->CurrLedState));
+}
+
+void
+SwLedBlink12(
+       PLED_USB                        pLed
+       )
+{
+       PADAPTER Adapter = pLed->padapter;
+       struct mlme_priv        *pmlmepriv = &(Adapter->mlmepriv);
+       BOOLEAN bStopBlinking = _FALSE;
+
+       // Change LED according to BlinkingLedState specified.
+       if( pLed->BlinkingLedState == RTW_LED_ON )
+       {
+               SwLedOn(Adapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%ld): turn on\n", pLed->BlinkTimes));
+       }
+       else
+       {
+               SwLedOff(Adapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%ld): turn off\n", pLed->BlinkTimes));
+       }
+
+       switch(pLed->CurrLedState)
+       {
+               case LED_BLINK_SLOWLY:
+                       if( pLed->bLedOn )
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                       else
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
+                       break;
+
+               case LED_BLINK_TXRX:
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       pLed->CurrLedState = RTW_LED_OFF;
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                                       if(pLed->bLedOn)
+                                               SwLedOff(Adapter, pLed);
+                               }
+                               else
+                               {
+                                       pLed->bLedNoLinkBlinkInProgress = _TRUE;
+                                       pLed->CurrLedState = LED_BLINK_SLOWLY;
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
+                               }
+
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       else
+                       {
+                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       SwLedOff(Adapter, pLed);
+                               }
+                               else
+                               {
+                                        if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                               }
+                       }
+                       break;
+
+               default:
+                       break;
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink8 CurrLedState %d\n", pLed->CurrLedState));
+
+
+}
+
+VOID
+SwLedBlink13(
+       IN PLED_USB                     pLed
+       )
+{
+       PADAPTER Adapter = pLed->padapter;
+       struct mlme_priv        *pmlmepriv = &(Adapter->mlmepriv);
+       BOOLEAN bStopBlinking = _FALSE;
+       static u8       LinkBlinkCnt=0;
+
+       // Change LED according to BlinkingLedState specified.
+       if( pLed->BlinkingLedState == RTW_LED_ON ) 
+       {
+               SwLedOn(Adapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
+       }
+       else 
+       {
+               if(pLed->CurrLedState != LED_BLINK_WPS_STOP)
+                       SwLedOff(Adapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
+       }       
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("!!! SwLedBlink13 CurrLedState %d, bLedWPSBlinkInProgress %d, bLedBlinkInProgress %d\n", pLed->CurrLedState,pLed->bLedWPSBlinkInProgress,pLed->bLedBlinkInProgress));
+       switch(pLed->CurrLedState)
+       {                       
+               case LED_BLINK_LINK_IN_PROCESS:
+                       if(!pLed->bLedWPSBlinkInProgress)
+                               LinkBlinkCnt++;
+                       
+                       if(LinkBlinkCnt>15)
+                       {
+                               LinkBlinkCnt=0;
+                               pLed->bLedBlinkInProgress = _FALSE;
+                               break;
+                       }
+                       if( pLed->bLedOn )
+                       {
+                               pLed->BlinkingLedState = RTW_LED_OFF; 
+                               _set_timer(&(pLed->BlinkTimer), 500);
+                       }
+                       else
+                       {
+                               pLed->BlinkingLedState = RTW_LED_ON; 
+                               _set_timer(&(pLed->BlinkTimer), 500);
+                       }
+
+                       break;
+
+               case LED_BLINK_WPS:
+                       if( pLed->bLedOn )
+                       {
+                               pLed->BlinkingLedState = RTW_LED_OFF; 
+                               _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_ON_INTERVAL_NETGEAR);
+                       }
+                       else
+                       {
+                               pLed->BlinkingLedState = RTW_LED_ON; 
+                               _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_OFF_INTERVAL_NETGEAR);
+                       }
+                       
+                       break;
+
+               case LED_BLINK_WPS_STOP:        //WPS success
+                       SwLedOff(Adapter, pLed);        
+                       pLed->bLedWPSBlinkInProgress = _FALSE;  
+                       break;
+                                       
+               default:
+                       LinkBlinkCnt=0;
+                       break;
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink13\n"));
+
+}
+
+VOID
+SwLedBlink14(
+       IN PLED_USB                     pLed
+       )
+{
+       PADAPTER Adapter = pLed->padapter;
+       struct mlme_priv        *pmlmepriv = &(Adapter->mlmepriv);
+       BOOLEAN bStopBlinking = _FALSE;
+       static u8       LinkBlinkCnt=0;
+
+       // Change LED according to BlinkingLedState specified.
+       if( pLed->BlinkingLedState == RTW_LED_ON )
+       {
+               SwLedOn(Adapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
+       }
+       else 
+       {
+               if(pLed->CurrLedState != LED_BLINK_WPS_STOP)
+                       SwLedOff(Adapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
+       }       
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("!!! SwLedBlink14 CurrLedState %d, bLedWPSBlinkInProgress %d, bLedBlinkInProgress %d\n", pLed->CurrLedState,pLed->bLedWPSBlinkInProgress,pLed->bLedBlinkInProgress));
+       switch(pLed->CurrLedState)
+       {                       
+               case LED_BLINK_TXRX:
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       SwLedOff(Adapter, pLed);
+                               }
+                               else 
+                               {
+                                       SwLedOn(Adapter, pLed);
+                               }
+                               pLed->bLedBlinkInProgress = _FALSE;     
+                       }
+                       else
+                       {
+                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       SwLedOff(Adapter, pLed);
+                               }
+                               else
+                               {
+                                       if( pLed->bLedOn )
+                                       {
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                               if (IS_HARDWARE_TYPE_8812AU(Adapter))
+                                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
+                                               else
+                                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                                       }
+                                       else
+                                       {
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                               if (IS_HARDWARE_TYPE_8812AU(Adapter))
+                                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
+                                               else
+                                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                                       }
+                               }
+                       }
+
+                       break;
+                                       
+               default:
+                       LinkBlinkCnt=0;
+                       break;
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink14\n"));
+}
+
+VOID
+SwLedBlink15(
+       IN PLED_USB                     pLed
+       )
+{
+       PADAPTER Adapter = pLed->padapter;
+       struct mlme_priv        *pmlmepriv = &(Adapter->mlmepriv);
+       BOOLEAN bStopBlinking = _FALSE;
+       static u8       LinkBlinkCnt=0;
+       // Change LED according to BlinkingLedState specified.
+       
+       if( pLed->BlinkingLedState == RTW_LED_ON ) 
+       {
+               SwLedOn(Adapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
+       }
+       else 
+       {
+               if(pLed->CurrLedState != LED_BLINK_WPS_STOP)
+                       SwLedOff(Adapter, pLed);
+               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
+       }       
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("!!! SwLedBlink15 CurrLedState %d, bLedWPSBlinkInProgress %d, bLedBlinkInProgress %d\n", pLed->CurrLedState,pLed->bLedWPSBlinkInProgress,pLed->bLedBlinkInProgress));
+       switch(pLed->CurrLedState)
+       {
+               case LED_BLINK_WPS:
+                       if( pLed->bLedOn )
+                       {
+                               pLed->BlinkingLedState = RTW_LED_OFF; 
+                               _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_ON_INTERVAL_DLINK);
+                       }
+                       else
+                       {
+                               pLed->BlinkingLedState = RTW_LED_ON; 
+                               _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_OFF_INTERVAL_DLINK);
+                       }
+                       break;
+       
+               case LED_BLINK_WPS_STOP:        //WPS success
+                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("blink15, LED_BLINK_WPS_STOP  BlinkingLedState %d\n",pLed->BlinkingLedState));
+                       
+                       if(pLed->BlinkingLedState == RTW_LED_OFF)
+                       {
+                               pLed->bLedWPSBlinkInProgress = _FALSE;  
+                               return;
+                       }
+                       
+                       pLed->CurrLedState = LED_BLINK_WPS_STOP;
+                       pLed->BlinkingLedState = RTW_LED_OFF;   
+
+                       _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_LINKED_ON_INTERVAL_DLINK);                        
+                       break;
+
+               case LED_BLINK_NO_LINK:
+                       {
+                               static BOOLEAN          bLedOn=_TRUE;
+                               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("blink15, LED_NO_LINK_BLINK  bLedOn %d\n",bLedOn));
+                               if(bLedOn)
+                               {
+                                       bLedOn=_FALSE;
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               }
+                               else
+                               {
+                                       bLedOn=_TRUE;
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                               }
+                               pLed->bLedBlinkInProgress = _TRUE;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL);
+                       }
+                       break;
+
+               case LED_BLINK_LINK_IDEL:
+                       {
+                               static BOOLEAN          bLedOn=_TRUE;
+                               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("blink15, LED_BLINK_LINK_IDEL  bLedOn %d\n",bLedOn));
+                               if(bLedOn)
+                               {
+                                       bLedOn=_FALSE;
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               }
+                               else
+                               {
+                                       bLedOn=_TRUE;
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                                       
+                               }
+                               pLed->bLedBlinkInProgress = _TRUE;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_IDEL_INTERVAL);
+                       }       
+                       break;
+
+               case LED_BLINK_SCAN:
+                       {
+                               static u8       BlinkTime=0;
+                               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("blink15, LED_SCAN_BLINK  bLedOn %d\n",BlinkTime));
+                               if(BlinkTime %2==0)
+                               {
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                               }
+                               else
+                               {
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               }
+                               BlinkTime ++;
+
+                               if(BlinkTime<24)
+                               {
+                                       pLed->bLedBlinkInProgress = _TRUE;
+                                       
+                                       if(pLed->BlinkingLedState == RTW_LED_ON)
+                                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_OFF_INTERVAL);
+                                       else
+                                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_ON_INTERVAL);
+                               }
+                               else
+                               {
+                                       //if(pLed->OLDLedState ==LED_NO_LINK_BLINK)
+                                       if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)
+                                       {
+                                               pLed->CurrLedState = LED_BLINK_NO_LINK;
+                                               pLed->BlinkingLedState = RTW_LED_ON;    
+
+                                               _set_timer(&(pLed->BlinkTimer), 100);
+                                       }
+                                       BlinkTime =0;
+                               }
+                       }
+                       break;
+
+               case LED_BLINK_TXRX:
+                       pLed->BlinkTimes--;
+                       if( pLed->BlinkTimes == 0 )
+                       {
+                               bStopBlinking = _TRUE;
+                       }
+                       if(bStopBlinking)
+                       {
+                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       SwLedOff(Adapter, pLed);
+                               }
+                               else
+                               {
+                                       SwLedOn(Adapter, pLed);
+                               }
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       else
+                       {
+                               if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
+                               {
+                                       SwLedOff(Adapter, pLed);
+                               }
+                               else
+                               {
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF; 
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON; 
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                               }
+                       }
+                       break;
+
+               default:
+                       LinkBlinkCnt=0;
+                       break;
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink15\n"));
+}
+
+//
+//     Description:
+//             Handler function of LED Blinking.
+//             We dispatch acture LED blink action according to LedStrategy.
+//
+void BlinkHandler(PLED_USB pLed)
+{
+       _adapter                *padapter = pLed->padapter;
+       struct led_priv *ledpriv = &(padapter->ledpriv);
+
+       //DBG_871X("%s (%s:%d)\n",__FUNCTION__, current->comm, current->pid);
+
+       if (RTW_CANNOT_RUN(padapter) || (!rtw_is_hw_init_completed(padapter))) {
+               /*DBG_871X("%s bDriverStopped:%s, bSurpriseRemoved:%s\n"
+               , __func__
+               , rtw_is_drv_stopped(padapter)?"True":"False"
+               , rtw_is_surprise_removed(padapter)?"True":"False" );*/
+               return;
+       }
+
+       switch(ledpriv->LedStrategy)
+       {
+               case SW_LED_MODE0:
+                       SwLedBlink(pLed);
+                       break;
+               
+               case SW_LED_MODE1:
+                       SwLedBlink1(pLed);
+                       break;
+               
+               case SW_LED_MODE2:
+                       SwLedBlink2(pLed);
+                       break;
+                       
+               case SW_LED_MODE3:
+                       SwLedBlink3(pLed);
+                       break;
+
+               case SW_LED_MODE4:
+                       SwLedBlink4(pLed);
+                       break;                  
+
+               case SW_LED_MODE5:
+                       SwLedBlink5(pLed);
+                       break;
+
+               case SW_LED_MODE6:
+                       SwLedBlink6(pLed);
+                       break;
+
+               case SW_LED_MODE7:
+                       SwLedBlink7(pLed);
+                       break;
+
+               case SW_LED_MODE8:
+                       SwLedBlink8(pLed);
+                       break;
+
+               case SW_LED_MODE9:
+                       SwLedBlink9(pLed);
+                       break;
+
+               case SW_LED_MODE10:
+                       SwLedBlink10(pLed);
+                       break;
+
+               case SW_LED_MODE11:
+                       SwLedBlink11(pLed);
+                       break;
+
+               case SW_LED_MODE12:
+                       SwLedBlink12(pLed);
+                       break;
+
+               case SW_LED_MODE13:
+                       SwLedBlink13(pLed);
+                       break;
+
+               case SW_LED_MODE14:
+                       SwLedBlink14(pLed);
+                       break;
+
+               case SW_LED_MODE15:
+                       SwLedBlink15(pLed);
+                       break;
+
+               default:
+                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("BlinkWorkItemCallback 0x%x \n", ledpriv->LedStrategy));
+                       //SwLedBlink(pLed);
+                       break;
+       }
+}
+
+//
+//     Description:
+//             Callback function of LED BlinkTimer, 
+//             it just schedules to corresponding BlinkWorkItem/led_blink_hdl
+//
+void BlinkTimerCallback(void *data)
+{
+       PLED_USB         pLed = (PLED_USB)data;
+       _adapter                *padapter = pLed->padapter;
+
+       //DBG_871X("%s\n", __FUNCTION__);
+
+       if (RTW_CANNOT_RUN(padapter) || (!rtw_is_hw_init_completed(padapter))) {
+               /*DBG_871X("%s bDriverStopped:%s, bSurpriseRemoved:%s\n"
+                       , __func__
+                       , rtw_is_drv_stopped(padapter)?"True":"False"
+                       , rtw_is_surprise_removed(padapter)?"True":"False" );*/
+               return;
+       }
+
+       #ifdef CONFIG_LED_HANDLED_BY_CMD_THREAD
+       rtw_led_blink_cmd(padapter, (PVOID)pLed);
+       #else
+       if(ATOMIC_READ(&pLed->bCancelWorkItem) == _FALSE)
+               _set_workitem(&(pLed->BlinkWorkItem));
+       #endif
+}
+
+//
+//     Description:
+//             Callback function of LED BlinkWorkItem.
+//             We dispatch acture LED blink action according to LedStrategy.
+//
+void BlinkWorkItemCallback(_workitem *work)
+{
+       PLED_USB         pLed = container_of(work, LED_USB, BlinkWorkItem);
+       BlinkHandler(pLed);
+}
+
+static void
+SwLedControlMode0(
+       _adapter                *padapter,
+       LED_CTL_MODE            LedAction
+)
+{
+       struct led_priv *ledpriv = &(padapter->ledpriv);
+       PLED_USB        pLed = &(ledpriv->SwLed1);
+
+       // Decide led state
+       switch(LedAction)
+       {
+       case LED_CTL_TX:
+       case LED_CTL_RX:
+               if( pLed->bLedBlinkInProgress == _FALSE )
+               {
+                       pLed->bLedBlinkInProgress = _TRUE;
+
+                       pLed->CurrLedState = LED_BLINK_NORMAL;
+                       pLed->BlinkTimes = 2;
+
+                       if( pLed->bLedOn )
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                       else
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
+               }
+               break;
+
+       case LED_CTL_START_TO_LINK:
+               if( pLed->bLedBlinkInProgress == _FALSE )
+               {
+                       pLed->bLedBlinkInProgress = _TRUE;
+
+                       pLed->CurrLedState = LED_BLINK_StartToBlink;
+                       pLed->BlinkTimes = 24;
+
+                       if( pLed->bLedOn )
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                       else
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
+               }
+               else
+               {
+                       pLed->CurrLedState = LED_BLINK_StartToBlink;
+               }
+               break;
+
+       case LED_CTL_LINK:
+               pLed->CurrLedState = RTW_LED_ON;
+               if( pLed->bLedBlinkInProgress == _FALSE )
+               {
+                       pLed->BlinkingLedState = RTW_LED_ON;
+                       _set_timer(&(pLed->BlinkTimer), 0);
+               }
+               break;
+
+       case LED_CTL_NO_LINK:
+               pLed->CurrLedState = RTW_LED_OFF;
+               if( pLed->bLedBlinkInProgress == _FALSE )
+               {
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+                       _set_timer(&(pLed->BlinkTimer), 0);
+               }
+               break;
+
+       case LED_CTL_POWER_OFF:
+               pLed->CurrLedState = RTW_LED_OFF;
+               if(pLed->bLedBlinkInProgress)
+               {
+                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                       pLed->bLedBlinkInProgress = _FALSE;
+               }
+               SwLedOff(padapter, pLed);
+               break;
+
+       case LED_CTL_START_WPS:
+               if( pLed->bLedBlinkInProgress == _FALSE || pLed->CurrLedState == RTW_LED_ON)
+               {
+                       pLed->bLedBlinkInProgress = _TRUE;
+
+                       pLed->CurrLedState = LED_BLINK_WPS;
+                       pLed->BlinkTimes = 20;
+
+                       if( pLed->bLedOn )
+                       {
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LONG_INTERVAL);
+                       }
+                       else
+                       {
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LONG_INTERVAL);
+                       }
+               }
+               break;
+
+       case LED_CTL_STOP_WPS:
+               if(pLed->bLedBlinkInProgress)
+               {
+                       pLed->CurrLedState = RTW_LED_OFF;
+                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                       pLed->bLedBlinkInProgress = _FALSE;
+               }
+               break;
+
+
+       default:
+               break;
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led %d\n", pLed->CurrLedState));
+
+}
+
+ //ALPHA, added by chiyoko, 20090106
+static void
+SwLedControlMode1(
+       _adapter                *padapter,
+       LED_CTL_MODE            LedAction
+)
+{
+       struct led_priv         *ledpriv = &(padapter->ledpriv);
+       PLED_USB                        pLed = &(ledpriv->SwLed0);
+       struct mlme_priv                *pmlmepriv = &(padapter->mlmepriv);
+       PHAL_DATA_TYPE          pHalData = GET_HAL_DATA(padapter);
+
+       u32 uLedBlinkNoLinkInterval = LED_BLINK_NO_LINK_INTERVAL_ALPHA; //add by ylb 20121012 for customer led for alpha
+       if(pHalData->CustomerID == RT_CID_819x_ALPHA_Dlink)
+               uLedBlinkNoLinkInterval= LED_BLINK_NO_LINK_INTERVAL_ALPHA_500MS;        
+       
+       if(pHalData->CustomerID == RT_CID_819x_CAMEO)
+               pLed = &(ledpriv->SwLed1);
+
+       switch(LedAction)
+       {
+               case LED_CTL_POWER_ON:
+               case LED_CTL_START_TO_LINK:
+               case LED_CTL_NO_LINK:
+                       if( pLed->bLedNoLinkBlinkInProgress == _FALSE )
+                       {
+                               if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
+                               {
+                                       return;
+                               }
+                               if( pLed->bLedLinkBlinkInProgress == _TRUE )
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedLinkBlinkInProgress = _FALSE;
+                               }
+                               if(pLed->bLedBlinkInProgress ==_TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedBlinkInProgress = _FALSE;
+                               }
+
+                               pLed->bLedNoLinkBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_SLOWLY;
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), uLedBlinkNoLinkInterval);//change by ylb 20121012 for customer led for alpha
+                       }
+                       break;
+
+               case LED_CTL_LINK:
+                       if( pLed->bLedLinkBlinkInProgress == _FALSE )
+                       {
+                               if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
+                               {
+                                       return;
+                               }
+                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;
+                               }
+                               if(pLed->bLedBlinkInProgress ==_TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedBlinkInProgress = _FALSE;
+                               }
+                               pLed->bLedLinkBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_NORMAL;
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
+                       }
+                       break;
+
+               case LED_CTL_SITE_SURVEY:
+                        if((pmlmepriv->LinkDetectInfo.bBusyTraffic) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))
+                               ;
+                        else if(pLed->bLedScanBlinkInProgress ==_FALSE)
+                        {
+                               if(IS_LED_WPS_BLINKING(pLed))
+                                       return;
+
+                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;
+                               }
+                               if( pLed->bLedLinkBlinkInProgress == _TRUE )
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                        pLed->bLedLinkBlinkInProgress = _FALSE;
+                               }
+                               if(pLed->bLedBlinkInProgress ==_TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedBlinkInProgress = _FALSE;
+                               }
+                               pLed->bLedScanBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_SCAN;
+                               pLed->BlinkTimes = 24;
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+
+                               if (adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason == RF_CHANGE_BY_IPS)
+                                       _set_timer(&(pLed->BlinkTimer), LED_INITIAL_INTERVAL);
+                               else                                    
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
+
+                        }
+                       break;
+
+               case LED_CTL_TX:
+               case LED_CTL_RX:
+                       if(pLed->bLedBlinkInProgress ==_FALSE)
+                       {
+                               if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
+                               {
+                                       return;
+                               }
+                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;
+                               }
+                               if( pLed->bLedLinkBlinkInProgress == _TRUE )
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedLinkBlinkInProgress = _FALSE;
+                               }
+                               pLed->bLedBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_TXRX;
+                               pLed->BlinkTimes = 2;
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                       }
+                       break;
+
+               case LED_CTL_START_WPS: //wait until xinpin finish
+               case LED_CTL_START_WPS_BOTTON:
+                        if(pLed->bLedWPSBlinkInProgress ==_FALSE)
+                        {
+                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;
+                               }
+                               if( pLed->bLedLinkBlinkInProgress == _TRUE )
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                        pLed->bLedLinkBlinkInProgress = _FALSE;
+                               }
+                               if(pLed->bLedBlinkInProgress ==_TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedBlinkInProgress = _FALSE;
+                               }
+                               if(pLed->bLedScanBlinkInProgress ==_TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedScanBlinkInProgress = _FALSE;
+                               }
+                               pLed->bLedWPSBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_WPS;
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
+                        }
+                       break;
+
+
+               case LED_CTL_STOP_WPS:
+                       if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedNoLinkBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedLinkBlinkInProgress == _TRUE )
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                                pLed->bLedLinkBlinkInProgress = _FALSE;
+                       }
+                       if(pLed->bLedBlinkInProgress ==_TRUE)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       if(pLed->bLedScanBlinkInProgress ==_TRUE)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedScanBlinkInProgress = _FALSE;
+                       }
+                       if(pLed->bLedWPSBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                       }
+                       else
+                       {
+                               pLed->bLedWPSBlinkInProgress = _TRUE;
+                       }
+
+                       pLed->CurrLedState = LED_BLINK_WPS_STOP;
+                       if(pLed->bLedOn)
+                       {
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_WPS_SUCESS_INTERVAL_ALPHA);
+                       }
+                       else
+                       {
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), 0);
+                       }
+                       break;
+
+               case LED_CTL_STOP_WPS_FAIL:
+                       if(pLed->bLedWPSBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedWPSBlinkInProgress = _FALSE;
+                       }
+
+                       pLed->bLedNoLinkBlinkInProgress = _TRUE;
+                       pLed->CurrLedState = LED_BLINK_SLOWLY;
+                       if( pLed->bLedOn )
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                       else
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                       _set_timer(&(pLed->BlinkTimer), uLedBlinkNoLinkInterval);//change by ylb 20121012 for customer led for alpha
+                       break;
+
+               case LED_CTL_POWER_OFF:
+                       pLed->CurrLedState = RTW_LED_OFF;
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+                       if( pLed->bLedNoLinkBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedNoLinkBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedLinkBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedLinkBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedWPSBlinkInProgress )
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedWPSBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedScanBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedScanBlinkInProgress = _FALSE;
+                       }
+
+                       SwLedOff(padapter, pLed);
+                       break;
+
+               default:
+                       break;
+
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led %d\n", pLed->CurrLedState));
+}
+
+ //Arcadyan/Sitecom , added by chiyoko, 20090216
+static void
+SwLedControlMode2(
+       _adapter                                *padapter,
+       LED_CTL_MODE            LedAction
+)
+{
+       struct led_priv *ledpriv = &(padapter->ledpriv);
+       struct mlme_priv        *pmlmepriv = &padapter->mlmepriv;
+       PLED_USB                pLed = &(ledpriv->SwLed0);
+
+       switch(LedAction)
+       {
+               case LED_CTL_SITE_SURVEY:
+                        if(pmlmepriv->LinkDetectInfo.bBusyTraffic)
+                               ;
+                        else if(pLed->bLedScanBlinkInProgress ==_FALSE)
+                        {
+                               if(IS_LED_WPS_BLINKING(pLed))
+                                       return;
+
+                               if(pLed->bLedBlinkInProgress ==_TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedBlinkInProgress = _FALSE;
+                               }
+                               pLed->bLedScanBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_SCAN;
+                               pLed->BlinkTimes = 24;
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
+                        }
+                       break;
+
+               case LED_CTL_TX:
+               case LED_CTL_RX:
+                       if((pLed->bLedBlinkInProgress ==_FALSE) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))
+                       {
+                               if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
+                               {
+                                       return;
+                               }
+
+                               pLed->bLedBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_TXRX;
+                               pLed->BlinkTimes = 2;
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                       }
+                       break;
+
+               case LED_CTL_LINK:
+                       pLed->CurrLedState = RTW_LED_ON;
+                       pLed->BlinkingLedState = RTW_LED_ON;
+                       if( pLed->bLedBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedScanBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedScanBlinkInProgress = _FALSE;
+                       }
+
+                       _set_timer(&(pLed->BlinkTimer), 0);
+                       break;
+
+               case LED_CTL_START_WPS: //wait until xinpin finish
+               case LED_CTL_START_WPS_BOTTON:
+                       if(pLed->bLedWPSBlinkInProgress ==_FALSE)
+                       {
+                               if(pLed->bLedBlinkInProgress ==_TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedBlinkInProgress = _FALSE;
+                               }
+                               if(pLed->bLedScanBlinkInProgress ==_TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedScanBlinkInProgress = _FALSE;
+                               }
+                               pLed->bLedWPSBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = RTW_LED_ON;
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), 0);
+                        }
+                       break;
+
+               case LED_CTL_STOP_WPS:
+                       pLed->bLedWPSBlinkInProgress = _FALSE;
+                       if(adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on)
+                       {
+                               pLed->CurrLedState = RTW_LED_OFF;
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                               _set_timer(&(pLed->BlinkTimer), 0);
+                       }
+                       else
+                       {
+                               pLed->CurrLedState = RTW_LED_ON;
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), 0);
+                               RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
+                       }
+                       break;
+
+               case LED_CTL_STOP_WPS_FAIL:
+                       pLed->bLedWPSBlinkInProgress = _FALSE;
+                       pLed->CurrLedState = RTW_LED_OFF;
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+                       _set_timer(&(pLed->BlinkTimer), 0);
+                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
+                       break;
+
+               case LED_CTL_START_TO_LINK:
+               case LED_CTL_NO_LINK:
+                       if(!IS_LED_BLINKING(pLed))
+                       {
+                               pLed->CurrLedState = RTW_LED_OFF;
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                               _set_timer(&(pLed->BlinkTimer), 0);
+                       }
+                       break;
+
+               case LED_CTL_POWER_OFF:
+                       pLed->CurrLedState = RTW_LED_OFF;
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+                       if( pLed->bLedBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedScanBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedScanBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedWPSBlinkInProgress )
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedWPSBlinkInProgress = _FALSE;
+                       }
+
+                       SwLedOff(padapter, pLed);
+                       break;
+
+               default:
+                       break;
+
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
+}
+
+  //COREGA, added by chiyoko, 20090316
+ static void
+ SwLedControlMode3(
+       _adapter                                *padapter,
+       LED_CTL_MODE            LedAction
+)
+{
+       struct led_priv *ledpriv = &(padapter->ledpriv);
+       struct mlme_priv        *pmlmepriv = &padapter->mlmepriv;
+       PLED_USB                pLed = &(ledpriv->SwLed0);
+
+       switch(LedAction)
+       {
+               case LED_CTL_SITE_SURVEY:
+                       if(pmlmepriv->LinkDetectInfo.bBusyTraffic)
+                               ;
+                       else if(pLed->bLedScanBlinkInProgress ==_FALSE)
+                       {
+                               if(IS_LED_WPS_BLINKING(pLed))
+                                       return;
+
+                               if(pLed->bLedBlinkInProgress ==_TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedBlinkInProgress = _FALSE;
+                               }
+                               pLed->bLedScanBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_SCAN;
+                               pLed->BlinkTimes = 24;
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
+                       }
+                       break;
+
+               case LED_CTL_TX:
+               case LED_CTL_RX:
+                       if((pLed->bLedBlinkInProgress ==_FALSE) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))
+                       {
+                               if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
+                               {
+                                       return;
+                               }
+
+                               pLed->bLedBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_TXRX;
+                               pLed->BlinkTimes = 2;
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                       }
+                       break;
+
+               case LED_CTL_LINK:
+                       if(IS_LED_WPS_BLINKING(pLed))
+                               return;
+
+                       pLed->CurrLedState = RTW_LED_ON;
+                       pLed->BlinkingLedState = RTW_LED_ON;
+                       if( pLed->bLedBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedScanBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedScanBlinkInProgress = _FALSE;
+                       }
+
+                       _set_timer(&(pLed->BlinkTimer), 0);
+                       break;
+
+               case LED_CTL_START_WPS: //wait until xinpin finish
+               case LED_CTL_START_WPS_BOTTON:
+                       if(pLed->bLedWPSBlinkInProgress ==_FALSE)
+                       {
+                               if(pLed->bLedBlinkInProgress ==_TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedBlinkInProgress = _FALSE;
+                               }
+                               if(pLed->bLedScanBlinkInProgress ==_TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedScanBlinkInProgress = _FALSE;
+                               }
+                               pLed->bLedWPSBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_WPS;
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
+                       }
+                       break;
+
+               case LED_CTL_STOP_WPS:
+                       if(pLed->bLedWPSBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedWPSBlinkInProgress = _FALSE;
+                       }
+                       else
+                       {
+                               pLed->bLedWPSBlinkInProgress = _TRUE;
+                       }
+
+                       pLed->CurrLedState = LED_BLINK_WPS_STOP;
+                       if(pLed->bLedOn)
+                       {
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_WPS_SUCESS_INTERVAL_ALPHA);
+                       }
+                       else
+                       {
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), 0);
+                       }
+
+                       break;
+
+               case LED_CTL_STOP_WPS_FAIL:
+                       if(pLed->bLedWPSBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedWPSBlinkInProgress = _FALSE;
+                       }
+
+                       pLed->CurrLedState = RTW_LED_OFF;
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+                       _set_timer(&(pLed->BlinkTimer), 0);
+                       break;
+
+               case LED_CTL_START_TO_LINK:
+               case LED_CTL_NO_LINK:
+                       if(!IS_LED_BLINKING(pLed))
+                       {
+                               pLed->CurrLedState = RTW_LED_OFF;
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                               _set_timer(&(pLed->BlinkTimer), 0);
+                       }
+                       break;
+
+               case LED_CTL_POWER_OFF:
+                       pLed->CurrLedState = RTW_LED_OFF;
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+                       if( pLed->bLedBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedScanBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedScanBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedWPSBlinkInProgress )
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedWPSBlinkInProgress = _FALSE;
+                       }
+
+                       SwLedOff(padapter, pLed);
+                       break;
+
+               default:
+                       break;
+
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
+}
+
+
+ //Edimax-Belkin, added by chiyoko, 20090413
+static void
+SwLedControlMode4(
+       _adapter                                *padapter,
+       LED_CTL_MODE            LedAction
+)
+{
+       struct led_priv *ledpriv = &(padapter->ledpriv);
+       struct mlme_priv        *pmlmepriv = &padapter->mlmepriv;
+       PLED_USB                pLed = &(ledpriv->SwLed0);
+       PLED_USB                pLed1 = &(ledpriv->SwLed1);
+
+       switch(LedAction)
+       {
+               case LED_CTL_START_TO_LINK:
+                       if(pLed1->bLedWPSBlinkInProgress)
+                       {
+                               pLed1->bLedWPSBlinkInProgress = _FALSE;
+                               _cancel_timer_ex(&(pLed1->BlinkTimer));
+
+                               pLed1->BlinkingLedState = RTW_LED_OFF;
+                               pLed1->CurrLedState = RTW_LED_OFF;
+
+                               if(pLed1->bLedOn)
+                                       _set_timer(&(pLed->BlinkTimer), 0);
+                       }
+
+                       if( pLed->bLedStartToLinkBlinkInProgress == _FALSE )
+                       {
+                               if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
+                               {
+                                       return;
+                               }
+                               if(pLed->bLedBlinkInProgress ==_TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedBlinkInProgress = _FALSE;
+                               }
+                               if(pLed->bLedNoLinkBlinkInProgress ==_TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;
+                               }
+
+                               pLed->bLedStartToLinkBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_StartToBlink;
+                               if( pLed->bLedOn )
+                               {
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
+                               }
+                               else
+                               {
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
+                               }
+                       }
+                       break;
+
+               case LED_CTL_LINK:
+               case LED_CTL_NO_LINK:
+                       //LED1 settings
+                       if(LedAction == LED_CTL_LINK)
+                       {
+                               if(pLed1->bLedWPSBlinkInProgress)
+                               {
+                                       pLed1->bLedWPSBlinkInProgress = _FALSE;
+                                       _cancel_timer_ex(&(pLed1->BlinkTimer));
+
+                                       pLed1->BlinkingLedState = RTW_LED_OFF;
+                                       pLed1->CurrLedState = RTW_LED_OFF;
+
+                                       if(pLed1->bLedOn)
+                                               _set_timer(&(pLed->BlinkTimer), 0);
+                               }
+                       }
+
+                       if( pLed->bLedNoLinkBlinkInProgress == _FALSE )
+                       {
+                               if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
+                               {
+                                       return;
+                               }
+                               if(pLed->bLedBlinkInProgress ==_TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedBlinkInProgress = _FALSE;
+                               }
+
+                               pLed->bLedNoLinkBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_SLOWLY;
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                               
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
+                       }
+                       break;
+
+               case LED_CTL_SITE_SURVEY:
+                       if((pmlmepriv->LinkDetectInfo.bBusyTraffic) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))
+                               ;
+                       else if(pLed->bLedScanBlinkInProgress ==_FALSE)
+                       {
+                               if(IS_LED_WPS_BLINKING(pLed))
+                                       return;
+
+                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;
+                               }
+                               if(pLed->bLedBlinkInProgress ==_TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedBlinkInProgress = _FALSE;
+                               }
+                               pLed->bLedScanBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_SCAN;
+                               pLed->BlinkTimes = 24;
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
+                       }
+                       break;
+
+               case LED_CTL_TX:
+               case LED_CTL_RX:
+                       if(pLed->bLedBlinkInProgress ==_FALSE)
+                       {
+                               if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
+                               {
+                                       return;
+                               }
+                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;
+                               }
+                               pLed->bLedBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_TXRX;
+                               pLed->BlinkTimes = 2;
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                       }
+                       break;
+
+               case LED_CTL_START_WPS: //wait until xinpin finish
+               case LED_CTL_START_WPS_BOTTON:
+                       if(pLed1->bLedWPSBlinkInProgress)
+                       {
+                               pLed1->bLedWPSBlinkInProgress = _FALSE;
+                               _cancel_timer_ex(&(pLed1->BlinkTimer));
+
+                               pLed1->BlinkingLedState = RTW_LED_OFF;
+                               pLed1->CurrLedState = RTW_LED_OFF;
+
+                               if(pLed1->bLedOn)
+                                       _set_timer(&(pLed->BlinkTimer), 0);
+                       }
+
+                       if(pLed->bLedWPSBlinkInProgress ==_FALSE)
+                       {
+                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;
+                               }
+                               if(pLed->bLedBlinkInProgress ==_TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedBlinkInProgress = _FALSE;
+                               }
+                               if(pLed->bLedScanBlinkInProgress ==_TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedScanBlinkInProgress = _FALSE;
+                               }
+                               pLed->bLedWPSBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_WPS;
+                               if( pLed->bLedOn )
+                               {
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
+                               }
+                               else
+                               {
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
+                               }
+                       }
+                       break;
+
+               case LED_CTL_STOP_WPS:  //WPS connect success
+                       if(pLed->bLedWPSBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedWPSBlinkInProgress = _FALSE;
+                       }
+
+                       pLed->bLedNoLinkBlinkInProgress = _TRUE;
+                       pLed->CurrLedState = LED_BLINK_SLOWLY;
+                       if( pLed->bLedOn )
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                       else
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
+
+                       break;
+
+               case LED_CTL_STOP_WPS_FAIL:             //WPS authentication fail
+                       if(pLed->bLedWPSBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedWPSBlinkInProgress = _FALSE;
+                       }
+
+                       pLed->bLedNoLinkBlinkInProgress = _TRUE;
+                       pLed->CurrLedState = LED_BLINK_SLOWLY;
+                       if( pLed->bLedOn )
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                       else
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
+
+                       //LED1 settings
+                       if(pLed1->bLedWPSBlinkInProgress)
+                               _cancel_timer_ex(&(pLed1->BlinkTimer));
+                       else
+                               pLed1->bLedWPSBlinkInProgress = _TRUE;
+
+                       pLed1->CurrLedState = LED_BLINK_WPS_STOP;
+                       if( pLed1->bLedOn )
+                               pLed1->BlinkingLedState = RTW_LED_OFF;
+                       else
+                               pLed1->BlinkingLedState = RTW_LED_ON;
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
+
+                       break;
+
+               case LED_CTL_STOP_WPS_FAIL_OVERLAP:     //WPS session overlap
+                       if(pLed->bLedWPSBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedWPSBlinkInProgress = _FALSE;
+                       }
+
+                       pLed->bLedNoLinkBlinkInProgress = _TRUE;
+                       pLed->CurrLedState = LED_BLINK_SLOWLY;
+                       if( pLed->bLedOn )
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                       else
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
+
+                       //LED1 settings
+                       if(pLed1->bLedWPSBlinkInProgress)
+                               _cancel_timer_ex(&(pLed1->BlinkTimer));
+                       else
+                               pLed1->bLedWPSBlinkInProgress = _TRUE;
+
+                       pLed1->CurrLedState = LED_BLINK_WPS_STOP_OVERLAP;
+                       pLed1->BlinkTimes = 10;
+                       if( pLed1->bLedOn )
+                               pLed1->BlinkingLedState = RTW_LED_OFF;
+                       else
+                               pLed1->BlinkingLedState = RTW_LED_ON;
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
+
+                       break;
+
+               case LED_CTL_POWER_OFF:
+                       pLed->CurrLedState = RTW_LED_OFF;
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+
+                       if( pLed->bLedNoLinkBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedNoLinkBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedLinkBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedLinkBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedWPSBlinkInProgress )
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedWPSBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedScanBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedScanBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedStartToLinkBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedStartToLinkBlinkInProgress = _FALSE;
+                       }
+
+                       if( pLed1->bLedWPSBlinkInProgress )
+                       {
+                               _cancel_timer_ex(&(pLed1->BlinkTimer));
+                               pLed1->bLedWPSBlinkInProgress = _FALSE;
+                       }
+
+                       pLed1->BlinkingLedState = LED_UNKNOWN;
+                       SwLedOff(padapter, pLed);
+                       SwLedOff(padapter, pLed1);
+                       break;
+
+               case LED_CTL_CONNECTION_NO_TRANSFER:
+                        if(pLed->bLedBlinkInProgress == _FALSE)
+                        {
+                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;
+                               }
+                               pLed->bLedBlinkInProgress = _TRUE;
+
+                               pLed->CurrLedState = LED_BLINK_ALWAYS_ON;
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
+                       }
+                       break;
+
+               default:
+                       break;
+
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led %d\n", pLed->CurrLedState));
+}
+
+
+
+ //Sercomm-Belkin, added by chiyoko, 20090415
+static void
+SwLedControlMode5(
+       _adapter                                *padapter,
+       LED_CTL_MODE            LedAction
+)
+{
+       struct led_priv *ledpriv = &(padapter->ledpriv);
+       struct mlme_priv        *pmlmepriv = &padapter->mlmepriv;
+       PHAL_DATA_TYPE  pHalData = GET_HAL_DATA(padapter);
+       PLED_USB                pLed = &(ledpriv->SwLed0);
+
+       if(pHalData->CustomerID == RT_CID_819x_CAMEO)
+               pLed = &(ledpriv->SwLed1);
+
+       switch(LedAction)
+       {
+               case LED_CTL_POWER_ON:
+               case LED_CTL_NO_LINK:
+               case LED_CTL_LINK:      //solid blue
+                       pLed->CurrLedState = RTW_LED_ON;
+                       pLed->BlinkingLedState = RTW_LED_ON;
+
+                       _set_timer(&(pLed->BlinkTimer), 0);
+                       break;
+
+               case LED_CTL_SITE_SURVEY:
+                       if((pmlmepriv->LinkDetectInfo.bBusyTraffic) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))
+                               ;
+                       else if(pLed->bLedScanBlinkInProgress ==_FALSE)
+                       {
+                               if(pLed->bLedBlinkInProgress ==_TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedBlinkInProgress = _FALSE;
+                               }
+                               pLed->bLedScanBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_SCAN;
+                               pLed->BlinkTimes = 24;
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
+                       }
+                       break;
+
+               case LED_CTL_TX:
+               case LED_CTL_RX:
+                       if(pLed->bLedBlinkInProgress ==_FALSE)
+                       {
+                               if(pLed->CurrLedState == LED_BLINK_SCAN)
+                               {
+                                       return;
+                               }
+                               pLed->bLedBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_TXRX;
+                               pLed->BlinkTimes = 2;
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                       }
+                       break;
+
+               case LED_CTL_POWER_OFF:
+                       pLed->CurrLedState = RTW_LED_OFF;
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+
+                       if( pLed->bLedBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+
+                       SwLedOff(padapter, pLed);
+                       break;
+
+               default:
+                       break;
+
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led %d\n", pLed->CurrLedState));
+}
+
+ //WNC-Corega, added by chiyoko, 20090902
+static void
+SwLedControlMode6(
+       _adapter                                *padapter,
+       LED_CTL_MODE            LedAction
+)
+{
+       struct led_priv *ledpriv = &(padapter->ledpriv);
+       struct mlme_priv        *pmlmepriv = &padapter->mlmepriv;
+       PLED_USB        pLed0 = &(ledpriv->SwLed0);
+
+       switch(LedAction)
+       {
+               case LED_CTL_POWER_ON:
+               case LED_CTL_LINK:
+               case LED_CTL_NO_LINK:
+                       _cancel_timer_ex(&(pLed0->BlinkTimer));
+                       pLed0->CurrLedState = RTW_LED_ON;
+                       pLed0->BlinkingLedState = RTW_LED_ON;
+                       _set_timer(&(pLed0->BlinkTimer), 0);
+                       break;
+
+               case LED_CTL_POWER_OFF:
+                       SwLedOff(padapter, pLed0);
+                       break;
+
+               default:
+                       break;
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("ledcontrol 6 Led %d\n", pLed0->CurrLedState));
+}
+
+//Netgear, added by sinda, 2011/11/11
+ void
+ SwLedControlMode7(
+        PADAPTER                        Adapter,
+        LED_CTL_MODE            LedAction
+ )
+{
+       struct led_priv *ledpriv = &(Adapter->ledpriv);
+       struct mlme_priv        *pmlmepriv = &Adapter->mlmepriv;
+       PLED_USB        pLed = &(ledpriv->SwLed0);
+       
+       switch(LedAction)
+       {               
+               case LED_CTL_SITE_SURVEY:
+                       if(pmlmepriv->LinkDetectInfo.bBusyTraffic)
+                               ;
+                       else if(pLed->bLedScanBlinkInProgress == _FALSE)
+                       {
+                               if(IS_LED_WPS_BLINKING(pLed))
+                                       return;
+
+                               if(pLed->bLedBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedBlinkInProgress = _FALSE;
+                               }
+                               pLed->bLedScanBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_SCAN;
+                               pLed->BlinkTimes = 6;
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
+                       }
+                       break;
+
+               case LED_CTL_LINK:
+                       if(IS_LED_WPS_BLINKING(pLed))
+                               return;
+
+                       pLed->CurrLedState = RTW_LED_ON;
+                       pLed->BlinkingLedState = RTW_LED_ON;
+                       if( pLed->bLedBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedScanBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedScanBlinkInProgress = _FALSE;
+                       }                       
+
+                       _set_timer(&(pLed->BlinkTimer), 0);
+                       break;
+
+               case LED_CTL_START_WPS: //wait until xinpin finish
+               case LED_CTL_START_WPS_BOTTON:
+                       if(pLed->bLedWPSBlinkInProgress ==_FALSE)
+                       {
+                               if(pLed->bLedBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedBlinkInProgress = _FALSE;
+                               }
+                               if(pLed->bLedScanBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedScanBlinkInProgress = _FALSE;
+                               }
+                               pLed->bLedWPSBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_WPS;
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
+                       }       
+                       break;
+
+               case LED_CTL_STOP_WPS:
+                       if(pLed->bLedWPSBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedWPSBlinkInProgress = _FALSE;                          
+                       }                                               
+                       else
+                       {
+                               pLed->bLedWPSBlinkInProgress = _TRUE;
+                       }
+
+                       pLed->CurrLedState = LED_BLINK_WPS_STOP;
+                       if(pLed->bLedOn)
+                       {
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
+                       }
+                       else
+                       {
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), 0);
+                       }                                       
+
+                       break;
+
+
+               case LED_CTL_STOP_WPS_FAIL:                     
+               case LED_CTL_STOP_WPS_FAIL_OVERLAP:     //WPS session overlap                   
+                       if(pLed->bLedWPSBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedWPSBlinkInProgress = _FALSE;
+                       }
+
+                       pLed->CurrLedState = RTW_LED_OFF;
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+                       _set_timer(&(pLed->BlinkTimer), 0);
+                       break;
+
+               case LED_CTL_START_TO_LINK:
+               case LED_CTL_NO_LINK:
+                       if(!IS_LED_BLINKING(pLed))
+                       {
+                               pLed->CurrLedState = RTW_LED_OFF;
+                               pLed->BlinkingLedState = RTW_LED_OFF;           
+                               _set_timer(&(pLed->BlinkTimer), 0);
+                       }
+                       break;
+
+               case LED_CTL_POWER_OFF:
+               case LED_CTL_POWER_ON:
+                       pLed->CurrLedState = RTW_LED_OFF;
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+                       if( pLed->bLedBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedScanBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedScanBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedWPSBlinkInProgress )
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedWPSBlinkInProgress = _FALSE;
+                       }
+
+                       _set_timer(&(pLed->BlinkTimer), 0);
+                       break;
+
+               default:
+                       break;
+
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("LEd control mode 7 CurrLedState %d\n", pLed->CurrLedState));
+}
+
+void
+SwLedControlMode8(
+       PADAPTER                        Adapter,
+       LED_CTL_MODE            LedAction
+       )
+{
+       struct led_priv *ledpriv = &(Adapter->ledpriv);
+       struct mlme_priv        *pmlmepriv = &Adapter->mlmepriv;
+       PLED_USB        pLed0 = &(ledpriv->SwLed0);
+
+       switch(LedAction)
+       {
+               case LED_CTL_LINK:
+                       _cancel_timer_ex(&(pLed0->BlinkTimer));                 
+                       pLed0->CurrLedState = RTW_LED_ON;
+                       pLed0->BlinkingLedState = RTW_LED_ON;
+                       _set_timer(&(pLed0->BlinkTimer), 0);
+                       break;
+
+               case LED_CTL_NO_LINK:
+                       _cancel_timer_ex(&(pLed0->BlinkTimer));
+                       pLed0->CurrLedState = RTW_LED_OFF;
+                       pLed0->BlinkingLedState = RTW_LED_OFF;                          
+                       _set_timer(&(pLed0->BlinkTimer), 0);    
+                       break;
+
+               case LED_CTL_POWER_OFF:
+                       SwLedOff(Adapter, pLed0);
+                       break;
+
+               default:
+                       break;
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 8 %d\n", pLed0->CurrLedState));
+
+}
+
+//page added for Belkin AC950, 20120813
+void
+SwLedControlMode9(
+       IN      PADAPTER                        Adapter,
+       IN      LED_CTL_MODE            LedAction
+)
+{
+       struct led_priv *ledpriv = &(Adapter->ledpriv);
+       struct mlme_priv        *pmlmepriv = &Adapter->mlmepriv;
+       PLED_USB        pLed = &(ledpriv->SwLed0);
+       PLED_USB        pLed1 = &(ledpriv->SwLed1);
+       PLED_USB        pLed2 = &(ledpriv->SwLed2);
+       BOOLEAN  bWPSOverLap = _FALSE;
+       //DBG_871X("LedAction=%d \n", LedAction);
+       switch(LedAction)
+       {               
+               case LED_CTL_START_TO_LINK:     
+                       if(pLed2->bLedBlinkInProgress == _FALSE)
+                       {
+                               pLed2->bLedBlinkInProgress = _TRUE;
+                               pLed2->BlinkingLedState = RTW_LED_ON;
+                               pLed2->CurrLedState = LED_BLINK_LINK_IN_PROCESS;
+
+                               _set_timer(&(pLed2->BlinkTimer), 0);    
+                       }
+                       break;          
+
+               case LED_CTL_LINK:                      
+               case LED_CTL_NO_LINK:
+                       //LED1 settings
+                       if(LedAction == LED_CTL_NO_LINK)
+                       {
+                               //if(pMgntInfo->AuthStatus == AUTH_STATUS_FAILED)
+                               if(0)
+                               {
+                                       pLed1->CurrLedState = LED_BLINK_AUTH_ERROR;
+                                               if( pLed1->bLedOn )
+                                                       pLed1->BlinkingLedState = RTW_LED_OFF; 
+                                               else
+                                                       pLed1->BlinkingLedState = RTW_LED_ON; 
+                                               _set_timer(&(pLed1->BlinkTimer), 0);
+                               } 
+                               else
+                               {
+                                       pLed1->CurrLedState = RTW_LED_OFF;
+                                       pLed1->BlinkingLedState = RTW_LED_OFF; 
+                                       if( pLed1->bLedOn )
+                                               _set_timer(&(pLed1->BlinkTimer), 0);
+                               }
+                       }
+                       else
+                       {
+                               pLed1->CurrLedState = RTW_LED_OFF;
+                               pLed1->BlinkingLedState = RTW_LED_OFF; 
+                               if( pLed1->bLedOn )
+                                       _set_timer(&(pLed1->BlinkTimer), 0); 
+                       }
+                                               
+                       //LED2 settings
+                       if(LedAction == LED_CTL_LINK)
+                       {
+                               if(Adapter->securitypriv.dot11PrivacyAlgrthm != _NO_PRIVACY_)
+                               {
+                                       if(pLed2->bLedBlinkInProgress ==_TRUE)
+                                       {       
+                                               _cancel_timer_ex(&(pLed2->BlinkTimer));
+                                               pLed2->bLedBlinkInProgress = _FALSE;
+                                       }
+                                       pLed2->CurrLedState = RTW_LED_ON;
+                                       pLed2->bLedNoLinkBlinkInProgress = _TRUE;
+                                       if(!pLed2->bLedOn)
+                                               _set_timer(&(pLed2->BlinkTimer), 0);    
+                               }
+                               else
+                               {
+                                       if(pLed2->bLedWPSBlinkInProgress != _TRUE)
+                                       {
+                                               pLed2->CurrLedState = RTW_LED_OFF;
+                                               pLed2->BlinkingLedState = RTW_LED_OFF;
+                                               if(pLed2->bLedOn)
+                                                       _set_timer(&(pLed2->BlinkTimer), 0);
+                                       }
+                               }
+                       }
+                       else //NO_LINK
+                       {
+                               if(pLed2->bLedWPSBlinkInProgress == _FALSE)
+                               {
+                                       pLed2->CurrLedState = RTW_LED_OFF;
+                                       pLed2->BlinkingLedState = RTW_LED_OFF;
+                                       if(pLed2->bLedOn)
+                                               _set_timer(&(pLed2->BlinkTimer), 0);            
+                               }
+                       }
+
+                       //LED0 settings                 
+                       if( pLed->bLedNoLinkBlinkInProgress == _FALSE )
+                       {
+                               if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
+                               {
+                                       return;
+                               }
+                               if(pLed->bLedBlinkInProgress == _TRUE)
+                               {       
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedBlinkInProgress = _FALSE;
+                               }
+                               
+                               pLed->bLedNoLinkBlinkInProgress = _TRUE;
+                               if(IS_HARDWARE_TYPE_8812AU(Adapter))
+                               {
+                                       if(LedAction == LED_CTL_LINK)
+                                       {
+                                               pLed->BlinkingLedState = RTW_LED_ON; 
+                                               pLed->CurrLedState = LED_BLINK_SLOWLY;
+                                       }
+                                       else
+                                       {
+                                               pLed->CurrLedState = LED_BLINK_SLOWLY;
+                                               if( pLed->bLedOn )
+                                                       pLed->BlinkingLedState = RTW_LED_OFF; 
+                                               else
+                                                       pLed->BlinkingLedState = RTW_LED_ON; 
+                                       }
+                               }
+                               else
+                               {
+                                       pLed->CurrLedState = LED_BLINK_SLOWLY;
+                                       if( pLed->bLedOn )
+                                               pLed->BlinkingLedState = RTW_LED_OFF; 
+                                       else
+                                               pLed->BlinkingLedState = RTW_LED_ON; 
+                               }
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
+                       }
+                       
+                       break;          
+
+               case LED_CTL_SITE_SURVEY:
+                        if((pmlmepriv->LinkDetectInfo.bBusyTraffic) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))
+                               ;
+                        else //if(pLed->bLedScanBlinkInProgress ==FALSE)
+                        {
+                               if(IS_LED_WPS_BLINKING(pLed))
+                                       return;
+                               
+                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;
+                               }
+                               if(pLed->bLedBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedBlinkInProgress = _FALSE;
+                               }
+                               pLed->bLedScanBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_SCAN;
+                               pLed->BlinkTimes = 24;
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF; 
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON; 
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
+
+                        }
+                       break;
+               
+               case LED_CTL_TX:
+               case LED_CTL_RX:
+                       if(pLed->bLedBlinkInProgress == _FALSE)
+                       {
+                               if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
+                               {
+                                       return;
+                               }
+                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;
+                               }
+                               pLed->bLedBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_TXRX;
+                               pLed->BlinkTimes = 2;
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF; 
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON; 
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                       }
+                       break;
+
+               case LED_CTL_START_WPS: //wait until xinpin finish
+               case LED_CTL_START_WPS_BOTTON:
+                       pLed2->bLedBlinkInProgress = _TRUE;
+                       pLed2->BlinkingLedState = RTW_LED_ON;
+                       pLed2->CurrLedState = LED_BLINK_LINK_IN_PROCESS;
+                       pLed2->bLedWPSBlinkInProgress = _TRUE;
+
+                       _set_timer(&(pLed2->BlinkTimer), 500);
+                        
+                       break;
+               
+               case LED_CTL_STOP_WPS:  //WPS connect success   
+                       //LED2 settings
+                       if(pLed2->bLedWPSBlinkInProgress == _TRUE)
+                       {       
+                               _cancel_timer_ex(&(pLed2->BlinkTimer));
+                               pLed2->bLedBlinkInProgress = _FALSE;
+                               pLed2->bLedWPSBlinkInProgress = _FALSE;
+                       }
+                       pLed2->CurrLedState = RTW_LED_ON;
+                       pLed2->bLedNoLinkBlinkInProgress = _TRUE;
+                       if(!pLed2->bLedOn)
+                               _set_timer(&(pLed2->BlinkTimer), 0);    
+
+                       //LED1 settings
+                       _cancel_timer_ex(&(pLed1->BlinkTimer));
+                       pLed1->CurrLedState = RTW_LED_OFF;
+                       pLed1->BlinkingLedState = RTW_LED_OFF; 
+                       if( pLed1->bLedOn )
+                               _set_timer(&(pLed1->BlinkTimer), 0);    
+                       
+                               
+                       break;          
+
+               case LED_CTL_STOP_WPS_FAIL:             //WPS authentication fail       
+                       //LED1 settings
+                       //if(bWPSOverLap == _FALSE)
+                       {
+                               pLed1->CurrLedState = LED_BLINK_AUTH_ERROR;
+                               pLed1->BlinkTimes = 50;
+                               if( pLed1->bLedOn )
+                                       pLed1->BlinkingLedState = RTW_LED_OFF; 
+                               else
+                                       pLed1->BlinkingLedState = RTW_LED_ON; 
+                               _set_timer(&(pLed1->BlinkTimer), 0);
+                       }
+                       //else
+                       //{
+                       //      bWPSOverLap = _FALSE;
+                       //      pLed1->CurrLedState = RTW_LED_OFF;
+                       //      pLed1->BlinkingLedState = RTW_LED_OFF; 
+                       //      _set_timer(&(pLed1->BlinkTimer), 0);
+                       //}
+
+                       //LED2 settings
+                       pLed2->CurrLedState = RTW_LED_OFF;
+                       pLed2->BlinkingLedState = RTW_LED_OFF; 
+                       pLed2->bLedWPSBlinkInProgress = _FALSE;
+                       if( pLed2->bLedOn )
+                               _set_timer(&(pLed2->BlinkTimer), 0);
+                                               
+                       break;                          
+
+               case LED_CTL_STOP_WPS_FAIL_OVERLAP:     //WPS session overlap
+                       //LED1 settings
+                       bWPSOverLap = _TRUE;
+                       pLed1->CurrLedState = LED_BLINK_WPS_STOP_OVERLAP;
+                       pLed1->BlinkTimes = 10;
+                       pLed1->BlinkCounter = 50;
+                       if( pLed1->bLedOn )
+                               pLed1->BlinkingLedState = RTW_LED_OFF; 
+                       else
+                               pLed1->BlinkingLedState = RTW_LED_ON; 
+                       _set_timer(&(pLed1->BlinkTimer), 0);
+
+                       //LED2 settings
+                       pLed2->CurrLedState = RTW_LED_OFF;
+                       pLed2->BlinkingLedState = RTW_LED_OFF;
+                       pLed2->bLedWPSBlinkInProgress = _FALSE;
+                       if( pLed2->bLedOn )
+                               _set_timer(&(pLed2->BlinkTimer), 0);
+                       
+                       break;
+
+               case LED_CTL_POWER_OFF:
+                       pLed->CurrLedState = RTW_LED_OFF;
+                       pLed->BlinkingLedState = RTW_LED_OFF; 
+                       
+                       if( pLed->bLedNoLinkBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedNoLinkBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedLinkBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedLinkBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedWPSBlinkInProgress )
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedWPSBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedScanBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedScanBlinkInProgress = _FALSE;
+                       }       
+                       if( pLed->bLedStartToLinkBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedStartToLinkBlinkInProgress = _FALSE;
+                       }                       
+
+                       if( pLed1->bLedWPSBlinkInProgress )
+                       {
+                               _cancel_timer_ex(&(pLed1->BlinkTimer));
+                               pLed1->bLedWPSBlinkInProgress = _FALSE;
+                       }
+
+
+                       pLed1->BlinkingLedState = LED_UNKNOWN;                          
+                       SwLedOff(Adapter, pLed);
+                       SwLedOff(Adapter, pLed1);                       
+                       break;
+
+               case LED_CTL_CONNECTION_NO_TRANSFER:
+                        if(pLed->bLedBlinkInProgress == _FALSE)
+                        {
+                                 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;
+                               }
+                               pLed->bLedBlinkInProgress = _TRUE;
+
+                               pLed->CurrLedState = LED_BLINK_ALWAYS_ON;
+                               pLed->BlinkingLedState = RTW_LED_ON; 
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
+                        }
+                       break;
+       
+               default:
+                       break;
+
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 9 Led %d\n", pLed->CurrLedState));
+}
+
+//page added for Netgear A6200V2, 20120827
+void
+SwLedControlMode10(
+       PADAPTER                        Adapter,
+       LED_CTL_MODE            LedAction
+)
+{
+       HAL_DATA_TYPE   *pHalData = GET_HAL_DATA(Adapter);
+       struct led_priv *ledpriv = &(Adapter->ledpriv);
+       struct mlme_priv        *pmlmepriv = &Adapter->mlmepriv;
+       PLED_USB        pLed = &(ledpriv->SwLed0);
+       PLED_USB        pLed1 = &(ledpriv->SwLed1);
+
+       switch(LedAction)
+       {
+               case LED_CTL_START_TO_LINK:
+                       if(pLed1->bLedBlinkInProgress == _FALSE)
+                       {
+                               pLed1->bLedBlinkInProgress = _TRUE;
+                               pLed1->BlinkingLedState = RTW_LED_ON;
+                               pLed1->CurrLedState = LED_BLINK_LINK_IN_PROCESS;
+
+                               _set_timer(&(pLed1->BlinkTimer), 0);
+                       }
+                       break;
+
+               case LED_CTL_LINK:                      
+               case LED_CTL_NO_LINK:
+                       if(LedAction == LED_CTL_LINK)
+                       {
+                               if(pLed->bLedWPSBlinkInProgress == _TRUE || pLed1->bLedWPSBlinkInProgress == _TRUE)
+                                       ;
+                               else
+                               {
+                                       if(pHalData->CurrentBandType == BAND_ON_2_4G)
+                                       //LED0 settings
+                                       {
+                                               pLed->CurrLedState = RTW_LED_ON;
+                                               pLed->BlinkingLedState = RTW_LED_ON;
+                                               if(pLed->bLedBlinkInProgress == _TRUE)
+                                               {       
+                                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                                       pLed->bLedBlinkInProgress = _FALSE;
+                                               }
+                                               _set_timer(&(pLed->BlinkTimer), 0);
+
+                                               pLed1->CurrLedState = RTW_LED_OFF;
+                                               pLed1->BlinkingLedState = RTW_LED_OFF;
+                                               _set_timer(&(pLed1->BlinkTimer), 0);
+                                       }
+                                       else if(pHalData->CurrentBandType == BAND_ON_5G)
+                                       //LED1 settings
+                                       {
+                                               pLed1->CurrLedState = RTW_LED_ON;
+                                               pLed1->BlinkingLedState = RTW_LED_ON;
+                                               if(pLed1->bLedBlinkInProgress == _TRUE)
+                                               {       
+                                                       _cancel_timer_ex(&(pLed1->BlinkTimer));
+                                                       pLed1->bLedBlinkInProgress = _FALSE;
+                                               }
+                                               _set_timer(&(pLed1->BlinkTimer), 0);
+
+                                               pLed->CurrLedState = RTW_LED_OFF;
+                                               pLed->BlinkingLedState = RTW_LED_OFF;
+                                               _set_timer(&(pLed->BlinkTimer), 0);
+                                       }
+                               }
+                       }
+                       else if(LedAction == LED_CTL_NO_LINK)   //TODO by page
+                       {
+                               if(pLed->bLedWPSBlinkInProgress == _TRUE || pLed1->bLedWPSBlinkInProgress == _TRUE)
+                                       ;
+                               else
+                               {
+                                       pLed->CurrLedState = RTW_LED_OFF;
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                                       if( pLed->bLedOn )
+                                               _set_timer(&(pLed->BlinkTimer), 0);
+
+                                       pLed1->CurrLedState = RTW_LED_OFF;
+                                       pLed1->BlinkingLedState = RTW_LED_OFF;
+                                       if( pLed1->bLedOn )
+                                               _set_timer(&(pLed1->BlinkTimer), 0);
+                               }
+                       }
+
+                       break;          
+
+               case LED_CTL_SITE_SURVEY:
+                        if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
+                               ;                                                                  //don't blink when media connect
+                        else //if(pLed->bLedScanBlinkInProgress ==FALSE)
+                        {
+                               if(IS_LED_WPS_BLINKING(pLed) || IS_LED_WPS_BLINKING(pLed1))
+                                       return;
+
+                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;
+                               }
+                               if(pLed->bLedBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedBlinkInProgress = _FALSE;
+                               }
+                               pLed->bLedScanBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_SCAN;
+                               pLed->BlinkTimes = 12;
+                               pLed->BlinkingLedState = LED_BLINK_SCAN;
+                               _set_timer(&(pLed->BlinkTimer), 0);
+
+                               if(pLed1->bLedNoLinkBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed1->BlinkTimer));
+                                       pLed1->bLedNoLinkBlinkInProgress = _FALSE;
+                               }
+                               if(pLed1->bLedBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed1->BlinkTimer));
+                                       pLed1->bLedBlinkInProgress = _FALSE;
+                               }
+                               pLed1->bLedScanBlinkInProgress = _TRUE;
+                               pLed1->CurrLedState = LED_BLINK_SCAN;
+                               pLed1->BlinkTimes = 12;
+                               pLed1->BlinkingLedState = LED_BLINK_SCAN;
+                               _set_timer(&(pLed1->BlinkTimer), LED_BLINK_LINK_SLOWLY_INTERVAL_NETGEAR);
+
+                       }
+                       break;
+
+               case LED_CTL_START_WPS: //wait until xinpin finish
+               case LED_CTL_START_WPS_BOTTON:
+                       //LED0 settings
+                       if(pLed->bLedBlinkInProgress == _FALSE)
+                       {
+                               pLed->bLedBlinkInProgress = _TRUE;
+                               pLed->bLedWPSBlinkInProgress = _TRUE;
+                               pLed->BlinkingLedState = LED_BLINK_WPS;
+                               pLed->CurrLedState = LED_BLINK_WPS;
+                               _set_timer(&(pLed->BlinkTimer), 0);
+                       }
+
+                       //LED1 settings
+                       if(pLed1->bLedBlinkInProgress == _FALSE)
+                       {
+                               pLed1->bLedBlinkInProgress = _TRUE;
+                               pLed1->bLedWPSBlinkInProgress = _TRUE;
+                               pLed1->BlinkingLedState = LED_BLINK_WPS;
+                               pLed1->CurrLedState = LED_BLINK_WPS;
+                               _set_timer(&(pLed1->BlinkTimer), LED_BLINK_NORMAL_INTERVAL+LED_BLINK_LINK_INTERVAL_NETGEAR);
+                       }
+
+
+                       break;
+
+               case LED_CTL_STOP_WPS:  //WPS connect success
+                       if(pHalData->CurrentBandType == BAND_ON_2_4G)
+                       //LED0 settings
+                       {
+                               pLed->bLedWPSBlinkInProgress = _FALSE;
+                               pLed->CurrLedState = RTW_LED_ON;
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                               if(pLed->bLedBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedBlinkInProgress = _FALSE;
+                               }
+                               _set_timer(&(pLed->BlinkTimer), 0);
+
+                               pLed1->CurrLedState = RTW_LED_OFF;
+                               pLed1->BlinkingLedState = RTW_LED_OFF;
+                               _set_timer(&(pLed1->BlinkTimer), 0);
+                       }
+                       else if(pHalData->CurrentBandType == BAND_ON_5G)
+                       //LED1 settings
+                       {
+                               pLed1->bLedWPSBlinkInProgress = _FALSE;
+                               pLed1->CurrLedState = RTW_LED_ON;
+                               pLed1->BlinkingLedState = RTW_LED_ON;
+                               if(pLed1->bLedBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed1->BlinkTimer));
+                                       pLed1->bLedBlinkInProgress = _FALSE;
+                               }
+                               _set_timer(&(pLed1->BlinkTimer), 0);
+
+                               pLed->CurrLedState = RTW_LED_OFF;
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                               _set_timer(&(pLed->BlinkTimer), 0);
+                       }
+
+                       break;
+
+               case LED_CTL_STOP_WPS_FAIL:             //WPS authentication fail       
+                       //LED1 settings
+                       pLed1->bLedWPSBlinkInProgress = _FALSE;
+                       pLed1->CurrLedState = RTW_LED_OFF;
+                       pLed1->BlinkingLedState = RTW_LED_OFF; 
+                       _set_timer(&(pLed1->BlinkTimer), 0);
+
+                       //LED0 settings
+                       pLed->bLedWPSBlinkInProgress = _FALSE;
+                       pLed->CurrLedState = RTW_LED_OFF;
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+                       if( pLed->bLedOn )
+                               _set_timer(&(pLed->BlinkTimer), 0);
+
+                       break;
+
+
+               default:
+                       break;
+
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 10 Led %d\n", pLed->CurrLedState));
+}
+
+ //Edimax-ASUS, added by Page, 20121221
+void
+SwLedControlMode11(
+       PADAPTER                        Adapter,
+       LED_CTL_MODE            LedAction
+)
+{
+       struct led_priv *ledpriv = &(Adapter->ledpriv);
+       struct mlme_priv        *pmlmepriv = &Adapter->mlmepriv;
+       PLED_USB        pLed = &(ledpriv->SwLed0);
+
+       switch(LedAction)
+       {       
+               case LED_CTL_POWER_ON:
+               case LED_CTL_START_TO_LINK:     
+               case LED_CTL_NO_LINK:
+                       pLed->CurrLedState = RTW_LED_ON;
+                       pLed->BlinkingLedState = RTW_LED_ON;
+                       _set_timer(&(pLed->BlinkTimer), 0);
+                       break;
+
+               case LED_CTL_LINK:
+                       if( pLed->bLedBlinkInProgress == _TRUE )
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       pLed->bLedBlinkInProgress = _TRUE;
+                       pLed->CurrLedState = LED_BLINK_TXRX;
+                       if( pLed->bLedOn )
+                               pLed->BlinkingLedState = RTW_LED_OFF; 
+                       else
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
+                       break;
+
+               case LED_CTL_START_WPS: //wait until xinpin finish
+               case LED_CTL_START_WPS_BOTTON:
+                       if(pLed->bLedBlinkInProgress == _TRUE)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       pLed->bLedWPSBlinkInProgress = _TRUE;
+                       pLed->bLedBlinkInProgress = _TRUE;
+                       pLed->CurrLedState = LED_BLINK_WPS;
+                       if( pLed->bLedOn )
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                       else
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                       pLed->BlinkTimes = 5;
+                       _set_timer(&(pLed->BlinkTimer), 0);
+
+                       break;
+
+
+               case LED_CTL_STOP_WPS:
+               case LED_CTL_STOP_WPS_FAIL:
+                       if(pLed->bLedBlinkInProgress == _TRUE)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       pLed->CurrLedState = LED_BLINK_WPS_STOP;
+                       _set_timer(&(pLed->BlinkTimer), 0);
+                       break;
+
+               case LED_CTL_POWER_OFF:
+                       pLed->CurrLedState = RTW_LED_OFF;
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+
+                       if( pLed->bLedNoLinkBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedNoLinkBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedLinkBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedLinkBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedWPSBlinkInProgress )
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedWPSBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedScanBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedScanBlinkInProgress = _FALSE;
+                       }
+
+                       SwLedOff(Adapter, pLed);
+                       break;
+
+               default:
+                       break;
+
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led mode 1 CurrLedState %d\n", pLed->CurrLedState));
+}
+
+// page added for NEC
+
+VOID
+SwLedControlMode12(
+       PADAPTER                        Adapter,
+       LED_CTL_MODE            LedAction
+)
+{
+       struct led_priv *ledpriv = &(Adapter->ledpriv);
+       struct mlme_priv        *pmlmepriv = &Adapter->mlmepriv;
+       PLED_USB        pLed = &(ledpriv->SwLed0);
+
+       switch(LedAction)
+       {
+               case LED_CTL_POWER_ON:
+               case LED_CTL_NO_LINK:
+               case LED_CTL_LINK:
+               case LED_CTL_SITE_SURVEY:
+
+                       if( pLed->bLedNoLinkBlinkInProgress == _FALSE )
+                       {
+                               if(pLed->bLedBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedBlinkInProgress = _FALSE;
+                               }
+
+                               pLed->bLedNoLinkBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_SLOWLY;
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
+                       }
+                       break;
+
+               case LED_CTL_TX:
+               case LED_CTL_RX:
+                       if(pLed->bLedBlinkInProgress == _FALSE)
+                       {
+                               if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedNoLinkBlinkInProgress = _FALSE;
+                               }
+                               pLed->bLedBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_TXRX;
+                               pLed->BlinkTimes = 2;
+                               if( pLed->bLedOn )
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                               else
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                       }
+                       break;
+
+               case LED_CTL_POWER_OFF:
+                       pLed->CurrLedState = RTW_LED_OFF;
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+
+                       if( pLed->bLedBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+
+                       if( pLed->bLedScanBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedScanBlinkInProgress = _FALSE;
+                       }
+
+                       if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedNoLinkBlinkInProgress = _FALSE;
+                       }
+
+                       SwLedOff(Adapter, pLed);
+                       break;
+
+               default:
+                       break;
+
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SWLed12 %d\n", pLed->CurrLedState));
+}
+
+// Maddest add for NETGEAR R6100
+
+VOID
+SwLedControlMode13(
+       IN      PADAPTER                        Adapter,
+       IN      LED_CTL_MODE            LedAction
+)
+{
+       struct led_priv *ledpriv = &(Adapter->ledpriv);
+       struct mlme_priv        *pmlmepriv = &Adapter->mlmepriv;
+       PLED_USB        pLed = &(ledpriv->SwLed0);
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 13 CurrLedState %d, LedAction %d\n", pLed->CurrLedState,LedAction));
+       switch(LedAction)
+       {               
+               case LED_CTL_LINK:
+                       if(pLed->bLedWPSBlinkInProgress)
+                       {
+                               return; 
+                       }
+
+                       
+                       pLed->CurrLedState = RTW_LED_ON;
+                       pLed->BlinkingLedState = RTW_LED_ON;
+                       if( pLed->bLedBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedScanBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedScanBlinkInProgress = _FALSE;
+                       }                       
+
+                       _set_timer(&(pLed->BlinkTimer), 0);
+                       break;                  
+
+               case LED_CTL_START_WPS: //wait until xinpin finish
+               case LED_CTL_START_WPS_BOTTON:  
+                       if(pLed->bLedWPSBlinkInProgress == _FALSE)
+                       {
+                               if(pLed->bLedBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedBlinkInProgress = _FALSE;
+                               }
+                               if(pLed->bLedScanBlinkInProgress == _TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedScanBlinkInProgress = _FALSE;
+                               }                               
+                               pLed->bLedWPSBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_WPS;
+                               if( pLed->bLedOn )
+                               {
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                                       _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_OFF_INTERVAL_NETGEAR);
+                               }
+                               else
+                               {
+                                       pLed->BlinkingLedState = RTW_LED_ON; 
+                                       _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_ON_INTERVAL_NETGEAR);
+                               }
+                       }       
+                       break;
+                       
+               case LED_CTL_STOP_WPS:  
+                       if(pLed->bLedWPSBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));                                                  
+                               pLed->bLedWPSBlinkInProgress = _FALSE;                          
+                       }                                               
+                       else
+                       {
+                               pLed->bLedWPSBlinkInProgress = _TRUE;
+                       }
+                       
+                       pLed->bLedWPSBlinkInProgress = _FALSE;          
+                       pLed->CurrLedState = LED_BLINK_WPS_STOP;
+                       if(pLed->bLedOn)
+                       {
+                               pLed->BlinkingLedState = RTW_LED_OFF;                   
+                                       
+                               _set_timer(&(pLed->BlinkTimer), 0);
+                       }                                       
+
+                       break;          
+
+                       
+               case LED_CTL_STOP_WPS_FAIL:             
+               case LED_CTL_STOP_WPS_FAIL_OVERLAP: //WPS session overlap
+                       if(pLed->bLedWPSBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));                                                  
+                               pLed->bLedWPSBlinkInProgress = _FALSE;                          
+                       }                       
+
+                       pLed->CurrLedState = RTW_LED_OFF;
+                       pLed->BlinkingLedState = RTW_LED_OFF;                           
+                       _set_timer(&(pLed->BlinkTimer), 0);     
+                       break;                          
+
+               case LED_CTL_START_TO_LINK:     
+                       if((pLed->bLedBlinkInProgress == _FALSE) && (pLed->bLedWPSBlinkInProgress == _FALSE)) 
+                       {
+                               pLed->bLedBlinkInProgress = _TRUE;
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                               pLed->CurrLedState = LED_BLINK_LINK_IN_PROCESS;
+
+                               _set_timer(&(pLed->BlinkTimer), 0);
+                       }
+                       break;  
+
+               case LED_CTL_NO_LINK:
+
+                       if(pLed->bLedWPSBlinkInProgress)
+                       {
+                               return; 
+                       }
+                       if( pLed->bLedBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedScanBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedScanBlinkInProgress = _FALSE;
+                       }                       
+                       //if(!IS_LED_BLINKING(pLed))
+                       {
+                               pLed->CurrLedState = RTW_LED_OFF;
+                               pLed->BlinkingLedState = RTW_LED_OFF;                           
+                               _set_timer(&(pLed->BlinkTimer), 0);                             
+                       }
+                       break;
+                       
+               case LED_CTL_POWER_OFF:
+               case LED_CTL_POWER_ON:
+                       pLed->CurrLedState = RTW_LED_OFF;
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+                       if( pLed->bLedBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedScanBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedScanBlinkInProgress = _FALSE;
+                       }                       
+                       if( pLed->bLedWPSBlinkInProgress )
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedWPSBlinkInProgress = _FALSE;
+                       }
+
+                       if (LedAction == LED_CTL_POWER_ON)
+                               _set_timer(&(pLed->BlinkTimer), 0);
+                       else
+                               SwLedOff(Adapter, pLed);
+                       break;
+                       
+               default:
+                       break;
+
+       }
+
+       
+}
+
+// Maddest add for DNI Buffalo
+
+VOID
+SwLedControlMode14(
+       IN      PADAPTER                        Adapter,
+       IN      LED_CTL_MODE            LedAction
+)
+{
+       struct led_priv *ledpriv = &(Adapter->ledpriv);
+       PLED_USB        pLed = &(ledpriv->SwLed0);
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 14 CurrLedState %d, LedAction %d\n", pLed->CurrLedState,LedAction));
+       switch(LedAction)
+       {                               
+               case LED_CTL_POWER_OFF:
+                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 14 LED_CTL_POWER_OFF\n"));
+                       pLed->CurrLedState = RTW_LED_OFF;
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+                       if( pLed->bLedBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }                       
+                       SwLedOff(Adapter, pLed);        
+                       break;
+
+               case LED_CTL_POWER_ON:
+                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 14 LED_CTL_POWER_ON\n"));
+                       SwLedOn(Adapter, pLed);
+                       break;
+
+               case LED_CTL_LINK:
+               case LED_CTL_NO_LINK:
+                       if (IS_HARDWARE_TYPE_8812AU(Adapter))
+                               SwLedOn(Adapter, pLed);
+                       break;
+
+               case LED_CTL_TX:
+               case LED_CTL_RX:
+                       if(pLed->bLedBlinkInProgress ==_FALSE)
+                       {
+                               pLed->bLedBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_TXRX;
+                               pLed->BlinkTimes = 2;
+                               if( pLed->bLedOn )
+                               {
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                                       if (IS_HARDWARE_TYPE_8812AU(Adapter))
+                                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
+                                       else
+                                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                               }
+                               else
+                               {
+                                       pLed->BlinkingLedState = RTW_LED_ON;
+                                       if (IS_HARDWARE_TYPE_8812AU(Adapter))
+                                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
+                                       else
+                                               _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                               }
+                       }
+                       break;
+
+               default:
+                       break;
+       }
+}
+
+// Maddest add for Dlink
+
+VOID
+SwLedControlMode15(
+       IN      PADAPTER                        Adapter,
+       IN      LED_CTL_MODE            LedAction
+)
+{
+       struct led_priv *ledpriv = &(Adapter->ledpriv);
+       struct mlme_priv        *pmlmepriv = &Adapter->mlmepriv;
+       PLED_USB        pLed = &(ledpriv->SwLed0);
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 CurrLedState %d, LedAction %d\n", pLed->CurrLedState,LedAction));
+       switch(LedAction)
+       {               
+               case LED_CTL_START_WPS: //wait until xinpin finish
+               case LED_CTL_START_WPS_BOTTON:  
+                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 LED_CTL_START_WPS\n"));
+                       if(pLed->bLedWPSBlinkInProgress ==_FALSE)
+                       {
+                               if(pLed->bLedBlinkInProgress ==_TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedBlinkInProgress = _FALSE;
+                               }
+                               if(pLed->bLedScanBlinkInProgress ==_TRUE)
+                               {
+                                       _cancel_timer_ex(&(pLed->BlinkTimer));
+                                       pLed->bLedScanBlinkInProgress = _FALSE;
+                               }                               
+                               pLed->bLedWPSBlinkInProgress = _TRUE;
+                               pLed->CurrLedState = LED_BLINK_WPS;
+                               if( pLed->bLedOn )
+                               {
+                                       pLed->BlinkingLedState = RTW_LED_OFF;
+                                       _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_OFF_INTERVAL_NETGEAR);
+                               }
+                               else
+                               {
+                                       pLed->BlinkingLedState = RTW_LED_ON; 
+                                       _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_ON_INTERVAL_NETGEAR);
+                               }
+                       }       
+                       break;
+                       
+               case LED_CTL_STOP_WPS:  
+                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 LED_CTL_STOP_WPS\n"));
+                       if(pLed->bLedWPSBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));                                                                          
+                       }                                               
+                       
+                       pLed->CurrLedState = LED_BLINK_WPS_STOP;
+                       //if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
+                       {
+                               pLed->BlinkingLedState = RTW_LED_ON;                    
+                                       
+                               _set_timer(&(pLed->BlinkTimer), 0);
+                       }                                       
+
+                       break;
+
+               case LED_CTL_STOP_WPS_FAIL:             
+               case LED_CTL_STOP_WPS_FAIL_OVERLAP: //WPS session overlap
+                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 LED_CTL_STOP_WPS_FAIL\n"));
+                       if(pLed->bLedWPSBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedWPSBlinkInProgress = _FALSE;
+                       }                       
+
+                       pLed->CurrLedState = RTW_LED_OFF;
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+                       _set_timer(&(pLed->BlinkTimer), 0);
+                       break;
+
+               case LED_CTL_NO_LINK:
+                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 LED_CTL_NO_LINK\n"));
+                       if(pLed->bLedWPSBlinkInProgress)
+                       {
+                               return; 
+                       }
+
+                       /*if(Adapter->securitypriv.dot11PrivacyAlgrthm > _NO_PRIVACY_)
+                       {
+                               if(SecIsTxKeyInstalled(Adapter, pMgntInfo->Bssid))
+                               {
+                               }
+                               else
+                               {
+                                       if(pMgntInfo->LEDAssocState ==LED_ASSOC_SECURITY_BEGIN)
+                                               return; 
+                               }
+                       }*/
+
+                       if( pLed->bLedBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       if( pLed->bLedScanBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedScanBlinkInProgress = _FALSE;
+                       }                       
+                       //if(!IS_LED_BLINKING(pLed))
+                       {
+                               pLed->CurrLedState = LED_BLINK_NO_LINK;
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                               _set_timer(&(pLed->BlinkTimer), 30);
+                       }
+                       break;
+
+               case LED_CTL_LINK: 
+                       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 LED_CTL_LINK\n"));
+
+                       if(pLed->bLedWPSBlinkInProgress)
+                       {
+                               return; 
+                       }
+
+                       if( pLed->bLedBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+
+                       pLed->CurrLedState = LED_BLINK_LINK_IDEL;
+                       pLed->BlinkingLedState = RTW_LED_ON;
+
+                       _set_timer(&(pLed->BlinkTimer), 30);
+                       break;  
+
+               case LED_CTL_SITE_SURVEY        :
+                       if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
+                               return;
+
+                       if(pLed->bLedWPSBlinkInProgress ==_TRUE)
+                               return;
+                       
+                       if( pLed->bLedBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }
+                       pLed->CurrLedState = LED_BLINK_SCAN;
+                       pLed->BlinkingLedState = RTW_LED_ON;                            
+                       _set_timer(&(pLed->BlinkTimer), 0);     
+                       break;
+
+               case LED_CTL_TX:
+               case LED_CTL_RX:
+                       if(pLed->bLedWPSBlinkInProgress)
+                       {
+                               return; 
+                       }
+
+                       if( pLed->bLedBlinkInProgress)
+                       {
+                               _cancel_timer_ex(&(pLed->BlinkTimer));
+                               pLed->bLedBlinkInProgress = _FALSE;
+                       }                       
+
+                       pLed->bLedBlinkInProgress = _TRUE;
+                       pLed->CurrLedState = LED_BLINK_TXRX;
+                       pLed->BlinkTimes = 2;
+                       if( pLed->bLedOn )
+                               pLed->BlinkingLedState = RTW_LED_OFF; 
+                       else
+                               pLed->BlinkingLedState = RTW_LED_ON; 
+                       _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
+                       break;                  
+
+               default:
+                       break;
+       }
+}
+
+void
+LedControlUSB(
+       _adapter                                *padapter,
+       LED_CTL_MODE            LedAction
+       )
+{
+       struct led_priv *ledpriv = &(padapter->ledpriv);
+
+#if(MP_DRIVER == 1)
+       if (padapter->registrypriv.mp_mode == 1)
+               return;
+#endif
+
+       if (RTW_CANNOT_RUN(padapter) || (!rtw_is_hw_init_completed(padapter))) {
+               /*DBG_871X("%s bDriverStopped:%s, bSurpriseRemoved:%s\n"
+               , __func__
+               , rtw_is_drv_stopped(padapter)?"True":"False"
+               , rtw_is_surprise_removed(padapter)?"True":"False" );*/
+               return;
+       }
+
+       if( ledpriv->bRegUseLed == _FALSE)
+               return;
+
+       //if(priv->bInHctTest)
+       //      return;
+
+#ifdef CONFIG_CONCURRENT_MODE
+       // Only do led action for PRIMARY_ADAPTER
+       if (padapter->adapter_type != PRIMARY_ADAPTER)
+               return;
+#endif
+
+       if( (adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on &&
+               adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS) &&
+               (LedAction == LED_CTL_TX || LedAction == LED_CTL_RX ||
+                LedAction == LED_CTL_SITE_SURVEY ||
+                LedAction == LED_CTL_LINK ||
+                LedAction == LED_CTL_NO_LINK ||
+                LedAction == LED_CTL_POWER_ON) )
+       {
+               return;
+       }
+
+       switch(ledpriv->LedStrategy)
+       {
+               case SW_LED_MODE0:
+                       SwLedControlMode0(padapter, LedAction);
+                       break;
+
+               case SW_LED_MODE1:
+                       SwLedControlMode1(padapter, LedAction);
+                       break;
+
+               case SW_LED_MODE2:
+                       SwLedControlMode2(padapter, LedAction);
+                       break;
+
+               case SW_LED_MODE3:
+                       SwLedControlMode3(padapter, LedAction);
+                       break;
+
+               case SW_LED_MODE4:
+                       SwLedControlMode4(padapter, LedAction);
+                       break;
+
+               case SW_LED_MODE5:
+                       SwLedControlMode5(padapter, LedAction);
+                       break;
+
+               case SW_LED_MODE6:
+                       SwLedControlMode6(padapter, LedAction);
+                       break;
+
+               case SW_LED_MODE7:
+                       SwLedControlMode7(padapter, LedAction);
+                       break;
+
+               case SW_LED_MODE8:
+                       SwLedControlMode8(padapter, LedAction);
+                       break;
+
+               case SW_LED_MODE9:
+                       SwLedControlMode9(padapter, LedAction);
+                       break;
+
+               case SW_LED_MODE10:
+                       SwLedControlMode10(padapter, LedAction);
+                       break;
+
+               case SW_LED_MODE11:
+                       SwLedControlMode11(padapter, LedAction);
+                       break;
+
+               case SW_LED_MODE12:
+                       SwLedControlMode12(padapter, LedAction);
+                       break;
+
+               case SW_LED_MODE13:
+                       SwLedControlMode13(padapter, LedAction);
+                       break;
+
+               case SW_LED_MODE14:
+                       SwLedControlMode14(padapter, LedAction);
+                       break;
+
+               case SW_LED_MODE15:
+                       SwLedControlMode15(padapter, LedAction);
+                       break;
+
+               default:
+                       break;
+       }
+
+       RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("LedStrategy:%d, LedAction %d\n", ledpriv->LedStrategy,LedAction));
+}
+
+//
+//     Description:
+//             Reset status of LED_871x object.
+//
+void ResetLedStatus(PLED_USB pLed) {
+
+       pLed->CurrLedState = RTW_LED_OFF; // Current LED state.
+       pLed->bLedOn = _FALSE; // true if LED is ON, false if LED is OFF.
+
+       pLed->bLedBlinkInProgress = _FALSE; // true if it is blinking, false o.w..
+       pLed->bLedWPSBlinkInProgress = _FALSE;
+       
+       pLed->BlinkTimes = 0; // Number of times to toggle led state for blinking.
+       pLed->BlinkCounter = 0;
+       pLed->BlinkingLedState = LED_UNKNOWN; // Next state for blinking, either RTW_LED_ON or RTW_LED_OFF are.
+
+       pLed->bLedNoLinkBlinkInProgress = _FALSE;
+       pLed->bLedLinkBlinkInProgress = _FALSE;
+       pLed->bLedStartToLinkBlinkInProgress = _FALSE;
+       pLed->bLedScanBlinkInProgress = _FALSE;
+}
+
+ //
+//     Description:
+//             Initialize an LED_871x object.
+//
+void
+InitLed(
+       _adapter                        *padapter,
+       PLED_USB                pLed,
+       LED_PIN                 LedPin
+       )
+{
+       pLed->padapter = padapter;
+       pLed->LedPin = LedPin;
+
+       ResetLedStatus(pLed);
+       ATOMIC_SET(&pLed->bCancelWorkItem, _FALSE);
+       _init_timer(&(pLed->BlinkTimer), padapter->pnetdev, BlinkTimerCallback, pLed);
+       _init_workitem(&(pLed->BlinkWorkItem), BlinkWorkItemCallback, pLed);
+}
+
+
+//
+//     Description:
+//             DeInitialize an LED_871x object.
+//
+void
+DeInitLed(
+       PLED_USB                pLed
+       )
+{
+       ATOMIC_SET(&pLed->bCancelWorkItem, _TRUE);
+       _cancel_workitem_sync(&(pLed->BlinkWorkItem));
+       _cancel_timer_ex(&(pLed->BlinkTimer));
+       ResetLedStatus(pLed);
+}
+
+