8723BU: Update 8723BU wifi driver to version v4.3.16_14189.20150519_BTCOEX2015119...
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rtl8723bu / hal / led / hal_usb_led.c
index 6706e0101c86b65882916baae84bb585c94184b3..4827b9b212535ba3eecc908f5dd2da2f135cd295 100755 (executable)
@@ -149,17 +149,17 @@ SwLedBlink1(
        )\r
 {\r
        _adapter                                *padapter = pLed->padapter;\r
-       EEPROM_EFUSE_PRIV       *pEEPROM = GET_EEPROM_EFUSE_PRIV(padapter);\r
+       PHAL_DATA_TYPE          pHalData = GET_HAL_DATA(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
+       if(pHalData->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
+       if(pHalData->CustomerID == RT_CID_819x_CAMEO)\r
                pLed = &(ledpriv->SwLed1);\r
 \r
        // Change LED according to BlinkingLedState specified.\r
@@ -175,7 +175,7 @@ SwLedBlink1(
        }\r
 \r
 \r
-       if(pEEPROM->CustomerID == RT_CID_DEFAULT)\r
+       if(pHalData->CustomerID == RT_CID_DEFAULT)\r
        {\r
                if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)\r
                {\r
@@ -795,18 +795,12 @@ SwLedBlink4(
                                }\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
+                                       \r
+                                       if( pLed->bLedOn )\r
+                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
                                        else\r
-                                       {\r
-                                               if( pLed->bLedOn )\r
-                                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                               else\r
-                                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       }\r
+                                               pLed->BlinkingLedState = RTW_LED_ON;\r
+                                       \r
                                        _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
                                }\r
                        }\r
@@ -879,20 +873,13 @@ SwLedBlink4(
                                }\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
+                                       pLed->bLedNoLinkBlinkInProgress = _TRUE;\r
+                                       pLed->CurrLedState = LED_BLINK_SLOWLY;\r
+                                       if( pLed->bLedOn )\r
+                                               pLed->BlinkingLedState = RTW_LED_OFF;\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
+                                               pLed->BlinkingLedState = RTW_LED_ON;\r
+                                       \r
                                        _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);\r
                                }\r
                                pLed->bLedBlinkInProgress = _FALSE;\r
@@ -906,17 +893,11 @@ SwLedBlink4(
                                }\r
                                else\r
                                {\r
-                                       if(IS_HARDWARE_TYPE_8192DU(padapter))\r
-                                       {\r
-                                               pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       }\r
+                                       if( pLed->bLedOn )\r
+                                               pLed->BlinkingLedState = RTW_LED_OFF;\r
                                        else\r
-                                       {\r
-                                               if( pLed->bLedOn )\r
-                                                       pLed->BlinkingLedState = RTW_LED_OFF;\r
-                                               else\r
-                                                       pLed->BlinkingLedState = RTW_LED_ON;\r
-                                       }\r
+                                               pLed->BlinkingLedState = RTW_LED_ON;\r
+                                       \r
                                        _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
                                }\r
                        }\r
@@ -1354,18 +1335,11 @@ SwLedBlink9(
                                }\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
+                                       if( pLed->bLedOn )\r
+                                               pLed->BlinkingLedState = RTW_LED_OFF; \r
                                        else\r
-                                       {\r
-                                                if( pLed->bLedOn )\r
-                                                       pLed->BlinkingLedState = RTW_LED_OFF; \r
-                                               else\r
-                                                       pLed->BlinkingLedState = RTW_LED_ON; \r
-                                       }\r
+                                               pLed->BlinkingLedState = RTW_LED_ON; \r
+                                       \r
                                        _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);\r
                                }\r
                        }\r
@@ -1448,7 +1422,7 @@ SwLedBlink9(
                                }\r
                                else \r
                                {\r
-                                       if(IS_HARDWARE_TYPE_8192DU(Adapter) || IS_HARDWARE_TYPE_8812AU(Adapter))\r
+                                       if(IS_HARDWARE_TYPE_8812AU(Adapter))\r
                                        {\r
                                                pLed->BlinkingLedState = RTW_LED_ON; \r
                                                pLed->CurrLedState = LED_BLINK_ALWAYS_ON;\r
@@ -1475,7 +1449,7 @@ SwLedBlink9(
                                }\r
                                else\r
                                {\r
-                                       if(IS_HARDWARE_TYPE_8192DU(Adapter) || IS_HARDWARE_TYPE_8723AU(Adapter) || IS_HARDWARE_TYPE_8812AU(Adapter))\r
+                                       if(IS_HARDWARE_TYPE_8812AU(Adapter))\r
                                        {\r
                                                pLed->BlinkingLedState = RTW_LED_ON; \r
                                        }\r
@@ -1716,7 +1690,7 @@ SwLedBlink10(
                                }\r
                                else\r
                                {\r
-                                       if(IS_HARDWARE_TYPE_8192DU(Adapter) || IS_HARDWARE_TYPE_8812AU(Adapter))\r
+                                       if(IS_HARDWARE_TYPE_8812AU(Adapter))\r
                                        {\r
                                                pLed->BlinkingLedState = RTW_LED_ON;\r
                                                pLed->CurrLedState = LED_BLINK_ALWAYS_ON;\r
@@ -1743,7 +1717,7 @@ SwLedBlink10(
                                }\r
                                else\r
                                {\r
-                                       if(IS_HARDWARE_TYPE_8192DU(Adapter) || IS_HARDWARE_TYPE_8723AU(Adapter) || IS_HARDWARE_TYPE_8812AU(Adapter))\r
+                                       if(IS_HARDWARE_TYPE_8812AU(Adapter))\r
                                        {\r
                                                pLed->BlinkingLedState = RTW_LED_ON;\r
                                        }\r
@@ -2426,7 +2400,8 @@ void BlinkTimerCallback(void *data)
        #ifdef CONFIG_LED_HANDLED_BY_CMD_THREAD\r
        rtw_led_blink_cmd(padapter, (PVOID)pLed);\r
        #else\r
-       _set_workitem(&(pLed->BlinkWorkItem));\r
+       if(ATOMIC_READ(&pLed->bCancelWorkItem) == _FALSE)\r
+               _set_workitem(&(pLed->BlinkWorkItem));\r
        #endif\r
 }\r
 \r
@@ -2567,13 +2542,13 @@ SwLedControlMode1(
        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
+       PHAL_DATA_TYPE          pHalData = GET_HAL_DATA(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
+       if(pHalData->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
+       if(pHalData->CustomerID == RT_CID_819x_CAMEO)\r
                pLed = &(ledpriv->SwLed1);\r
 \r
        switch(LedAction)\r
@@ -3266,31 +3241,12 @@ SwLedControlMode4(
                                }\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
+                               pLed->CurrLedState = LED_BLINK_SLOWLY;\r
+                               if( pLed->bLedOn )\r
+                                       pLed->BlinkingLedState = RTW_LED_OFF;\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
+                                       pLed->BlinkingLedState = RTW_LED_ON;\r
+                               \r
                                _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);\r
                        }\r
                        break;\r
@@ -3314,10 +3270,7 @@ SwLedControlMode4(
                                        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->CurrLedState = LED_BLINK_SCAN;\r
                                pLed->BlinkTimes = 24;\r
                                if( pLed->bLedOn )\r
                                        pLed->BlinkingLedState = RTW_LED_OFF;\r
@@ -3556,10 +3509,10 @@ SwLedControlMode5(
 {\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
+       PHAL_DATA_TYPE  pHalData = GET_HAL_DATA(padapter);\r
        PLED_USB                pLed = &(ledpriv->SwLed0);\r
 \r
-       if(pEEPROM->CustomerID == RT_CID_819x_CAMEO)\r
+       if(pHalData->CustomerID == RT_CID_819x_CAMEO)\r
                pLed = &(ledpriv->SwLed1);\r
 \r
        switch(LedAction)\r
@@ -3975,7 +3928,7 @@ SwLedControlMode9(
                                }\r
                                \r
                                pLed->bLedNoLinkBlinkInProgress = _TRUE;\r
-                               if(IS_HARDWARE_TYPE_8192DU(Adapter) || IS_HARDWARE_TYPE_8812AU(Adapter))\r
+                               if(IS_HARDWARE_TYPE_8812AU(Adapter))\r
                                {\r
                                        if(LedAction == LED_CTL_LINK)\r
                                        {\r
@@ -4023,10 +3976,7 @@ SwLedControlMode9(
                                        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->CurrLedState = LED_BLINK_SCAN;\r
                                pLed->BlinkTimes = 24;\r
                                if( pLed->bLedOn )\r
                                        pLed->BlinkingLedState = RTW_LED_OFF; \r
@@ -5202,9 +5152,8 @@ InitLed(
        pLed->LedPin = LedPin;\r
 \r
        ResetLedStatus(pLed);\r
-\r
+       ATOMIC_SET(&pLed->bCancelWorkItem, _FALSE);\r
        _init_timer(&(pLed->BlinkTimer), padapter->pnetdev, BlinkTimerCallback, pLed);\r
-\r
        _init_workitem(&(pLed->BlinkWorkItem), BlinkWorkItemCallback, pLed);\r
 }\r
 \r
@@ -5218,6 +5167,7 @@ DeInitLed(
        PLED_USB                pLed\r
        )\r
 {\r
+       ATOMIC_SET(&pLed->bCancelWorkItem, _TRUE);\r
        _cancel_workitem_sync(&(pLed->BlinkWorkItem));\r
        _cancel_timer_ex(&(pLed->BlinkTimer));\r
        ResetLedStatus(pLed);\r