staging: r8188eu: simplify the code to prevent link blinking restart
authorMartin Kaiser <martin@kaiser.cx>
Sun, 11 Sep 2022 14:51:20 +0000 (16:51 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 24 Sep 2022 11:07:49 +0000 (13:07 +0200)
The blinking code to signal that a link is up has the same big if clause
around it as most other blink events.

Revert this if condition and exit if we're already blinking to show that
the link is up.

Tested-by: Philipp Hortmann <philipp.g.hortmann@gmail.com> # Edimax N150
Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20220911145122.15444-8-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/r8188eu/core/rtw_led.c

index 270880050c6420ec45fe8276c93cd82fc2d8bd06..7cd6ed5385bbf68e4c1508e9235f79aa886713f9 100644 (file)
@@ -237,25 +237,26 @@ void rtw_led_control(struct adapter *padapter, enum LED_CTL_MODE LedAction)
                schedule_delayed_work(&pLed->blink_work, LED_BLINK_NO_LINK_INTVL);
                break;
        case LED_CTL_LINK:
-               if (!pLed->bLedLinkBlinkInProgress) {
-                       if (pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
-                               return;
-                       if (pLed->bLedNoLinkBlinkInProgress) {
-                               cancel_delayed_work(&pLed->blink_work);
-                               pLed->bLedNoLinkBlinkInProgress = false;
-                       }
-                       if (pLed->bLedBlinkInProgress) {
-                               cancel_delayed_work(&pLed->blink_work);
-                               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;
-                       schedule_delayed_work(&pLed->blink_work, LED_BLINK_LINK_INTVL);
+               if (!pLed->bLedLinkBlinkInProgress)
+                       return;
+
+               if (pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
+                       return;
+               if (pLed->bLedNoLinkBlinkInProgress) {
+                       cancel_delayed_work(&pLed->blink_work);
+                       pLed->bLedNoLinkBlinkInProgress = false;
+               }
+               if (pLed->bLedBlinkInProgress) {
+                       cancel_delayed_work(&pLed->blink_work);
+                       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;
+               schedule_delayed_work(&pLed->blink_work, LED_BLINK_LINK_INTVL);
                break;
        case LED_CTL_SITE_SURVEY:
                if ((pmlmepriv->LinkDetectInfo.bBusyTraffic) && (check_fwstate(pmlmepriv, _FW_LINKED)))