staging: r8188eu: merge blink_work and SwLedBlink1
authorMartin Kaiser <martin@kaiser.cx>
Sun, 26 Dec 2021 19:55:54 +0000 (20:55 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 28 Dec 2021 16:12:35 +0000 (17:12 +0100)
blink_work is the only caller of SwLedBlink1. Merge the two functions.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20211226195556.159471-20-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/r8188eu/core/rtw_led.c

index d1fdd5a..2b550e5 100644 (file)
@@ -62,108 +62,6 @@ exit:
        pLed->bLedOn = false;
 }
 
-static void SwLedBlink1(struct LED_871x *pLed)
-{
-       struct adapter *padapter = pLed->padapter;
-       struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-
-       /*  Change LED according to BlinkingLedState specified. */
-       if (pLed->BlinkingLedState == RTW_LED_ON)
-               SwLedOn(padapter, pLed);
-       else
-               SwLedOff(padapter, pLed);
-
-       if (padapter->pwrctrlpriv.rf_pwrstate != rf_on) {
-               SwLedOff(padapter, pLed);
-               ResetLedStatus(pLed);
-               return;
-       }
-
-       switch (pLed->CurrLedState) {
-       case LED_BLINK_SLOWLY:
-               if (pLed->bLedOn)
-                       pLed->BlinkingLedState = RTW_LED_OFF;
-               else
-                       pLed->BlinkingLedState = RTW_LED_ON;
-               schedule_delayed_work(&pLed->blink_work, LED_BLINK_NO_LINK_INTVL);
-               break;
-       case LED_BLINK_NORMAL:
-               if (pLed->bLedOn)
-                       pLed->BlinkingLedState = RTW_LED_OFF;
-               else
-                       pLed->BlinkingLedState = RTW_LED_ON;
-               schedule_delayed_work(&pLed->blink_work, LED_BLINK_LINK_INTVL);
-               break;
-       case LED_BLINK_SCAN:
-               if (pLed->bLedOn)
-                       pLed->BlinkingLedState = RTW_LED_OFF;
-               else
-                       pLed->BlinkingLedState = RTW_LED_ON;
-               pLed->BlinkTimes--;
-               if (pLed->BlinkTimes == 0) {
-                       if (check_fwstate(pmlmepriv, _FW_LINKED)) {
-                               pLed->bLedLinkBlinkInProgress = true;
-                               pLed->CurrLedState = LED_BLINK_NORMAL;
-                               schedule_delayed_work(&pLed->blink_work, LED_BLINK_LINK_INTVL);
-                       } else if (!check_fwstate(pmlmepriv, _FW_LINKED)) {
-                               pLed->bLedNoLinkBlinkInProgress = true;
-                               pLed->CurrLedState = LED_BLINK_SLOWLY;
-                               schedule_delayed_work(&pLed->blink_work, LED_BLINK_NO_LINK_INTVL);
-                       }
-                       pLed->bLedScanBlinkInProgress = false;
-               } else {
-                       schedule_delayed_work(&pLed->blink_work, LED_BLINK_SCAN_INTVL);
-               }
-               break;
-       case LED_BLINK_TXRX:
-               if (pLed->bLedOn)
-                       pLed->BlinkingLedState = RTW_LED_OFF;
-               else
-                       pLed->BlinkingLedState = RTW_LED_ON;
-               pLed->BlinkTimes--;
-               if (pLed->BlinkTimes == 0) {
-                       if (check_fwstate(pmlmepriv, _FW_LINKED)) {
-                               pLed->bLedLinkBlinkInProgress = true;
-                               pLed->CurrLedState = LED_BLINK_NORMAL;
-                               schedule_delayed_work(&pLed->blink_work, LED_BLINK_LINK_INTVL);
-                       } else if (!check_fwstate(pmlmepriv, _FW_LINKED)) {
-                               pLed->bLedNoLinkBlinkInProgress = true;
-                               pLed->CurrLedState = LED_BLINK_SLOWLY;
-                               schedule_delayed_work(&pLed->blink_work, LED_BLINK_NO_LINK_INTVL);
-                       }
-                       pLed->bLedBlinkInProgress = false;
-               } else {
-                       schedule_delayed_work(&pLed->blink_work, LED_BLINK_FASTER_INTVL);
-               }
-               break;
-       case LED_BLINK_WPS:
-               if (pLed->bLedOn)
-                       pLed->BlinkingLedState = RTW_LED_OFF;
-               else
-                       pLed->BlinkingLedState = RTW_LED_ON;
-               schedule_delayed_work(&pLed->blink_work, LED_BLINK_SCAN_INTVL);
-               break;
-       case LED_BLINK_WPS_STOP:        /* WPS success */
-               if (pLed->BlinkingLedState != RTW_LED_ON) {
-                       pLed->bLedLinkBlinkInProgress = true;
-                       pLed->CurrLedState = LED_BLINK_NORMAL;
-                       if (pLed->bLedOn)
-                               pLed->BlinkingLedState = RTW_LED_OFF;
-                       else
-                               pLed->BlinkingLedState = RTW_LED_ON;
-                       schedule_delayed_work(&pLed->blink_work, LED_BLINK_LINK_INTVL);
-
-                       pLed->bLedWPSBlinkInProgress = false;
-               } else {
-                       pLed->BlinkingLedState = RTW_LED_OFF;
-                       schedule_delayed_work(&pLed->blink_work, LED_BLINK_WPS_SUCESS_INTVL);
-               }
-               break;
-       default:
-               break;
-       }
-}
-
 static void SwLedControlMode1(struct adapter *padapter, enum LED_CTL_MODE LedAction)
 {
        struct led_priv *ledpriv = &padapter->ledpriv;
@@ -371,11 +269,106 @@ static void blink_work(struct work_struct *work)
        struct delayed_work *dwork = to_delayed_work(work);
        struct LED_871x *pLed = container_of(dwork, struct LED_871x, blink_work);
        struct adapter *padapter = pLed->padapter;
+       struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
 
        if ((padapter->bSurpriseRemoved) || (padapter->bDriverStopped))
                return;
 
-       SwLedBlink1(pLed);
+       /*  Change LED according to BlinkingLedState specified. */
+       if (pLed->BlinkingLedState == RTW_LED_ON)
+               SwLedOn(padapter, pLed);
+       else
+               SwLedOff(padapter, pLed);
+
+       if (padapter->pwrctrlpriv.rf_pwrstate != rf_on) {
+               SwLedOff(padapter, pLed);
+               ResetLedStatus(pLed);
+               return;
+       }
+
+       switch (pLed->CurrLedState) {
+       case LED_BLINK_SLOWLY:
+               if (pLed->bLedOn)
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+               else
+                       pLed->BlinkingLedState = RTW_LED_ON;
+               schedule_delayed_work(&pLed->blink_work, LED_BLINK_NO_LINK_INTVL);
+               break;
+       case LED_BLINK_NORMAL:
+               if (pLed->bLedOn)
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+               else
+                       pLed->BlinkingLedState = RTW_LED_ON;
+               schedule_delayed_work(&pLed->blink_work, LED_BLINK_LINK_INTVL);
+               break;
+       case LED_BLINK_SCAN:
+               if (pLed->bLedOn)
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+               else
+                       pLed->BlinkingLedState = RTW_LED_ON;
+               pLed->BlinkTimes--;
+               if (pLed->BlinkTimes == 0) {
+                       if (check_fwstate(pmlmepriv, _FW_LINKED)) {
+                               pLed->bLedLinkBlinkInProgress = true;
+                               pLed->CurrLedState = LED_BLINK_NORMAL;
+                               schedule_delayed_work(&pLed->blink_work, LED_BLINK_LINK_INTVL);
+                       } else if (!check_fwstate(pmlmepriv, _FW_LINKED)) {
+                               pLed->bLedNoLinkBlinkInProgress = true;
+                               pLed->CurrLedState = LED_BLINK_SLOWLY;
+                               schedule_delayed_work(&pLed->blink_work, LED_BLINK_NO_LINK_INTVL);
+                       }
+                       pLed->bLedScanBlinkInProgress = false;
+               } else {
+                       schedule_delayed_work(&pLed->blink_work, LED_BLINK_SCAN_INTVL);
+               }
+               break;
+       case LED_BLINK_TXRX:
+               if (pLed->bLedOn)
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+               else
+                       pLed->BlinkingLedState = RTW_LED_ON;
+               pLed->BlinkTimes--;
+               if (pLed->BlinkTimes == 0) {
+                       if (check_fwstate(pmlmepriv, _FW_LINKED)) {
+                               pLed->bLedLinkBlinkInProgress = true;
+                               pLed->CurrLedState = LED_BLINK_NORMAL;
+                               schedule_delayed_work(&pLed->blink_work, LED_BLINK_LINK_INTVL);
+                       } else if (!check_fwstate(pmlmepriv, _FW_LINKED)) {
+                               pLed->bLedNoLinkBlinkInProgress = true;
+                               pLed->CurrLedState = LED_BLINK_SLOWLY;
+                               schedule_delayed_work(&pLed->blink_work, LED_BLINK_NO_LINK_INTVL);
+                       }
+                       pLed->bLedBlinkInProgress = false;
+               } else {
+                       schedule_delayed_work(&pLed->blink_work, LED_BLINK_FASTER_INTVL);
+               }
+               break;
+       case LED_BLINK_WPS:
+               if (pLed->bLedOn)
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+               else
+                       pLed->BlinkingLedState = RTW_LED_ON;
+               schedule_delayed_work(&pLed->blink_work, LED_BLINK_SCAN_INTVL);
+               break;
+       case LED_BLINK_WPS_STOP:        /* WPS success */
+               if (pLed->BlinkingLedState != RTW_LED_ON) {
+                       pLed->bLedLinkBlinkInProgress = true;
+                       pLed->CurrLedState = LED_BLINK_NORMAL;
+                       if (pLed->bLedOn)
+                               pLed->BlinkingLedState = RTW_LED_OFF;
+                       else
+                               pLed->BlinkingLedState = RTW_LED_ON;
+                       schedule_delayed_work(&pLed->blink_work, LED_BLINK_LINK_INTVL);
+
+                       pLed->bLedWPSBlinkInProgress = false;
+               } else {
+                       pLed->BlinkingLedState = RTW_LED_OFF;
+                       schedule_delayed_work(&pLed->blink_work, LED_BLINK_WPS_SUCESS_INTVL);
+               }
+               break;
+       default:
+               break;
+       }
 }
 
 void rtl8188eu_InitSwLeds(struct adapter *padapter)