summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Kaiser <martin@kaiser.cx>2022-09-18 19:56:55 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-09-24 13:09:18 +0200
commitcb2b3460133cf5f91f79abb4d63812dc9be67004 (patch)
tree3b577d7080e9e9c804ae6b88cfd7fb41f6b9a021
parent9512d5f8e34fb7c92be6179dc48ba5f0b9b922ac (diff)
downloadlinux-cb2b3460133cf5f91f79abb4d63812dc9be67004.tar.bz2
staging: r8188eu: cancel blink_work during wps stop
We can always cancel blink_work during wps_stop. The blinking pattern will be updated to show that wps was successful. Another worker will be started for this. 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/20220918175700.215170-2-martin@kaiser.cx Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/staging/r8188eu/core/rtw_led.c27
1 files changed, 12 insertions, 15 deletions
diff --git a/drivers/staging/r8188eu/core/rtw_led.c b/drivers/staging/r8188eu/core/rtw_led.c
index 98eebe3e4119..389fb2cc7379 100644
--- a/drivers/staging/r8188eu/core/rtw_led.c
+++ b/drivers/staging/r8188eu/core/rtw_led.c
@@ -322,26 +322,23 @@ void rtw_led_control(struct adapter *padapter, enum LED_CTL_MODE LedAction)
schedule_delayed_work(&pLed->blink_work, LED_BLINK_SCAN_INTVL);
break;
case LED_CTL_STOP_WPS:
- if (pLed->bLedNoLinkBlinkInProgress) {
- cancel_delayed_work(&pLed->blink_work);
+ cancel_delayed_work(&pLed->blink_work);
+
+ if (pLed->bLedNoLinkBlinkInProgress)
pLed->bLedNoLinkBlinkInProgress = false;
- }
- if (pLed->bLedLinkBlinkInProgress) {
- cancel_delayed_work(&pLed->blink_work);
+
+ if (pLed->bLedLinkBlinkInProgress)
pLed->bLedLinkBlinkInProgress = false;
- }
- if (pLed->bLedBlinkInProgress) {
- cancel_delayed_work(&pLed->blink_work);
+
+ if (pLed->bLedBlinkInProgress)
pLed->bLedBlinkInProgress = false;
- }
- if (pLed->bLedScanBlinkInProgress) {
- cancel_delayed_work(&pLed->blink_work);
+
+ if (pLed->bLedScanBlinkInProgress)
pLed->bLedScanBlinkInProgress = false;
- }
- if (pLed->bLedWPSBlinkInProgress)
- cancel_delayed_work(&pLed->blink_work);
- else
+
+ if (!pLed->bLedWPSBlinkInProgress)
pLed->bLedWPSBlinkInProgress = true;
+
pLed->CurrLedState = LED_BLINK_WPS_STOP;
if (pLed->bLedOn) {
pLed->BlinkingLedState = RTW_LED_OFF;