mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-14 14:42:34 -04:00
staging: r8188eu: merge blink_work and SwLedBlink1
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>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
e8b0b484f4
commit
334a7f00a5
@@ -62,108 +62,6 @@ static void SwLedOff(struct adapter *padapter, struct LED_871x *pLed)
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user