1 /******************************************************************************
\r
3 * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
\r
5 * This program is free software; you can redistribute it and/or modify it
\r
6 * under the terms of version 2 of the GNU General Public License as
\r
7 * published by the Free Software Foundation.
\r
9 * This program is distributed in the hope that it will be useful, but WITHOUT
\r
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
\r
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
\r
14 * You should have received a copy of the GNU General Public License along with
\r
15 * this program; if not, write to the Free Software Foundation, Inc.,
\r
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
\r
19 ******************************************************************************/
\r
21 #include <drv_types.h>
\r
22 #include <hal_data.h>
\r
26 // Implementation of LED blinking behavior.
\r
27 // It toggle off LED and schedule corresponding timer if necessary.
\r
34 _adapter *padapter = pLed->padapter;
\r
35 struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
\r
36 u8 bStopBlinking = _FALSE;
\r
38 // Change LED according to BlinkingLedState specified.
\r
39 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
41 SwLedOn(padapter, pLed);
\r
42 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
46 SwLedOff(padapter, pLed);
\r
47 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,( "Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
50 // Determine if we shall change LED state again.
\r
52 switch(pLed->CurrLedState)
\r
55 case LED_BLINK_NORMAL:
\r
56 if(pLed->BlinkTimes == 0)
\r
58 bStopBlinking = _TRUE;
\r
62 case LED_BLINK_StartToBlink:
\r
63 if( check_fwstate(pmlmepriv, _FW_LINKED) && check_fwstate(pmlmepriv, WIFI_STATION_STATE) )
\r
65 bStopBlinking = _TRUE;
\r
67 if( check_fwstate(pmlmepriv, _FW_LINKED) &&
\r
68 (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) || check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)) )
\r
70 bStopBlinking = _TRUE;
\r
72 else if(pLed->BlinkTimes == 0)
\r
74 bStopBlinking = _TRUE;
\r
79 if( pLed->BlinkTimes == 0 )
\r
81 bStopBlinking = _TRUE;
\r
87 bStopBlinking = _TRUE;
\r
94 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
\r
96 SwLedOff(padapter, pLed);
\r
98 else if( (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE) && (pLed->bLedOn == _FALSE))
\r
100 SwLedOn(padapter, pLed);
\r
102 else if( (check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE) && pLed->bLedOn == _TRUE)
\r
104 SwLedOff(padapter, pLed);
\r
107 pLed->BlinkTimes = 0;
\r
108 pLed->bLedBlinkInProgress = _FALSE;
\r
112 // Assign LED state to toggle.
\r
113 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
114 pLed->BlinkingLedState = RTW_LED_OFF;
\r
116 pLed->BlinkingLedState = RTW_LED_ON;
\r
118 // Schedule a timer to toggle LED state.
\r
119 switch( pLed->CurrLedState )
\r
121 case LED_BLINK_NORMAL:
\r
122 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
125 case LED_BLINK_SLOWLY:
\r
126 case LED_BLINK_StartToBlink:
\r
127 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
\r
130 case LED_BLINK_WPS:
\r
132 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
133 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LONG_INTERVAL);
\r
135 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LONG_INTERVAL);
\r
140 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
\r
151 _adapter *padapter = pLed->padapter;
\r
152 EEPROM_EFUSE_PRIV *pEEPROM = GET_EEPROM_EFUSE_PRIV(padapter);
\r
153 struct led_priv *ledpriv = &(padapter->ledpriv);
\r
154 struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
\r
155 PLED_USB pLed1 = &(ledpriv->SwLed1);
\r
156 u8 bStopBlinking = _FALSE;
\r
158 u32 uLedBlinkNoLinkInterval = LED_BLINK_NO_LINK_INTERVAL_ALPHA; //add by ylb 20121012 for customer led for alpha
\r
159 if(pEEPROM->CustomerID == RT_CID_819x_ALPHA_Dlink)
\r
160 uLedBlinkNoLinkInterval= LED_BLINK_NO_LINK_INTERVAL_ALPHA_500MS;
\r
162 if(pEEPROM->CustomerID == RT_CID_819x_CAMEO)
\r
163 pLed = &(ledpriv->SwLed1);
\r
165 // Change LED according to BlinkingLedState specified.
\r
166 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
168 SwLedOn(padapter, pLed);
\r
169 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,( "Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
173 SwLedOff(padapter, pLed);
\r
174 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
178 if(pEEPROM->CustomerID == RT_CID_DEFAULT)
\r
180 if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
\r
182 if(!pLed1->bSWLedCtrl)
\r
184 SwLedOn(padapter, pLed1);
\r
185 pLed1->bSWLedCtrl = _TRUE;
\r
187 else if(!pLed1->bLedOn)
\r
188 SwLedOn(padapter, pLed1);
\r
189 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (): turn on pLed1\n"));
\r
193 if(!pLed1->bSWLedCtrl)
\r
195 SwLedOff(padapter, pLed1);
\r
196 pLed1->bSWLedCtrl = _TRUE;
\r
198 else if(pLed1->bLedOn)
\r
199 SwLedOff(padapter, pLed1);
\r
200 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (): turn off pLed1\n"));
\r
204 switch(pLed->CurrLedState)
\r
206 case LED_BLINK_SLOWLY:
\r
208 pLed->BlinkingLedState = RTW_LED_OFF;
\r
210 pLed->BlinkingLedState = RTW_LED_ON;
\r
211 _set_timer(&(pLed->BlinkTimer), uLedBlinkNoLinkInterval);//change by ylb 20121012 for customer led for alpha
\r
214 case LED_BLINK_NORMAL:
\r
216 pLed->BlinkingLedState = RTW_LED_OFF;
\r
218 pLed->BlinkingLedState = RTW_LED_ON;
\r
219 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
\r
222 case LED_BLINK_SCAN:
\r
223 pLed->BlinkTimes--;
\r
224 if( pLed->BlinkTimes == 0 )
\r
226 bStopBlinking = _TRUE;
\r
231 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
\r
233 SwLedOff(padapter, pLed);
\r
235 else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
\r
237 pLed->bLedLinkBlinkInProgress = _TRUE;
\r
238 pLed->CurrLedState = LED_BLINK_NORMAL;
\r
240 pLed->BlinkingLedState = RTW_LED_OFF;
\r
242 pLed->BlinkingLedState = RTW_LED_ON;
\r
243 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
\r
244 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
247 else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)
\r
249 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
250 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
252 pLed->BlinkingLedState = RTW_LED_OFF;
\r
254 pLed->BlinkingLedState = RTW_LED_ON;
\r
255 _set_timer(&(pLed->BlinkTimer), uLedBlinkNoLinkInterval);
\r
256 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
258 pLed->bLedScanBlinkInProgress = _FALSE;
\r
262 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
\r
264 SwLedOff(padapter, pLed);
\r
269 pLed->BlinkingLedState = RTW_LED_OFF;
\r
271 pLed->BlinkingLedState = RTW_LED_ON;
\r
272 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
277 case LED_BLINK_TXRX:
\r
278 pLed->BlinkTimes--;
\r
279 if( pLed->BlinkTimes == 0 )
\r
281 bStopBlinking = _TRUE;
\r
285 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
\r
287 SwLedOff(padapter, pLed);
\r
289 else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
\r
291 pLed->bLedLinkBlinkInProgress = _TRUE;
\r
292 pLed->CurrLedState = LED_BLINK_NORMAL;
\r
294 pLed->BlinkingLedState = RTW_LED_OFF;
\r
296 pLed->BlinkingLedState = RTW_LED_ON;
\r
297 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
\r
298 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
300 else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)
\r
302 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
303 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
305 pLed->BlinkingLedState = RTW_LED_OFF;
\r
307 pLed->BlinkingLedState = RTW_LED_ON;
\r
308 _set_timer(&(pLed->BlinkTimer), uLedBlinkNoLinkInterval);
\r
309 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
311 pLed->BlinkTimes = 0;
\r
312 pLed->bLedBlinkInProgress = _FALSE;
\r
316 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
\r
318 SwLedOff(padapter, pLed);
\r
323 pLed->BlinkingLedState = RTW_LED_OFF;
\r
325 pLed->BlinkingLedState = RTW_LED_ON;
\r
326 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
331 case LED_BLINK_WPS:
\r
333 pLed->BlinkingLedState = RTW_LED_OFF;
\r
335 pLed->BlinkingLedState = RTW_LED_ON;
\r
336 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
339 case LED_BLINK_WPS_STOP: //WPS success
\r
340 if(pLed->BlinkingLedState == RTW_LED_ON)
\r
342 pLed->BlinkingLedState = RTW_LED_OFF;
\r
343 _set_timer(&(pLed->BlinkTimer), LED_BLINK_WPS_SUCESS_INTERVAL_ALPHA);
\r
344 bStopBlinking = _FALSE;
\r
348 bStopBlinking = _TRUE;
\r
353 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
\r
355 SwLedOff(padapter, pLed);
\r
359 pLed->bLedLinkBlinkInProgress = _TRUE;
\r
360 pLed->CurrLedState = LED_BLINK_NORMAL;
\r
362 pLed->BlinkingLedState = RTW_LED_OFF;
\r
364 pLed->BlinkingLedState = RTW_LED_ON;
\r
365 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
\r
366 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
368 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
383 _adapter *padapter = pLed->padapter;
\r
384 struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
\r
385 u8 bStopBlinking = _FALSE;
\r
387 // Change LED according to BlinkingLedState specified.
\r
388 if( pLed->BlinkingLedState == RTW_LED_ON)
\r
390 SwLedOn(padapter, pLed);
\r
391 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
395 SwLedOff(padapter, pLed);
\r
396 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
399 switch(pLed->CurrLedState)
\r
401 case LED_BLINK_SCAN:
\r
402 pLed->BlinkTimes--;
\r
403 if( pLed->BlinkTimes == 0 )
\r
405 bStopBlinking = _TRUE;
\r
410 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
\r
412 SwLedOff(padapter, pLed);
\r
414 else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
\r
416 pLed->CurrLedState = RTW_LED_ON;
\r
417 pLed->BlinkingLedState = RTW_LED_ON;
\r
418 SwLedOn(padapter, pLed);
\r
419 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("stop scan blink CurrLedState %d\n", pLed->CurrLedState));
\r
422 else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)
\r
424 pLed->CurrLedState = RTW_LED_OFF;
\r
425 pLed->BlinkingLedState = RTW_LED_OFF;
\r
426 SwLedOff(padapter, pLed);
\r
427 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("stop scan blink CurrLedState %d\n", pLed->CurrLedState));
\r
429 pLed->bLedScanBlinkInProgress = _FALSE;
\r
433 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
\r
435 SwLedOff(padapter, pLed);
\r
440 pLed->BlinkingLedState = RTW_LED_OFF;
\r
442 pLed->BlinkingLedState = RTW_LED_ON;
\r
443 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
448 case LED_BLINK_TXRX:
\r
449 pLed->BlinkTimes--;
\r
450 if( pLed->BlinkTimes == 0 )
\r
452 bStopBlinking = _TRUE;
\r
456 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
\r
458 SwLedOff(padapter, pLed);
\r
460 else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
\r
462 pLed->CurrLedState = RTW_LED_ON;
\r
463 pLed->BlinkingLedState = RTW_LED_ON;
\r
464 SwLedOn(padapter, pLed);
\r
465 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("stop CurrLedState %d\n", pLed->CurrLedState));
\r
468 else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)
\r
470 pLed->CurrLedState = RTW_LED_OFF;
\r
471 pLed->BlinkingLedState = RTW_LED_OFF;
\r
472 SwLedOff(padapter, pLed);
\r
473 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("stop CurrLedState %d\n", pLed->CurrLedState));
\r
475 pLed->bLedBlinkInProgress = _FALSE;
\r
479 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
\r
481 SwLedOff(padapter, pLed);
\r
486 pLed->BlinkingLedState = RTW_LED_OFF;
\r
488 pLed->BlinkingLedState = RTW_LED_ON;
\r
489 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
505 _adapter *padapter = pLed->padapter;
\r
506 struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
\r
507 u8 bStopBlinking = _FALSE;
\r
509 // Change LED according to BlinkingLedState specified.
\r
510 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
512 SwLedOn(padapter, pLed);
\r
513 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
517 if(pLed->CurrLedState != LED_BLINK_WPS_STOP)
\r
518 SwLedOff(padapter, pLed);
\r
519 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
522 switch(pLed->CurrLedState)
\r
524 case LED_BLINK_SCAN:
\r
525 pLed->BlinkTimes--;
\r
526 if( pLed->BlinkTimes == 0 )
\r
528 bStopBlinking = _TRUE;
\r
533 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
\r
535 SwLedOff(padapter, pLed);
\r
537 else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
\r
539 pLed->CurrLedState = RTW_LED_ON;
\r
540 pLed->BlinkingLedState = RTW_LED_ON;
\r
541 if( !pLed->bLedOn )
\r
542 SwLedOn(padapter, pLed);
\r
544 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
546 else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)
\r
548 pLed->CurrLedState = RTW_LED_OFF;
\r
549 pLed->BlinkingLedState = RTW_LED_OFF;
\r
551 SwLedOff(padapter, pLed);
\r
553 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
555 pLed->bLedScanBlinkInProgress = _FALSE;
\r
559 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
\r
561 SwLedOff(padapter, pLed);
\r
566 pLed->BlinkingLedState = RTW_LED_OFF;
\r
568 pLed->BlinkingLedState = RTW_LED_ON;
\r
569 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
574 case LED_BLINK_TXRX:
\r
575 pLed->BlinkTimes--;
\r
576 if( pLed->BlinkTimes == 0 )
\r
578 bStopBlinking = _TRUE;
\r
582 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
\r
584 SwLedOff(padapter, pLed);
\r
586 else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
\r
588 pLed->CurrLedState = RTW_LED_ON;
\r
589 pLed->BlinkingLedState = RTW_LED_ON;
\r
591 if( !pLed->bLedOn )
\r
592 SwLedOn(padapter, pLed);
\r
594 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
596 else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)
\r
598 pLed->CurrLedState = RTW_LED_OFF;
\r
599 pLed->BlinkingLedState = RTW_LED_OFF;
\r
602 SwLedOff(padapter, pLed);
\r
605 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
607 pLed->bLedBlinkInProgress = _FALSE;
\r
611 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
\r
613 SwLedOff(padapter, pLed);
\r
618 pLed->BlinkingLedState = RTW_LED_OFF;
\r
620 pLed->BlinkingLedState = RTW_LED_ON;
\r
621 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
626 case LED_BLINK_WPS:
\r
628 pLed->BlinkingLedState = RTW_LED_OFF;
\r
630 pLed->BlinkingLedState = RTW_LED_ON;
\r
631 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
634 case LED_BLINK_WPS_STOP: //WPS success
\r
635 if(pLed->BlinkingLedState == RTW_LED_ON)
\r
637 pLed->BlinkingLedState = RTW_LED_OFF;
\r
638 _set_timer(&(pLed->BlinkTimer), LED_BLINK_WPS_SUCESS_INTERVAL_ALPHA);
\r
639 bStopBlinking = _FALSE;
\r
643 bStopBlinking = _TRUE;
\r
648 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
\r
650 SwLedOff(padapter, pLed);
\r
654 pLed->CurrLedState = RTW_LED_ON;
\r
655 pLed->BlinkingLedState = RTW_LED_ON;
\r
656 SwLedOn(padapter, pLed);
\r
657 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
659 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
676 _adapter *padapter = pLed->padapter;
\r
677 struct led_priv *ledpriv = &(padapter->ledpriv);
\r
678 struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
\r
679 PLED_USB pLed1 = &(ledpriv->SwLed1);
\r
680 u8 bStopBlinking = _FALSE;
\r
682 // Change LED according to BlinkingLedState specified.
\r
683 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
685 SwLedOn(padapter, pLed);
\r
686 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
690 SwLedOff(padapter, pLed);
\r
691 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
694 if(!pLed1->bLedWPSBlinkInProgress && pLed1->BlinkingLedState == LED_UNKNOWN)
\r
696 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
697 pLed1->CurrLedState = RTW_LED_OFF;
\r
698 SwLedOff(padapter, pLed1);
\r
701 switch(pLed->CurrLedState)
\r
703 case LED_BLINK_SLOWLY:
\r
705 pLed->BlinkingLedState = RTW_LED_OFF;
\r
707 pLed->BlinkingLedState = RTW_LED_ON;
\r
708 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
711 case LED_BLINK_StartToBlink:
\r
714 pLed->BlinkingLedState = RTW_LED_OFF;
\r
715 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
\r
719 pLed->BlinkingLedState = RTW_LED_ON;
\r
720 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
724 case LED_BLINK_SCAN:
\r
725 pLed->BlinkTimes--;
\r
726 if( pLed->BlinkTimes == 0 )
\r
728 bStopBlinking = _FALSE;
\r
733 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
735 SwLedOff(padapter, pLed);
\r
739 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
740 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
742 pLed->BlinkingLedState = RTW_LED_OFF;
\r
744 pLed->BlinkingLedState = RTW_LED_ON;
\r
745 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
747 pLed->bLedScanBlinkInProgress = _FALSE;
\r
751 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
753 SwLedOff(padapter, pLed);
\r
758 pLed->BlinkingLedState = RTW_LED_OFF;
\r
760 pLed->BlinkingLedState = RTW_LED_ON;
\r
761 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
766 case LED_BLINK_TXRX:
\r
767 pLed->BlinkTimes--;
\r
768 if( pLed->BlinkTimes == 0 )
\r
770 bStopBlinking = _TRUE;
\r
774 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
776 SwLedOff(padapter, pLed);
\r
780 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
781 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
783 pLed->BlinkingLedState = RTW_LED_OFF;
\r
785 pLed->BlinkingLedState = RTW_LED_ON;
\r
786 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
788 pLed->bLedBlinkInProgress = _FALSE;
\r
792 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
794 SwLedOff(padapter, pLed);
\r
798 if(IS_HARDWARE_TYPE_8192DU(padapter))
\r
800 pLed->BlinkingLedState = RTW_LED_ON;
\r
801 pLed->CurrLedState = LED_BLINK_ALWAYS_ON;
\r
806 pLed->BlinkingLedState = RTW_LED_OFF;
\r
808 pLed->BlinkingLedState = RTW_LED_ON;
\r
810 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
815 case LED_BLINK_WPS:
\r
818 pLed->BlinkingLedState = RTW_LED_OFF;
\r
819 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
\r
823 pLed->BlinkingLedState = RTW_LED_ON;
\r
824 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
828 case LED_BLINK_WPS_STOP: //WPS authentication fail
\r
830 pLed->BlinkingLedState = RTW_LED_OFF;
\r
832 pLed->BlinkingLedState = RTW_LED_ON;
\r
834 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
837 case LED_BLINK_WPS_STOP_OVERLAP: //WPS session overlap
\r
838 pLed->BlinkTimes--;
\r
839 if(pLed->BlinkTimes == 0)
\r
843 pLed->BlinkTimes = 1;
\r
847 bStopBlinking = _TRUE;
\r
853 pLed->BlinkTimes = 10;
\r
854 pLed->BlinkingLedState = RTW_LED_ON;
\r
855 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
\r
860 pLed->BlinkingLedState = RTW_LED_OFF;
\r
862 pLed->BlinkingLedState = RTW_LED_ON;
\r
864 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
868 case LED_BLINK_ALWAYS_ON:
\r
869 pLed->BlinkTimes--;
\r
870 if( pLed->BlinkTimes == 0 )
\r
872 bStopBlinking = _TRUE;
\r
876 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
878 SwLedOff(padapter, pLed);
\r
882 if(IS_HARDWARE_TYPE_8192DU(padapter))
\r
884 pLed->BlinkingLedState = RTW_LED_ON;
\r
885 pLed->CurrLedState = LED_BLINK_ALWAYS_ON;
\r
889 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
890 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
892 pLed->BlinkingLedState = RTW_LED_OFF;
\r
894 pLed->BlinkingLedState = RTW_LED_ON;
\r
896 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
898 pLed->bLedBlinkInProgress = _FALSE;
\r
902 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
904 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("RFOff Status \n"));
\r
905 SwLedOff(padapter, pLed);
\r
909 if(IS_HARDWARE_TYPE_8192DU(padapter))
\r
911 pLed->BlinkingLedState = RTW_LED_ON;
\r
916 pLed->BlinkingLedState = RTW_LED_OFF;
\r
918 pLed->BlinkingLedState = RTW_LED_ON;
\r
920 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
929 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink4 CurrLedState %d\n", pLed->CurrLedState));
\r
939 _adapter *padapter = pLed->padapter;
\r
940 struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
\r
941 u8 bStopBlinking = _FALSE;
\r
943 // Change LED according to BlinkingLedState specified.
\r
944 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
946 SwLedOn(padapter, pLed);
\r
947 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
951 SwLedOff(padapter, pLed);
\r
952 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
955 switch(pLed->CurrLedState)
\r
957 case LED_BLINK_SCAN:
\r
958 pLed->BlinkTimes--;
\r
959 if( pLed->BlinkTimes == 0 )
\r
961 bStopBlinking = _TRUE;
\r
966 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
968 pLed->CurrLedState = RTW_LED_OFF;
\r
969 pLed->BlinkingLedState = RTW_LED_OFF;
\r
971 SwLedOff(padapter, pLed);
\r
974 { pLed->CurrLedState = RTW_LED_ON;
\r
975 pLed->BlinkingLedState = RTW_LED_ON;
\r
977 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
980 pLed->bLedScanBlinkInProgress = _FALSE;
\r
984 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
986 SwLedOff(padapter, pLed);
\r
991 pLed->BlinkingLedState = RTW_LED_OFF;
\r
993 pLed->BlinkingLedState = RTW_LED_ON;
\r
994 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
1000 case LED_BLINK_TXRX:
\r
1001 pLed->BlinkTimes--;
\r
1002 if( pLed->BlinkTimes == 0 )
\r
1004 bStopBlinking = _TRUE;
\r
1009 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1011 pLed->CurrLedState = RTW_LED_OFF;
\r
1012 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1014 SwLedOff(padapter, pLed);
\r
1018 pLed->CurrLedState = RTW_LED_ON;
\r
1019 pLed->BlinkingLedState = RTW_LED_ON;
\r
1021 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
1024 pLed->bLedBlinkInProgress = _FALSE;
\r
1028 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1030 SwLedOff(padapter, pLed);
\r
1034 if( pLed->bLedOn )
\r
1035 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1037 pLed->BlinkingLedState = RTW_LED_ON;
\r
1038 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
1047 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink5 CurrLedState %d\n", pLed->CurrLedState));
\r
1057 _adapter *padapter = pLed->padapter;
\r
1058 struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
\r
1059 u8 bStopBlinking = _FALSE;
\r
1061 // Change LED according to BlinkingLedState specified.
\r
1062 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
1064 SwLedOn(padapter, pLed);
\r
1065 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
1069 SwLedOff(padapter, pLed);
\r
1070 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
1073 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink6\n"));
\r
1081 PADAPTER Adapter = pLed->padapter;
\r
1082 struct mlme_priv *pmlmepriv = &(Adapter->mlmepriv);
\r
1083 BOOLEAN bStopBlinking = _FALSE;
\r
1085 // Change LED according to BlinkingLedState specified.
\r
1086 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
1088 SwLedOn(Adapter, pLed);
\r
1089 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
1093 if(pLed->CurrLedState != LED_BLINK_WPS_STOP)
\r
1094 SwLedOff(Adapter, pLed);
\r
1095 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
1098 switch(pLed->CurrLedState)
\r
1100 case LED_BLINK_SCAN:
\r
1101 pLed->BlinkTimes--;
\r
1102 if( pLed->BlinkTimes == 0 )
\r
1104 bStopBlinking = _TRUE;
\r
1109 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on )
\r
1111 SwLedOff(Adapter, pLed);
\r
1113 else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
\r
1115 pLed->CurrLedState = RTW_LED_ON;
\r
1116 pLed->BlinkingLedState = RTW_LED_ON;
\r
1117 if( !pLed->bLedOn )
\r
1118 SwLedOn(Adapter, pLed);
\r
1120 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
1122 else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)
\r
1124 pLed->CurrLedState = RTW_LED_OFF;
\r
1125 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1126 if( pLed->bLedOn )
\r
1127 SwLedOff(Adapter, pLed);
\r
1129 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
1131 pLed->bLedScanBlinkInProgress = _FALSE;
\r
1135 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on )
\r
1137 SwLedOff(Adapter, pLed);
\r
1141 if( pLed->bLedOn )
\r
1142 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1144 pLed->BlinkingLedState = RTW_LED_ON;
\r
1145 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
\r
1150 case LED_BLINK_WPS:
\r
1151 if( pLed->bLedOn )
\r
1152 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1154 pLed->BlinkingLedState = RTW_LED_ON;
\r
1155 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
\r
1158 case LED_BLINK_WPS_STOP: //WPS success
\r
1159 if(pLed->BlinkingLedState == RTW_LED_ON)
\r
1161 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1162 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
\r
1163 bStopBlinking = _FALSE;
\r
1167 bStopBlinking = _TRUE;
\r
1172 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on )
\r
1174 SwLedOff(Adapter, pLed);
\r
1178 pLed->CurrLedState = RTW_LED_ON;
\r
1179 pLed->BlinkingLedState = RTW_LED_ON;
\r
1180 SwLedOn(Adapter, pLed);
\r
1181 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
1183 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
1192 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink7\n"));
\r
1201 PADAPTER Adapter = pLed->padapter;
\r
1203 // Change LED according to BlinkingLedState specified.
\r
1204 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
1206 SwLedOn(Adapter, pLed);
\r
1207 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes blink8(%d): turn on\n", pLed->BlinkTimes));
\r
1211 SwLedOff(Adapter, pLed);
\r
1212 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes blink8(%d): turn off\n", pLed->BlinkTimes));
\r
1215 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink8\n"));
\r
1219 //page added for Belkin AC950. 20120813
\r
1225 PADAPTER Adapter = pLed->padapter;
\r
1226 struct mlme_priv *pmlmepriv = &(Adapter->mlmepriv);
\r
1227 BOOLEAN bStopBlinking = _FALSE;
\r
1229 // Change LED according to BlinkingLedState specified.
\r
1230 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
1232 SwLedOn(Adapter, pLed);
\r
1233 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
1237 SwLedOff(Adapter, pLed);
\r
1238 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
1242 switch(pLed->CurrLedState)
\r
1245 SwLedOn(Adapter, pLed);
\r
1249 SwLedOff(Adapter, pLed);
\r
1252 case LED_BLINK_SLOWLY:
\r
1253 if( pLed->bLedOn )
\r
1254 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1256 pLed->BlinkingLedState = RTW_LED_ON;
\r
1257 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
1260 case LED_BLINK_StartToBlink:
\r
1261 if( pLed->bLedOn )
\r
1263 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1264 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
\r
1268 pLed->BlinkingLedState = RTW_LED_ON;
\r
1269 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
1273 case LED_BLINK_SCAN:
\r
1274 pLed->BlinkTimes--;
\r
1275 if( pLed->BlinkTimes == 0 )
\r
1277 bStopBlinking = _TRUE;
\r
1282 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on )
\r
1284 SwLedOff(Adapter, pLed);
\r
1286 else if(check_fwstate(pmlmepriv, _FW_LINKED) == _TRUE)
\r
1288 pLed->bLedLinkBlinkInProgress = _TRUE;
\r
1289 pLed->CurrLedState = LED_BLINK_ALWAYS_ON;
\r
1291 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
\r
1292 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
1294 else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)
\r
1296 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
1297 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
1298 if( pLed->bLedOn )
\r
1299 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1301 pLed->BlinkingLedState = RTW_LED_ON;
\r
1302 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
1303 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
1305 pLed->BlinkTimes = 0;
\r
1306 pLed->bLedBlinkInProgress = _FALSE;
\r
1310 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1312 SwLedOff(Adapter, pLed);
\r
1316 if( pLed->bLedOn )
\r
1317 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1319 pLed->BlinkingLedState = RTW_LED_ON;
\r
1320 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
1325 case LED_BLINK_TXRX:
\r
1326 pLed->BlinkTimes--;
\r
1327 if( pLed->BlinkTimes == 0 )
\r
1329 bStopBlinking = _TRUE;
\r
1333 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1335 SwLedOff(Adapter, pLed);
\r
1339 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
1340 pLed->CurrLedState = LED_BLINK_ALWAYS_ON;
\r
1341 if( pLed->bLedOn )
\r
1342 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1344 pLed->BlinkingLedState = RTW_LED_ON;
\r
1345 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
1347 pLed->bLedBlinkInProgress = _FALSE;
\r
1351 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1353 SwLedOff(Adapter, pLed);
\r
1357 if(IS_HARDWARE_TYPE_8192DU(Adapter))
\r
1359 pLed->BlinkingLedState = RTW_LED_ON;
\r
1360 pLed->CurrLedState = LED_BLINK_ALWAYS_ON;
\r
1364 if( pLed->bLedOn )
\r
1365 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1367 pLed->BlinkingLedState = RTW_LED_ON;
\r
1369 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
1374 case LED_BLINK_WPS:
\r
1375 if( pLed->bLedOn )
\r
1377 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1378 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
\r
1382 pLed->BlinkingLedState = RTW_LED_ON;
\r
1383 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
1387 case LED_BLINK_WPS_STOP: //WPS authentication fail
\r
1388 if( pLed->bLedOn )
\r
1389 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1391 pLed->BlinkingLedState = RTW_LED_ON;
\r
1393 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
1396 case LED_BLINK_WPS_STOP_OVERLAP: //WPS session overlap
\r
1397 pLed->BlinkTimes--;
\r
1398 pLed->BlinkCounter --;
\r
1399 if(pLed->BlinkCounter == 0)
\r
1401 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1402 pLed->CurrLedState = RTW_LED_OFF;
\r
1403 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
1407 if(pLed->BlinkTimes == 0)
\r
1411 pLed->BlinkTimes = 1;
\r
1415 bStopBlinking = _TRUE;
\r
1421 pLed->BlinkTimes = 10;
\r
1422 pLed->BlinkingLedState = RTW_LED_ON;
\r
1423 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
\r
1427 if( pLed->bLedOn )
\r
1428 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1430 pLed->BlinkingLedState = RTW_LED_ON;
\r
1432 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
1437 case LED_BLINK_ALWAYS_ON:
\r
1438 pLed->BlinkTimes--;
\r
1439 if( pLed->BlinkTimes == 0 )
\r
1441 bStopBlinking = _TRUE;
\r
1445 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1447 SwLedOff(Adapter, pLed);
\r
1451 if(IS_HARDWARE_TYPE_8192DU(Adapter) || IS_HARDWARE_TYPE_8812AU(Adapter))
\r
1453 pLed->BlinkingLedState = RTW_LED_ON;
\r
1454 pLed->CurrLedState = LED_BLINK_ALWAYS_ON;
\r
1458 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
1459 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
1460 if( pLed->bLedOn )
\r
1461 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1463 pLed->BlinkingLedState = RTW_LED_ON;
\r
1465 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
1467 pLed->bLedBlinkInProgress = _FALSE;
\r
1471 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1473 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("RFOff Status \n"));
\r
1474 SwLedOff(Adapter, pLed);
\r
1478 if(IS_HARDWARE_TYPE_8192DU(Adapter) || IS_HARDWARE_TYPE_8723AU(Adapter) || IS_HARDWARE_TYPE_8812AU(Adapter))
\r
1480 pLed->BlinkingLedState = RTW_LED_ON;
\r
1484 if( pLed->bLedOn )
\r
1485 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1487 pLed->BlinkingLedState = RTW_LED_ON;
\r
1489 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
1494 case LED_BLINK_LINK_IN_PROCESS:
\r
1495 if( pLed->bLedOn )
\r
1497 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1498 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ON_BELKIN);
\r
1502 pLed->BlinkingLedState = RTW_LED_ON;
\r
1503 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_OFF_BELKIN);
\r
1507 case LED_BLINK_AUTH_ERROR:
\r
1508 pLed->BlinkTimes--;
\r
1509 if( pLed->BlinkTimes == 0 )
\r
1511 bStopBlinking = _TRUE;
\r
1513 if(bStopBlinking == _FALSE)
\r
1515 if( pLed->bLedOn )
\r
1517 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1518 _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);
\r
1522 pLed->BlinkingLedState = RTW_LED_ON;
\r
1523 _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);
\r
1528 pLed->CurrLedState = RTW_LED_OFF;
\r
1529 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1530 _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);
\r
1538 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink9 CurrLedState %d\n", pLed->CurrLedState));
\r
1541 //page added for Netgear A6200V2. 20120827
\r
1547 PADAPTER Adapter = pLed->padapter;
\r
1548 struct mlme_priv *pmlmepriv = &(Adapter->mlmepriv);
\r
1549 BOOLEAN bStopBlinking = _FALSE;
\r
1551 // Change LED according to BlinkingLedState specified.
\r
1552 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
1554 SwLedOn(Adapter, pLed);
\r
1555 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
1559 SwLedOff(Adapter, pLed);
\r
1560 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
1564 switch(pLed->CurrLedState)
\r
1567 SwLedOn(Adapter, pLed);
\r
1571 SwLedOff(Adapter, pLed);
\r
1574 case LED_BLINK_SLOWLY:
\r
1575 if( pLed->bLedOn )
\r
1576 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1578 pLed->BlinkingLedState = RTW_LED_ON;
\r
1579 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
1582 case LED_BLINK_StartToBlink:
\r
1583 if( pLed->bLedOn )
\r
1585 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1586 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
\r
1590 pLed->BlinkingLedState = RTW_LED_ON;
\r
1591 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
1595 case LED_BLINK_SCAN:
\r
1596 pLed->BlinkTimes--;
\r
1597 if( pLed->BlinkTimes == 0 )
\r
1599 bStopBlinking = _TRUE;
\r
1604 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on )
\r
1606 SwLedOff(Adapter, pLed);
\r
1608 else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
\r
1610 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
1611 pLed->CurrLedState = RTW_LED_OFF;
\r
1612 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1614 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
1615 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
1617 pLed->BlinkTimes = 0;
\r
1618 pLed->bLedBlinkInProgress = _FALSE;
\r
1622 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1624 SwLedOff(Adapter, pLed);
\r
1628 if( pLed->bLedOn )
\r
1630 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1631 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
\r
1635 pLed->BlinkingLedState = RTW_LED_ON;
\r
1636 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_SLOWLY_INTERVAL_NETGEAR+LED_BLINK_LINK_INTERVAL_NETGEAR);
\r
1642 case LED_BLINK_WPS:
\r
1643 if( pLed->bLedOn )
\r
1645 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1646 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
\r
1650 pLed->BlinkingLedState = RTW_LED_ON;
\r
1651 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL+LED_BLINK_LINK_INTERVAL_NETGEAR);
\r
1655 case LED_BLINK_WPS_STOP: //WPS authentication fail
\r
1656 if( pLed->bLedOn )
\r
1657 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1659 pLed->BlinkingLedState = RTW_LED_ON;
\r
1661 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
1664 case LED_BLINK_WPS_STOP_OVERLAP: //WPS session overlap
\r
1665 pLed->BlinkTimes--;
\r
1666 pLed->BlinkCounter --;
\r
1667 if(pLed->BlinkCounter == 0)
\r
1669 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1670 pLed->CurrLedState = RTW_LED_OFF;
\r
1671 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
1675 if(pLed->BlinkTimes == 0)
\r
1679 pLed->BlinkTimes = 1;
\r
1683 bStopBlinking = _TRUE;
\r
1689 pLed->BlinkTimes = 10;
\r
1690 pLed->BlinkingLedState = RTW_LED_ON;
\r
1691 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
\r
1695 if( pLed->bLedOn )
\r
1696 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1698 pLed->BlinkingLedState = RTW_LED_ON;
\r
1700 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
1705 case LED_BLINK_ALWAYS_ON:
\r
1706 pLed->BlinkTimes--;
\r
1707 if( pLed->BlinkTimes == 0 )
\r
1709 bStopBlinking = _TRUE;
\r
1713 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1715 SwLedOff(Adapter, pLed);
\r
1719 if(IS_HARDWARE_TYPE_8192DU(Adapter) || IS_HARDWARE_TYPE_8812AU(Adapter))
\r
1721 pLed->BlinkingLedState = RTW_LED_ON;
\r
1722 pLed->CurrLedState = LED_BLINK_ALWAYS_ON;
\r
1726 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
1727 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
1728 if( pLed->bLedOn )
\r
1729 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1731 pLed->BlinkingLedState = RTW_LED_ON;
\r
1733 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
1735 pLed->bLedBlinkInProgress = _FALSE;
\r
1739 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1741 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("RFOff Status \n"));
\r
1742 SwLedOff(Adapter, pLed);
\r
1746 if(IS_HARDWARE_TYPE_8192DU(Adapter) || IS_HARDWARE_TYPE_8723AU(Adapter) || IS_HARDWARE_TYPE_8812AU(Adapter))
\r
1748 pLed->BlinkingLedState = RTW_LED_ON;
\r
1752 if( pLed->bLedOn )
\r
1753 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1755 pLed->BlinkingLedState = RTW_LED_ON;
\r
1757 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
1762 case LED_BLINK_LINK_IN_PROCESS:
\r
1763 if( pLed->bLedOn )
\r
1765 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1766 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ON_BELKIN);
\r
1770 pLed->BlinkingLedState = RTW_LED_ON;
\r
1771 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_OFF_BELKIN);
\r
1775 case LED_BLINK_AUTH_ERROR:
\r
1776 pLed->BlinkTimes--;
\r
1777 if( pLed->BlinkTimes == 0 )
\r
1779 bStopBlinking = _TRUE;
\r
1781 if(bStopBlinking == _FALSE)
\r
1783 if( pLed->bLedOn )
\r
1785 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1786 _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);
\r
1790 pLed->BlinkingLedState = RTW_LED_ON;
\r
1791 _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);
\r
1796 pLed->CurrLedState = RTW_LED_OFF;
\r
1797 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1798 _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);
\r
1806 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink10 CurrLedState %d\n", pLed->CurrLedState));
\r
1815 PADAPTER Adapter = pLed->padapter;
\r
1816 struct mlme_priv *pmlmepriv = &(Adapter->mlmepriv);
\r
1817 BOOLEAN bStopBlinking = _FALSE;
\r
1819 // Change LED according to BlinkingLedState specified.
\r
1820 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
1822 SwLedOn(Adapter, pLed);
\r
1823 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
1827 SwLedOff(Adapter, pLed);
\r
1828 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
1831 switch(pLed->CurrLedState)
\r
1833 case LED_BLINK_TXRX:
\r
1834 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1836 SwLedOff(Adapter, pLed);
\r
1840 if( pLed->bLedOn )
\r
1841 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1843 pLed->BlinkingLedState = RTW_LED_ON;
\r
1844 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
1849 case LED_BLINK_WPS:
\r
1850 if(pLed->BlinkTimes == 5)
\r
1852 SwLedOn(Adapter, pLed);
\r
1853 _set_timer(&(pLed->BlinkTimer), LED_CM11_LINK_ON_INTERVEL);
\r
1857 if( pLed->bLedOn )
\r
1859 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1860 _set_timer(&(pLed->BlinkTimer), LED_CM11_BLINK_INTERVAL);
\r
1864 pLed->BlinkingLedState = RTW_LED_ON;
\r
1865 _set_timer(&(pLed->BlinkTimer), LED_CM11_BLINK_INTERVAL);
\r
1868 pLed->BlinkTimes--;
\r
1869 if( pLed->BlinkTimes == 0 )
\r
1871 bStopBlinking = _TRUE;
\r
1873 if(bStopBlinking == _TRUE)
\r
1874 pLed->BlinkTimes = 5;
\r
1877 case LED_BLINK_WPS_STOP: //WPS authentication fail
\r
1878 if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
\r
1880 if( pLed->bLedOn )
\r
1881 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1883 pLed->BlinkingLedState = RTW_LED_ON;
\r
1884 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
1888 pLed->CurrLedState = RTW_LED_ON;
\r
1889 pLed->BlinkingLedState = RTW_LED_ON;
\r
1890 SwLedOn(Adapter, pLed);
\r
1891 _set_timer(&(pLed->BlinkTimer), 0);
\r
1899 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink5 CurrLedState %d\n", pLed->CurrLedState));
\r
1907 PADAPTER Adapter = pLed->padapter;
\r
1908 struct mlme_priv *pmlmepriv = &(Adapter->mlmepriv);
\r
1909 BOOLEAN bStopBlinking = _FALSE;
\r
1911 // Change LED according to BlinkingLedState specified.
\r
1912 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
1914 SwLedOn(Adapter, pLed);
\r
1915 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%ld): turn on\n", pLed->BlinkTimes));
\r
1919 SwLedOff(Adapter, pLed);
\r
1920 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%ld): turn off\n", pLed->BlinkTimes));
\r
1923 switch(pLed->CurrLedState)
\r
1925 case LED_BLINK_SLOWLY:
\r
1926 if( pLed->bLedOn )
\r
1927 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1929 pLed->BlinkingLedState = RTW_LED_ON;
\r
1930 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
1933 case LED_BLINK_TXRX:
\r
1934 pLed->BlinkTimes--;
\r
1935 if( pLed->BlinkTimes == 0 )
\r
1937 bStopBlinking = _TRUE;
\r
1942 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1944 pLed->CurrLedState = RTW_LED_OFF;
\r
1945 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1947 SwLedOff(Adapter, pLed);
\r
1951 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
1952 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
1953 if( pLed->bLedOn )
\r
1954 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1956 pLed->BlinkingLedState = RTW_LED_ON;
\r
1957 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
1960 pLed->bLedBlinkInProgress = _FALSE;
\r
1964 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1966 SwLedOff(Adapter, pLed);
\r
1970 if( pLed->bLedOn )
\r
1971 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1973 pLed->BlinkingLedState = RTW_LED_ON;
\r
1974 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
1983 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink8 CurrLedState %d\n", pLed->CurrLedState));
\r
1993 PADAPTER Adapter = pLed->padapter;
\r
1994 struct mlme_priv *pmlmepriv = &(Adapter->mlmepriv);
\r
1995 BOOLEAN bStopBlinking = _FALSE;
\r
1996 static u8 LinkBlinkCnt=0;
\r
1998 // Change LED according to BlinkingLedState specified.
\r
1999 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
2001 SwLedOn(Adapter, pLed);
\r
2002 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
2006 if(pLed->CurrLedState != LED_BLINK_WPS_STOP)
\r
2007 SwLedOff(Adapter, pLed);
\r
2008 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
2010 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("!!! SwLedBlink13 CurrLedState %d, bLedWPSBlinkInProgress %d, bLedBlinkInProgress %d\n", pLed->CurrLedState,pLed->bLedWPSBlinkInProgress,pLed->bLedBlinkInProgress));
\r
2011 switch(pLed->CurrLedState)
\r
2013 case LED_BLINK_LINK_IN_PROCESS:
\r
2014 if(!pLed->bLedWPSBlinkInProgress)
\r
2017 if(LinkBlinkCnt>15)
\r
2020 pLed->bLedBlinkInProgress = _FALSE;
\r
2023 if( pLed->bLedOn )
\r
2025 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2026 _set_timer(&(pLed->BlinkTimer), 500);
\r
2030 pLed->BlinkingLedState = RTW_LED_ON;
\r
2031 _set_timer(&(pLed->BlinkTimer), 500);
\r
2036 case LED_BLINK_WPS:
\r
2037 if( pLed->bLedOn )
\r
2039 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2040 _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_ON_INTERVAL_NETGEAR);
\r
2044 pLed->BlinkingLedState = RTW_LED_ON;
\r
2045 _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_OFF_INTERVAL_NETGEAR);
\r
2050 case LED_BLINK_WPS_STOP: //WPS success
\r
2051 SwLedOff(Adapter, pLed);
\r
2052 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
2060 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink13\n"));
\r
2069 PADAPTER Adapter = pLed->padapter;
\r
2070 struct mlme_priv *pmlmepriv = &(Adapter->mlmepriv);
\r
2071 BOOLEAN bStopBlinking = _FALSE;
\r
2072 static u8 LinkBlinkCnt=0;
\r
2074 // Change LED according to BlinkingLedState specified.
\r
2075 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
2077 SwLedOn(Adapter, pLed);
\r
2078 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
2082 if(pLed->CurrLedState != LED_BLINK_WPS_STOP)
\r
2083 SwLedOff(Adapter, pLed);
\r
2084 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
2086 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("!!! SwLedBlink14 CurrLedState %d, bLedWPSBlinkInProgress %d, bLedBlinkInProgress %d\n", pLed->CurrLedState,pLed->bLedWPSBlinkInProgress,pLed->bLedBlinkInProgress));
\r
2087 switch(pLed->CurrLedState)
\r
2089 case LED_BLINK_TXRX:
\r
2090 pLed->BlinkTimes--;
\r
2091 if( pLed->BlinkTimes == 0 )
\r
2093 bStopBlinking = _TRUE;
\r
2097 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
2099 SwLedOff(Adapter, pLed);
\r
2103 SwLedOn(Adapter, pLed);
\r
2105 pLed->bLedBlinkInProgress = _FALSE;
\r
2109 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
2111 SwLedOff(Adapter, pLed);
\r
2115 if( pLed->bLedOn )
\r
2117 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2118 if (IS_HARDWARE_TYPE_8812AU(Adapter))
\r
2119 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
\r
2121 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
2125 pLed->BlinkingLedState = RTW_LED_ON;
\r
2126 if (IS_HARDWARE_TYPE_8812AU(Adapter))
\r
2127 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
2129 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
2141 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink14\n"));
\r
2149 PADAPTER Adapter = pLed->padapter;
\r
2150 struct mlme_priv *pmlmepriv = &(Adapter->mlmepriv);
\r
2151 BOOLEAN bStopBlinking = _FALSE;
\r
2152 static u8 LinkBlinkCnt=0;
\r
2153 // Change LED according to BlinkingLedState specified.
\r
2155 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
2157 SwLedOn(Adapter, pLed);
\r
2158 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
2162 if(pLed->CurrLedState != LED_BLINK_WPS_STOP)
\r
2163 SwLedOff(Adapter, pLed);
\r
2164 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
2166 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("!!! SwLedBlink15 CurrLedState %d, bLedWPSBlinkInProgress %d, bLedBlinkInProgress %d\n", pLed->CurrLedState,pLed->bLedWPSBlinkInProgress,pLed->bLedBlinkInProgress));
\r
2167 switch(pLed->CurrLedState)
\r
2169 case LED_BLINK_WPS:
\r
2170 if( pLed->bLedOn )
\r
2172 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2173 _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_ON_INTERVAL_DLINK);
\r
2177 pLed->BlinkingLedState = RTW_LED_ON;
\r
2178 _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_OFF_INTERVAL_DLINK);
\r
2182 case LED_BLINK_WPS_STOP: //WPS success
\r
2183 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("blink15, LED_BLINK_WPS_STOP BlinkingLedState %d\n",pLed->BlinkingLedState));
\r
2185 if(pLed->BlinkingLedState == RTW_LED_OFF)
\r
2187 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
2191 pLed->CurrLedState = LED_BLINK_WPS_STOP;
\r
2192 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2194 _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_LINKED_ON_INTERVAL_DLINK);
\r
2197 case LED_BLINK_NO_LINK:
\r
2199 static BOOLEAN bLedOn=_TRUE;
\r
2200 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("blink15, LED_NO_LINK_BLINK bLedOn %d\n",bLedOn));
\r
2204 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2209 pLed->BlinkingLedState = RTW_LED_ON;
\r
2211 pLed->bLedBlinkInProgress = _TRUE;
\r
2212 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL);
\r
2216 case LED_BLINK_LINK_IDEL:
\r
2218 static BOOLEAN bLedOn=_TRUE;
\r
2219 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("blink15, LED_BLINK_LINK_IDEL bLedOn %d\n",bLedOn));
\r
2223 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2228 pLed->BlinkingLedState = RTW_LED_ON;
\r
2231 pLed->bLedBlinkInProgress = _TRUE;
\r
2232 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_IDEL_INTERVAL);
\r
2236 case LED_BLINK_SCAN:
\r
2238 static u8 BlinkTime=0;
\r
2239 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("blink15, LED_SCAN_BLINK bLedOn %d\n",BlinkTime));
\r
2240 if(BlinkTime %2==0)
\r
2242 pLed->BlinkingLedState = RTW_LED_ON;
\r
2246 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2252 pLed->bLedBlinkInProgress = _TRUE;
\r
2254 if(pLed->BlinkingLedState == RTW_LED_ON)
\r
2255 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_OFF_INTERVAL);
\r
2257 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_ON_INTERVAL);
\r
2261 //if(pLed->OLDLedState ==LED_NO_LINK_BLINK)
\r
2262 if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)
\r
2264 pLed->CurrLedState = LED_BLINK_NO_LINK;
\r
2265 pLed->BlinkingLedState = RTW_LED_ON;
\r
2267 _set_timer(&(pLed->BlinkTimer), 100);
\r
2274 case LED_BLINK_TXRX:
\r
2275 pLed->BlinkTimes--;
\r
2276 if( pLed->BlinkTimes == 0 )
\r
2278 bStopBlinking = _TRUE;
\r
2282 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
2284 SwLedOff(Adapter, pLed);
\r
2288 SwLedOn(Adapter, pLed);
\r
2290 pLed->bLedBlinkInProgress = _FALSE;
\r
2294 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
2296 SwLedOff(Adapter, pLed);
\r
2300 if( pLed->bLedOn )
\r
2301 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2303 pLed->BlinkingLedState = RTW_LED_ON;
\r
2304 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
2314 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink15\n"));
\r
2319 // Handler function of LED Blinking.
\r
2320 // We dispatch acture LED blink action according to LedStrategy.
\r
2322 void BlinkHandler(PLED_USB pLed)
\r
2324 _adapter *padapter = pLed->padapter;
\r
2325 struct led_priv *ledpriv = &(padapter->ledpriv);
\r
2327 //DBG_871X("%s (%s:%d)\n",__FUNCTION__, current->comm, current->pid);
\r
2329 if( (padapter->bSurpriseRemoved == _TRUE) || (padapter->hw_init_completed == _FALSE))
\r
2331 //DBG_871X("%s bSurpriseRemoved:%d, bDriverStopped:%d\n", __FUNCTION__, padapter->bSurpriseRemoved, padapter->bDriverStopped);
\r
2335 switch(ledpriv->LedStrategy)
\r
2337 case SW_LED_MODE0:
\r
2341 case SW_LED_MODE1:
\r
2342 SwLedBlink1(pLed);
\r
2345 case SW_LED_MODE2:
\r
2346 SwLedBlink2(pLed);
\r
2349 case SW_LED_MODE3:
\r
2350 SwLedBlink3(pLed);
\r
2353 case SW_LED_MODE4:
\r
2354 SwLedBlink4(pLed);
\r
2357 case SW_LED_MODE5:
\r
2358 SwLedBlink5(pLed);
\r
2361 case SW_LED_MODE6:
\r
2362 SwLedBlink6(pLed);
\r
2365 case SW_LED_MODE7:
\r
2366 SwLedBlink7(pLed);
\r
2369 case SW_LED_MODE8:
\r
2370 SwLedBlink8(pLed);
\r
2373 case SW_LED_MODE9:
\r
2374 SwLedBlink9(pLed);
\r
2377 case SW_LED_MODE10:
\r
2378 SwLedBlink10(pLed);
\r
2381 case SW_LED_MODE11:
\r
2382 SwLedBlink11(pLed);
\r
2385 case SW_LED_MODE12:
\r
2386 SwLedBlink12(pLed);
\r
2389 case SW_LED_MODE13:
\r
2390 SwLedBlink13(pLed);
\r
2393 case SW_LED_MODE14:
\r
2394 SwLedBlink14(pLed);
\r
2397 case SW_LED_MODE15:
\r
2398 SwLedBlink15(pLed);
\r
2402 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("BlinkWorkItemCallback 0x%x \n", ledpriv->LedStrategy));
\r
2403 //SwLedBlink(pLed);
\r
2410 // Callback function of LED BlinkTimer,
\r
2411 // it just schedules to corresponding BlinkWorkItem/led_blink_hdl
\r
2413 void BlinkTimerCallback(void *data)
\r
2415 PLED_USB pLed = (PLED_USB)data;
\r
2416 _adapter *padapter = pLed->padapter;
\r
2418 //DBG_871X("%s\n", __FUNCTION__);
\r
2420 if( (padapter->bSurpriseRemoved == _TRUE) || (padapter->hw_init_completed == _FALSE))
\r
2422 //DBG_871X("%s bSurpriseRemoved:%d, bDriverStopped:%d\n", __FUNCTION__, padapter->bSurpriseRemoved, padapter->bDriverStopped);
\r
2426 #ifdef CONFIG_LED_HANDLED_BY_CMD_THREAD
\r
2427 rtw_led_blink_cmd(padapter, (PVOID)pLed);
\r
2429 _set_workitem(&(pLed->BlinkWorkItem));
\r
2435 // Callback function of LED BlinkWorkItem.
\r
2436 // We dispatch acture LED blink action according to LedStrategy.
\r
2438 void BlinkWorkItemCallback(_workitem *work)
\r
2440 PLED_USB pLed = container_of(work, LED_USB, BlinkWorkItem);
\r
2441 BlinkHandler(pLed);
\r
2445 SwLedControlMode0(
\r
2446 _adapter *padapter,
\r
2447 LED_CTL_MODE LedAction
\r
2450 struct led_priv *ledpriv = &(padapter->ledpriv);
\r
2451 PLED_USB pLed = &(ledpriv->SwLed1);
\r
2453 // Decide led state
\r
2458 if( pLed->bLedBlinkInProgress == _FALSE )
\r
2460 pLed->bLedBlinkInProgress = _TRUE;
\r
2462 pLed->CurrLedState = LED_BLINK_NORMAL;
\r
2463 pLed->BlinkTimes = 2;
\r
2465 if( pLed->bLedOn )
\r
2466 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2468 pLed->BlinkingLedState = RTW_LED_ON;
\r
2469 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
2473 case LED_CTL_START_TO_LINK:
\r
2474 if( pLed->bLedBlinkInProgress == _FALSE )
\r
2476 pLed->bLedBlinkInProgress = _TRUE;
\r
2478 pLed->CurrLedState = LED_BLINK_StartToBlink;
\r
2479 pLed->BlinkTimes = 24;
\r
2481 if( pLed->bLedOn )
\r
2482 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2484 pLed->BlinkingLedState = RTW_LED_ON;
\r
2485 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
\r
2489 pLed->CurrLedState = LED_BLINK_StartToBlink;
\r
2493 case LED_CTL_LINK:
\r
2494 pLed->CurrLedState = RTW_LED_ON;
\r
2495 if( pLed->bLedBlinkInProgress == _FALSE )
\r
2497 pLed->BlinkingLedState = RTW_LED_ON;
\r
2498 _set_timer(&(pLed->BlinkTimer), 0);
\r
2502 case LED_CTL_NO_LINK:
\r
2503 pLed->CurrLedState = RTW_LED_OFF;
\r
2504 if( pLed->bLedBlinkInProgress == _FALSE )
\r
2506 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2507 _set_timer(&(pLed->BlinkTimer), 0);
\r
2511 case LED_CTL_POWER_OFF:
\r
2512 pLed->CurrLedState = RTW_LED_OFF;
\r
2513 if(pLed->bLedBlinkInProgress)
\r
2515 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2516 pLed->bLedBlinkInProgress = _FALSE;
\r
2518 SwLedOff(padapter, pLed);
\r
2521 case LED_CTL_START_WPS:
\r
2522 if( pLed->bLedBlinkInProgress == _FALSE || pLed->CurrLedState == RTW_LED_ON)
\r
2524 pLed->bLedBlinkInProgress = _TRUE;
\r
2526 pLed->CurrLedState = LED_BLINK_WPS;
\r
2527 pLed->BlinkTimes = 20;
\r
2529 if( pLed->bLedOn )
\r
2531 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2532 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LONG_INTERVAL);
\r
2536 pLed->BlinkingLedState = RTW_LED_ON;
\r
2537 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LONG_INTERVAL);
\r
2542 case LED_CTL_STOP_WPS:
\r
2543 if(pLed->bLedBlinkInProgress)
\r
2545 pLed->CurrLedState = RTW_LED_OFF;
\r
2546 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2547 pLed->bLedBlinkInProgress = _FALSE;
\r
2556 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led %d\n", pLed->CurrLedState));
\r
2560 //ALPHA, added by chiyoko, 20090106
\r
2562 SwLedControlMode1(
\r
2563 _adapter *padapter,
\r
2564 LED_CTL_MODE LedAction
\r
2567 struct led_priv *ledpriv = &(padapter->ledpriv);
\r
2568 PLED_USB pLed = &(ledpriv->SwLed0);
\r
2569 struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
\r
2570 EEPROM_EFUSE_PRIV *pEEPROM = GET_EEPROM_EFUSE_PRIV(padapter);
\r
2572 u32 uLedBlinkNoLinkInterval = LED_BLINK_NO_LINK_INTERVAL_ALPHA; //add by ylb 20121012 for customer led for alpha
\r
2573 if(pEEPROM->CustomerID == RT_CID_819x_ALPHA_Dlink)
\r
2574 uLedBlinkNoLinkInterval= LED_BLINK_NO_LINK_INTERVAL_ALPHA_500MS;
\r
2576 if(pEEPROM->CustomerID == RT_CID_819x_CAMEO)
\r
2577 pLed = &(ledpriv->SwLed1);
\r
2581 case LED_CTL_POWER_ON:
\r
2582 case LED_CTL_START_TO_LINK:
\r
2583 case LED_CTL_NO_LINK:
\r
2584 if( pLed->bLedNoLinkBlinkInProgress == _FALSE )
\r
2586 if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
\r
2590 if( pLed->bLedLinkBlinkInProgress == _TRUE )
\r
2592 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2593 pLed->bLedLinkBlinkInProgress = _FALSE;
\r
2595 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
2597 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2598 pLed->bLedBlinkInProgress = _FALSE;
\r
2601 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
2602 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
2603 if( pLed->bLedOn )
\r
2604 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2606 pLed->BlinkingLedState = RTW_LED_ON;
\r
2607 _set_timer(&(pLed->BlinkTimer), uLedBlinkNoLinkInterval);//change by ylb 20121012 for customer led for alpha
\r
2611 case LED_CTL_LINK:
\r
2612 if( pLed->bLedLinkBlinkInProgress == _FALSE )
\r
2614 if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
\r
2618 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
2620 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2621 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
2623 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
2625 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2626 pLed->bLedBlinkInProgress = _FALSE;
\r
2628 pLed->bLedLinkBlinkInProgress = _TRUE;
\r
2629 pLed->CurrLedState = LED_BLINK_NORMAL;
\r
2630 if( pLed->bLedOn )
\r
2631 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2633 pLed->BlinkingLedState = RTW_LED_ON;
\r
2634 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
\r
2638 case LED_CTL_SITE_SURVEY:
\r
2639 if((pmlmepriv->LinkDetectInfo.bBusyTraffic) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))
\r
2641 else if(pLed->bLedScanBlinkInProgress ==_FALSE)
\r
2643 if(IS_LED_WPS_BLINKING(pLed))
\r
2646 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
2648 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2649 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
2651 if( pLed->bLedLinkBlinkInProgress == _TRUE )
\r
2653 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2654 pLed->bLedLinkBlinkInProgress = _FALSE;
\r
2656 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
2658 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2659 pLed->bLedBlinkInProgress = _FALSE;
\r
2661 pLed->bLedScanBlinkInProgress = _TRUE;
\r
2662 pLed->CurrLedState = LED_BLINK_SCAN;
\r
2663 pLed->BlinkTimes = 24;
\r
2664 if( pLed->bLedOn )
\r
2665 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2667 pLed->BlinkingLedState = RTW_LED_ON;
\r
2669 if (adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason == RF_CHANGE_BY_IPS)
\r
2670 _set_timer(&(pLed->BlinkTimer), LED_INITIAL_INTERVAL);
\r
2672 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
2679 if(pLed->bLedBlinkInProgress ==_FALSE)
\r
2681 if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
\r
2685 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
2687 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2688 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
2690 if( pLed->bLedLinkBlinkInProgress == _TRUE )
\r
2692 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2693 pLed->bLedLinkBlinkInProgress = _FALSE;
\r
2695 pLed->bLedBlinkInProgress = _TRUE;
\r
2696 pLed->CurrLedState = LED_BLINK_TXRX;
\r
2697 pLed->BlinkTimes = 2;
\r
2698 if( pLed->bLedOn )
\r
2699 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2701 pLed->BlinkingLedState = RTW_LED_ON;
\r
2702 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
2706 case LED_CTL_START_WPS: //wait until xinpin finish
\r
2707 case LED_CTL_START_WPS_BOTTON:
\r
2708 if(pLed->bLedWPSBlinkInProgress ==_FALSE)
\r
2710 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
2712 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2713 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
2715 if( pLed->bLedLinkBlinkInProgress == _TRUE )
\r
2717 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2718 pLed->bLedLinkBlinkInProgress = _FALSE;
\r
2720 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
2722 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2723 pLed->bLedBlinkInProgress = _FALSE;
\r
2725 if(pLed->bLedScanBlinkInProgress ==_TRUE)
\r
2727 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2728 pLed->bLedScanBlinkInProgress = _FALSE;
\r
2730 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
2731 pLed->CurrLedState = LED_BLINK_WPS;
\r
2732 if( pLed->bLedOn )
\r
2733 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2735 pLed->BlinkingLedState = RTW_LED_ON;
\r
2736 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
2741 case LED_CTL_STOP_WPS:
\r
2742 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
2744 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2745 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
2747 if( pLed->bLedLinkBlinkInProgress == _TRUE )
\r
2749 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2750 pLed->bLedLinkBlinkInProgress = _FALSE;
\r
2752 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
2754 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2755 pLed->bLedBlinkInProgress = _FALSE;
\r
2757 if(pLed->bLedScanBlinkInProgress ==_TRUE)
\r
2759 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2760 pLed->bLedScanBlinkInProgress = _FALSE;
\r
2762 if(pLed->bLedWPSBlinkInProgress)
\r
2764 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2768 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
2771 pLed->CurrLedState = LED_BLINK_WPS_STOP;
\r
2774 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2775 _set_timer(&(pLed->BlinkTimer), LED_BLINK_WPS_SUCESS_INTERVAL_ALPHA);
\r
2779 pLed->BlinkingLedState = RTW_LED_ON;
\r
2780 _set_timer(&(pLed->BlinkTimer), 0);
\r
2784 case LED_CTL_STOP_WPS_FAIL:
\r
2785 if(pLed->bLedWPSBlinkInProgress)
\r
2787 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2788 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
2791 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
2792 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
2793 if( pLed->bLedOn )
\r
2794 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2796 pLed->BlinkingLedState = RTW_LED_ON;
\r
2797 _set_timer(&(pLed->BlinkTimer), uLedBlinkNoLinkInterval);//change by ylb 20121012 for customer led for alpha
\r
2800 case LED_CTL_POWER_OFF:
\r
2801 pLed->CurrLedState = RTW_LED_OFF;
\r
2802 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2803 if( pLed->bLedNoLinkBlinkInProgress)
\r
2805 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2806 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
2808 if( pLed->bLedLinkBlinkInProgress)
\r
2810 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2811 pLed->bLedLinkBlinkInProgress = _FALSE;
\r
2813 if( pLed->bLedBlinkInProgress)
\r
2815 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2816 pLed->bLedBlinkInProgress = _FALSE;
\r
2818 if( pLed->bLedWPSBlinkInProgress )
\r
2820 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2821 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
2823 if( pLed->bLedScanBlinkInProgress)
\r
2825 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2826 pLed->bLedScanBlinkInProgress = _FALSE;
\r
2829 SwLedOff(padapter, pLed);
\r
2837 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led %d\n", pLed->CurrLedState));
\r
2840 //Arcadyan/Sitecom , added by chiyoko, 20090216
\r
2842 SwLedControlMode2(
\r
2843 _adapter *padapter,
\r
2844 LED_CTL_MODE LedAction
\r
2847 struct led_priv *ledpriv = &(padapter->ledpriv);
\r
2848 struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
\r
2849 PLED_USB pLed = &(ledpriv->SwLed0);
\r
2853 case LED_CTL_SITE_SURVEY:
\r
2854 if(pmlmepriv->LinkDetectInfo.bBusyTraffic)
\r
2856 else if(pLed->bLedScanBlinkInProgress ==_FALSE)
\r
2858 if(IS_LED_WPS_BLINKING(pLed))
\r
2861 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
2863 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2864 pLed->bLedBlinkInProgress = _FALSE;
\r
2866 pLed->bLedScanBlinkInProgress = _TRUE;
\r
2867 pLed->CurrLedState = LED_BLINK_SCAN;
\r
2868 pLed->BlinkTimes = 24;
\r
2869 if( pLed->bLedOn )
\r
2870 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2872 pLed->BlinkingLedState = RTW_LED_ON;
\r
2873 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
2879 if((pLed->bLedBlinkInProgress ==_FALSE) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))
\r
2881 if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
\r
2886 pLed->bLedBlinkInProgress = _TRUE;
\r
2887 pLed->CurrLedState = LED_BLINK_TXRX;
\r
2888 pLed->BlinkTimes = 2;
\r
2889 if( pLed->bLedOn )
\r
2890 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2892 pLed->BlinkingLedState = RTW_LED_ON;
\r
2893 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
2897 case LED_CTL_LINK:
\r
2898 pLed->CurrLedState = RTW_LED_ON;
\r
2899 pLed->BlinkingLedState = RTW_LED_ON;
\r
2900 if( pLed->bLedBlinkInProgress)
\r
2902 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2903 pLed->bLedBlinkInProgress = _FALSE;
\r
2905 if( pLed->bLedScanBlinkInProgress)
\r
2907 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2908 pLed->bLedScanBlinkInProgress = _FALSE;
\r
2911 _set_timer(&(pLed->BlinkTimer), 0);
\r
2914 case LED_CTL_START_WPS: //wait until xinpin finish
\r
2915 case LED_CTL_START_WPS_BOTTON:
\r
2916 if(pLed->bLedWPSBlinkInProgress ==_FALSE)
\r
2918 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
2920 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2921 pLed->bLedBlinkInProgress = _FALSE;
\r
2923 if(pLed->bLedScanBlinkInProgress ==_TRUE)
\r
2925 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2926 pLed->bLedScanBlinkInProgress = _FALSE;
\r
2928 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
2929 pLed->CurrLedState = RTW_LED_ON;
\r
2930 pLed->BlinkingLedState = RTW_LED_ON;
\r
2931 _set_timer(&(pLed->BlinkTimer), 0);
\r
2935 case LED_CTL_STOP_WPS:
\r
2936 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
2937 if(adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on)
\r
2939 pLed->CurrLedState = RTW_LED_OFF;
\r
2940 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2941 _set_timer(&(pLed->BlinkTimer), 0);
\r
2945 pLed->CurrLedState = RTW_LED_ON;
\r
2946 pLed->BlinkingLedState = RTW_LED_ON;
\r
2947 _set_timer(&(pLed->BlinkTimer), 0);
\r
2948 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
2952 case LED_CTL_STOP_WPS_FAIL:
\r
2953 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
2954 pLed->CurrLedState = RTW_LED_OFF;
\r
2955 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2956 _set_timer(&(pLed->BlinkTimer), 0);
\r
2957 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
2960 case LED_CTL_START_TO_LINK:
\r
2961 case LED_CTL_NO_LINK:
\r
2962 if(!IS_LED_BLINKING(pLed))
\r
2964 pLed->CurrLedState = RTW_LED_OFF;
\r
2965 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2966 _set_timer(&(pLed->BlinkTimer), 0);
\r
2970 case LED_CTL_POWER_OFF:
\r
2971 pLed->CurrLedState = RTW_LED_OFF;
\r
2972 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2973 if( pLed->bLedBlinkInProgress)
\r
2975 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2976 pLed->bLedBlinkInProgress = _FALSE;
\r
2978 if( pLed->bLedScanBlinkInProgress)
\r
2980 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2981 pLed->bLedScanBlinkInProgress = _FALSE;
\r
2983 if( pLed->bLedWPSBlinkInProgress )
\r
2985 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2986 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
2989 SwLedOff(padapter, pLed);
\r
2997 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
3000 //COREGA, added by chiyoko, 20090316
\r
3002 SwLedControlMode3(
\r
3003 _adapter *padapter,
\r
3004 LED_CTL_MODE LedAction
\r
3007 struct led_priv *ledpriv = &(padapter->ledpriv);
\r
3008 struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
\r
3009 PLED_USB pLed = &(ledpriv->SwLed0);
\r
3013 case LED_CTL_SITE_SURVEY:
\r
3014 if(pmlmepriv->LinkDetectInfo.bBusyTraffic)
\r
3016 else if(pLed->bLedScanBlinkInProgress ==_FALSE)
\r
3018 if(IS_LED_WPS_BLINKING(pLed))
\r
3021 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
3023 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3024 pLed->bLedBlinkInProgress = _FALSE;
\r
3026 pLed->bLedScanBlinkInProgress = _TRUE;
\r
3027 pLed->CurrLedState = LED_BLINK_SCAN;
\r
3028 pLed->BlinkTimes = 24;
\r
3029 if( pLed->bLedOn )
\r
3030 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3032 pLed->BlinkingLedState = RTW_LED_ON;
\r
3033 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
3039 if((pLed->bLedBlinkInProgress ==_FALSE) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))
\r
3041 if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
\r
3046 pLed->bLedBlinkInProgress = _TRUE;
\r
3047 pLed->CurrLedState = LED_BLINK_TXRX;
\r
3048 pLed->BlinkTimes = 2;
\r
3049 if( pLed->bLedOn )
\r
3050 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3052 pLed->BlinkingLedState = RTW_LED_ON;
\r
3053 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
3057 case LED_CTL_LINK:
\r
3058 if(IS_LED_WPS_BLINKING(pLed))
\r
3061 pLed->CurrLedState = RTW_LED_ON;
\r
3062 pLed->BlinkingLedState = RTW_LED_ON;
\r
3063 if( pLed->bLedBlinkInProgress)
\r
3065 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3066 pLed->bLedBlinkInProgress = _FALSE;
\r
3068 if( pLed->bLedScanBlinkInProgress)
\r
3070 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3071 pLed->bLedScanBlinkInProgress = _FALSE;
\r
3074 _set_timer(&(pLed->BlinkTimer), 0);
\r
3077 case LED_CTL_START_WPS: //wait until xinpin finish
\r
3078 case LED_CTL_START_WPS_BOTTON:
\r
3079 if(pLed->bLedWPSBlinkInProgress ==_FALSE)
\r
3081 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
3083 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3084 pLed->bLedBlinkInProgress = _FALSE;
\r
3086 if(pLed->bLedScanBlinkInProgress ==_TRUE)
\r
3088 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3089 pLed->bLedScanBlinkInProgress = _FALSE;
\r
3091 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
3092 pLed->CurrLedState = LED_BLINK_WPS;
\r
3093 if( pLed->bLedOn )
\r
3094 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3096 pLed->BlinkingLedState = RTW_LED_ON;
\r
3097 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
3101 case LED_CTL_STOP_WPS:
\r
3102 if(pLed->bLedWPSBlinkInProgress)
\r
3104 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3105 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
3109 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
3112 pLed->CurrLedState = LED_BLINK_WPS_STOP;
\r
3115 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3116 _set_timer(&(pLed->BlinkTimer), LED_BLINK_WPS_SUCESS_INTERVAL_ALPHA);
\r
3120 pLed->BlinkingLedState = RTW_LED_ON;
\r
3121 _set_timer(&(pLed->BlinkTimer), 0);
\r
3126 case LED_CTL_STOP_WPS_FAIL:
\r
3127 if(pLed->bLedWPSBlinkInProgress)
\r
3129 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3130 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
3133 pLed->CurrLedState = RTW_LED_OFF;
\r
3134 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3135 _set_timer(&(pLed->BlinkTimer), 0);
\r
3138 case LED_CTL_START_TO_LINK:
\r
3139 case LED_CTL_NO_LINK:
\r
3140 if(!IS_LED_BLINKING(pLed))
\r
3142 pLed->CurrLedState = RTW_LED_OFF;
\r
3143 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3144 _set_timer(&(pLed->BlinkTimer), 0);
\r
3148 case LED_CTL_POWER_OFF:
\r
3149 pLed->CurrLedState = RTW_LED_OFF;
\r
3150 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3151 if( pLed->bLedBlinkInProgress)
\r
3153 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3154 pLed->bLedBlinkInProgress = _FALSE;
\r
3156 if( pLed->bLedScanBlinkInProgress)
\r
3158 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3159 pLed->bLedScanBlinkInProgress = _FALSE;
\r
3161 if( pLed->bLedWPSBlinkInProgress )
\r
3163 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3164 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
3167 SwLedOff(padapter, pLed);
\r
3175 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
3179 //Edimax-Belkin, added by chiyoko, 20090413
\r
3181 SwLedControlMode4(
\r
3182 _adapter *padapter,
\r
3183 LED_CTL_MODE LedAction
\r
3186 struct led_priv *ledpriv = &(padapter->ledpriv);
\r
3187 struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
\r
3188 PLED_USB pLed = &(ledpriv->SwLed0);
\r
3189 PLED_USB pLed1 = &(ledpriv->SwLed1);
\r
3193 case LED_CTL_START_TO_LINK:
\r
3194 if(pLed1->bLedWPSBlinkInProgress)
\r
3196 pLed1->bLedWPSBlinkInProgress = _FALSE;
\r
3197 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
3199 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
3200 pLed1->CurrLedState = RTW_LED_OFF;
\r
3203 _set_timer(&(pLed->BlinkTimer), 0);
\r
3206 if( pLed->bLedStartToLinkBlinkInProgress == _FALSE )
\r
3208 if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
\r
3212 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
3214 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3215 pLed->bLedBlinkInProgress = _FALSE;
\r
3217 if(pLed->bLedNoLinkBlinkInProgress ==_TRUE)
\r
3219 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3220 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
3223 pLed->bLedStartToLinkBlinkInProgress = _TRUE;
\r
3224 pLed->CurrLedState = LED_BLINK_StartToBlink;
\r
3225 if( pLed->bLedOn )
\r
3227 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3228 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
\r
3232 pLed->BlinkingLedState = RTW_LED_ON;
\r
3233 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
3238 case LED_CTL_LINK:
\r
3239 case LED_CTL_NO_LINK:
\r
3241 if(LedAction == LED_CTL_LINK)
\r
3243 if(pLed1->bLedWPSBlinkInProgress)
\r
3245 pLed1->bLedWPSBlinkInProgress = _FALSE;
\r
3246 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
3248 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
3249 pLed1->CurrLedState = RTW_LED_OFF;
\r
3252 _set_timer(&(pLed->BlinkTimer), 0);
\r
3256 if( pLed->bLedNoLinkBlinkInProgress == _FALSE )
\r
3258 if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
\r
3262 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
3264 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3265 pLed->bLedBlinkInProgress = _FALSE;
\r
3268 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
3269 if(IS_HARDWARE_TYPE_8192DU(padapter))
\r
3271 if(LedAction == LED_CTL_LINK)
\r
3273 pLed->BlinkingLedState = RTW_LED_ON;
\r
3274 pLed->CurrLedState = LED_BLINK_ALWAYS_ON;
\r
3278 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
3279 if( pLed->bLedOn )
\r
3280 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3282 pLed->BlinkingLedState = RTW_LED_ON;
\r
3288 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
3289 if( pLed->bLedOn )
\r
3290 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3292 pLed->BlinkingLedState = RTW_LED_ON;
\r
3294 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
3298 case LED_CTL_SITE_SURVEY:
\r
3299 if((pmlmepriv->LinkDetectInfo.bBusyTraffic) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))
\r
3301 else if(pLed->bLedScanBlinkInProgress ==_FALSE)
\r
3303 if(IS_LED_WPS_BLINKING(pLed))
\r
3306 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
3308 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3309 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
3311 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
3313 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3314 pLed->bLedBlinkInProgress = _FALSE;
\r
3316 pLed->bLedScanBlinkInProgress = _TRUE;
\r
3317 if(IS_HARDWARE_TYPE_8192D(padapter))
\r
3318 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
3320 pLed->CurrLedState = LED_BLINK_SCAN;
\r
3321 pLed->BlinkTimes = 24;
\r
3322 if( pLed->bLedOn )
\r
3323 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3325 pLed->BlinkingLedState = RTW_LED_ON;
\r
3326 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
3332 if(pLed->bLedBlinkInProgress ==_FALSE)
\r
3334 if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
\r
3338 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
3340 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3341 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
3343 pLed->bLedBlinkInProgress = _TRUE;
\r
3344 pLed->CurrLedState = LED_BLINK_TXRX;
\r
3345 pLed->BlinkTimes = 2;
\r
3346 if( pLed->bLedOn )
\r
3347 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3349 pLed->BlinkingLedState = RTW_LED_ON;
\r
3350 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
3354 case LED_CTL_START_WPS: //wait until xinpin finish
\r
3355 case LED_CTL_START_WPS_BOTTON:
\r
3356 if(pLed1->bLedWPSBlinkInProgress)
\r
3358 pLed1->bLedWPSBlinkInProgress = _FALSE;
\r
3359 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
3361 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
3362 pLed1->CurrLedState = RTW_LED_OFF;
\r
3365 _set_timer(&(pLed->BlinkTimer), 0);
\r
3368 if(pLed->bLedWPSBlinkInProgress ==_FALSE)
\r
3370 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
3372 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3373 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
3375 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
3377 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3378 pLed->bLedBlinkInProgress = _FALSE;
\r
3380 if(pLed->bLedScanBlinkInProgress ==_TRUE)
\r
3382 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3383 pLed->bLedScanBlinkInProgress = _FALSE;
\r
3385 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
3386 pLed->CurrLedState = LED_BLINK_WPS;
\r
3387 if( pLed->bLedOn )
\r
3389 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3390 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
\r
3394 pLed->BlinkingLedState = RTW_LED_ON;
\r
3395 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
3400 case LED_CTL_STOP_WPS: //WPS connect success
\r
3401 if(pLed->bLedWPSBlinkInProgress)
\r
3403 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3404 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
3407 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
3408 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
3409 if( pLed->bLedOn )
\r
3410 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3412 pLed->BlinkingLedState = RTW_LED_ON;
\r
3413 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
3417 case LED_CTL_STOP_WPS_FAIL: //WPS authentication fail
\r
3418 if(pLed->bLedWPSBlinkInProgress)
\r
3420 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3421 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
3424 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
3425 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
3426 if( pLed->bLedOn )
\r
3427 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3429 pLed->BlinkingLedState = RTW_LED_ON;
\r
3430 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
3433 if(pLed1->bLedWPSBlinkInProgress)
\r
3434 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
3436 pLed1->bLedWPSBlinkInProgress = _TRUE;
\r
3438 pLed1->CurrLedState = LED_BLINK_WPS_STOP;
\r
3439 if( pLed1->bLedOn )
\r
3440 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
3442 pLed1->BlinkingLedState = RTW_LED_ON;
\r
3443 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
3447 case LED_CTL_STOP_WPS_FAIL_OVERLAP: //WPS session overlap
\r
3448 if(pLed->bLedWPSBlinkInProgress)
\r
3450 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3451 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
3454 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
3455 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
3456 if( pLed->bLedOn )
\r
3457 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3459 pLed->BlinkingLedState = RTW_LED_ON;
\r
3460 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
3463 if(pLed1->bLedWPSBlinkInProgress)
\r
3464 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
3466 pLed1->bLedWPSBlinkInProgress = _TRUE;
\r
3468 pLed1->CurrLedState = LED_BLINK_WPS_STOP_OVERLAP;
\r
3469 pLed1->BlinkTimes = 10;
\r
3470 if( pLed1->bLedOn )
\r
3471 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
3473 pLed1->BlinkingLedState = RTW_LED_ON;
\r
3474 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
3478 case LED_CTL_POWER_OFF:
\r
3479 pLed->CurrLedState = RTW_LED_OFF;
\r
3480 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3482 if( pLed->bLedNoLinkBlinkInProgress)
\r
3484 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3485 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
3487 if( pLed->bLedLinkBlinkInProgress)
\r
3489 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3490 pLed->bLedLinkBlinkInProgress = _FALSE;
\r
3492 if( pLed->bLedBlinkInProgress)
\r
3494 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3495 pLed->bLedBlinkInProgress = _FALSE;
\r
3497 if( pLed->bLedWPSBlinkInProgress )
\r
3499 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3500 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
3502 if( pLed->bLedScanBlinkInProgress)
\r
3504 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3505 pLed->bLedScanBlinkInProgress = _FALSE;
\r
3507 if( pLed->bLedStartToLinkBlinkInProgress)
\r
3509 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3510 pLed->bLedStartToLinkBlinkInProgress = _FALSE;
\r
3513 if( pLed1->bLedWPSBlinkInProgress )
\r
3515 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
3516 pLed1->bLedWPSBlinkInProgress = _FALSE;
\r
3519 pLed1->BlinkingLedState = LED_UNKNOWN;
\r
3520 SwLedOff(padapter, pLed);
\r
3521 SwLedOff(padapter, pLed1);
\r
3524 case LED_CTL_CONNECTION_NO_TRANSFER:
\r
3525 if(pLed->bLedBlinkInProgress == _FALSE)
\r
3527 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
3529 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3530 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
3532 pLed->bLedBlinkInProgress = _TRUE;
\r
3534 pLed->CurrLedState = LED_BLINK_ALWAYS_ON;
\r
3535 pLed->BlinkingLedState = RTW_LED_ON;
\r
3536 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
3545 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led %d\n", pLed->CurrLedState));
\r
3550 //Sercomm-Belkin, added by chiyoko, 20090415
\r
3552 SwLedControlMode5(
\r
3553 _adapter *padapter,
\r
3554 LED_CTL_MODE LedAction
\r
3557 struct led_priv *ledpriv = &(padapter->ledpriv);
\r
3558 struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
\r
3559 EEPROM_EFUSE_PRIV *pEEPROM = GET_EEPROM_EFUSE_PRIV(padapter);
\r
3560 PLED_USB pLed = &(ledpriv->SwLed0);
\r
3562 if(pEEPROM->CustomerID == RT_CID_819x_CAMEO)
\r
3563 pLed = &(ledpriv->SwLed1);
\r
3567 case LED_CTL_POWER_ON:
\r
3568 case LED_CTL_NO_LINK:
\r
3569 case LED_CTL_LINK: //solid blue
\r
3570 pLed->CurrLedState = RTW_LED_ON;
\r
3571 pLed->BlinkingLedState = RTW_LED_ON;
\r
3573 _set_timer(&(pLed->BlinkTimer), 0);
\r
3576 case LED_CTL_SITE_SURVEY:
\r
3577 if((pmlmepriv->LinkDetectInfo.bBusyTraffic) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))
\r
3579 else if(pLed->bLedScanBlinkInProgress ==_FALSE)
\r
3581 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
3583 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3584 pLed->bLedBlinkInProgress = _FALSE;
\r
3586 pLed->bLedScanBlinkInProgress = _TRUE;
\r
3587 pLed->CurrLedState = LED_BLINK_SCAN;
\r
3588 pLed->BlinkTimes = 24;
\r
3589 if( pLed->bLedOn )
\r
3590 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3592 pLed->BlinkingLedState = RTW_LED_ON;
\r
3593 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
3599 if(pLed->bLedBlinkInProgress ==_FALSE)
\r
3601 if(pLed->CurrLedState == LED_BLINK_SCAN)
\r
3605 pLed->bLedBlinkInProgress = _TRUE;
\r
3606 pLed->CurrLedState = LED_BLINK_TXRX;
\r
3607 pLed->BlinkTimes = 2;
\r
3608 if( pLed->bLedOn )
\r
3609 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3611 pLed->BlinkingLedState = RTW_LED_ON;
\r
3612 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
3616 case LED_CTL_POWER_OFF:
\r
3617 pLed->CurrLedState = RTW_LED_OFF;
\r
3618 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3620 if( pLed->bLedBlinkInProgress)
\r
3622 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3623 pLed->bLedBlinkInProgress = _FALSE;
\r
3626 SwLedOff(padapter, pLed);
\r
3634 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led %d\n", pLed->CurrLedState));
\r
3637 //WNC-Corega, added by chiyoko, 20090902
\r
3639 SwLedControlMode6(
\r
3640 _adapter *padapter,
\r
3641 LED_CTL_MODE LedAction
\r
3644 struct led_priv *ledpriv = &(padapter->ledpriv);
\r
3645 struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
\r
3646 PLED_USB pLed0 = &(ledpriv->SwLed0);
\r
3650 case LED_CTL_POWER_ON:
\r
3651 case LED_CTL_LINK:
\r
3652 case LED_CTL_NO_LINK:
\r
3653 _cancel_timer_ex(&(pLed0->BlinkTimer));
\r
3654 pLed0->CurrLedState = RTW_LED_ON;
\r
3655 pLed0->BlinkingLedState = RTW_LED_ON;
\r
3656 _set_timer(&(pLed0->BlinkTimer), 0);
\r
3659 case LED_CTL_POWER_OFF:
\r
3660 SwLedOff(padapter, pLed0);
\r
3667 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("ledcontrol 6 Led %d\n", pLed0->CurrLedState));
\r
3670 //Netgear, added by sinda, 2011/11/11
\r
3672 SwLedControlMode7(
\r
3674 LED_CTL_MODE LedAction
\r
3677 struct led_priv *ledpriv = &(Adapter->ledpriv);
\r
3678 struct mlme_priv *pmlmepriv = &Adapter->mlmepriv;
\r
3679 PLED_USB pLed = &(ledpriv->SwLed0);
\r
3683 case LED_CTL_SITE_SURVEY:
\r
3684 if(pmlmepriv->LinkDetectInfo.bBusyTraffic)
\r
3686 else if(pLed->bLedScanBlinkInProgress == _FALSE)
\r
3688 if(IS_LED_WPS_BLINKING(pLed))
\r
3691 if(pLed->bLedBlinkInProgress == _TRUE)
\r
3693 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3694 pLed->bLedBlinkInProgress = _FALSE;
\r
3696 pLed->bLedScanBlinkInProgress = _TRUE;
\r
3697 pLed->CurrLedState = LED_BLINK_SCAN;
\r
3698 pLed->BlinkTimes = 6;
\r
3699 if( pLed->bLedOn )
\r
3700 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3702 pLed->BlinkingLedState = RTW_LED_ON;
\r
3703 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
\r
3707 case LED_CTL_LINK:
\r
3708 if(IS_LED_WPS_BLINKING(pLed))
\r
3711 pLed->CurrLedState = RTW_LED_ON;
\r
3712 pLed->BlinkingLedState = RTW_LED_ON;
\r
3713 if( pLed->bLedBlinkInProgress)
\r
3715 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3716 pLed->bLedBlinkInProgress = _FALSE;
\r
3718 if( pLed->bLedScanBlinkInProgress)
\r
3720 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3721 pLed->bLedScanBlinkInProgress = _FALSE;
\r
3724 _set_timer(&(pLed->BlinkTimer), 0);
\r
3727 case LED_CTL_START_WPS: //wait until xinpin finish
\r
3728 case LED_CTL_START_WPS_BOTTON:
\r
3729 if(pLed->bLedWPSBlinkInProgress ==_FALSE)
\r
3731 if(pLed->bLedBlinkInProgress == _TRUE)
\r
3733 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3734 pLed->bLedBlinkInProgress = _FALSE;
\r
3736 if(pLed->bLedScanBlinkInProgress == _TRUE)
\r
3738 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3739 pLed->bLedScanBlinkInProgress = _FALSE;
\r
3741 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
3742 pLed->CurrLedState = LED_BLINK_WPS;
\r
3743 if( pLed->bLedOn )
\r
3744 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3746 pLed->BlinkingLedState = RTW_LED_ON;
\r
3747 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
\r
3751 case LED_CTL_STOP_WPS:
\r
3752 if(pLed->bLedWPSBlinkInProgress)
\r
3754 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3755 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
3759 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
3762 pLed->CurrLedState = LED_BLINK_WPS_STOP;
\r
3765 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3766 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
\r
3770 pLed->BlinkingLedState = RTW_LED_ON;
\r
3771 _set_timer(&(pLed->BlinkTimer), 0);
\r
3777 case LED_CTL_STOP_WPS_FAIL:
\r
3778 case LED_CTL_STOP_WPS_FAIL_OVERLAP: //WPS session overlap
\r
3779 if(pLed->bLedWPSBlinkInProgress)
\r
3781 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3782 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
3785 pLed->CurrLedState = RTW_LED_OFF;
\r
3786 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3787 _set_timer(&(pLed->BlinkTimer), 0);
\r
3790 case LED_CTL_START_TO_LINK:
\r
3791 case LED_CTL_NO_LINK:
\r
3792 if(!IS_LED_BLINKING(pLed))
\r
3794 pLed->CurrLedState = RTW_LED_OFF;
\r
3795 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3796 _set_timer(&(pLed->BlinkTimer), 0);
\r
3800 case LED_CTL_POWER_OFF:
\r
3801 case LED_CTL_POWER_ON:
\r
3802 pLed->CurrLedState = RTW_LED_OFF;
\r
3803 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3804 if( pLed->bLedBlinkInProgress)
\r
3806 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3807 pLed->bLedBlinkInProgress = _FALSE;
\r
3809 if( pLed->bLedScanBlinkInProgress)
\r
3811 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3812 pLed->bLedScanBlinkInProgress = _FALSE;
\r
3814 if( pLed->bLedWPSBlinkInProgress )
\r
3816 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3817 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
3820 _set_timer(&(pLed->BlinkTimer), 0);
\r
3828 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("LEd control mode 7 CurrLedState %d\n", pLed->CurrLedState));
\r
3832 SwLedControlMode8(
\r
3834 LED_CTL_MODE LedAction
\r
3837 struct led_priv *ledpriv = &(Adapter->ledpriv);
\r
3838 struct mlme_priv *pmlmepriv = &Adapter->mlmepriv;
\r
3839 PLED_USB pLed0 = &(ledpriv->SwLed0);
\r
3843 case LED_CTL_LINK:
\r
3844 _cancel_timer_ex(&(pLed0->BlinkTimer));
\r
3845 pLed0->CurrLedState = RTW_LED_ON;
\r
3846 pLed0->BlinkingLedState = RTW_LED_ON;
\r
3847 _set_timer(&(pLed0->BlinkTimer), 0);
\r
3850 case LED_CTL_NO_LINK:
\r
3851 _cancel_timer_ex(&(pLed0->BlinkTimer));
\r
3852 pLed0->CurrLedState = RTW_LED_OFF;
\r
3853 pLed0->BlinkingLedState = RTW_LED_OFF;
\r
3854 _set_timer(&(pLed0->BlinkTimer), 0);
\r
3857 case LED_CTL_POWER_OFF:
\r
3858 SwLedOff(Adapter, pLed0);
\r
3865 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 8 %d\n", pLed0->CurrLedState));
\r
3869 //page added for Belkin AC950, 20120813
\r
3871 SwLedControlMode9(
\r
3872 IN PADAPTER Adapter,
\r
3873 IN LED_CTL_MODE LedAction
\r
3876 struct led_priv *ledpriv = &(Adapter->ledpriv);
\r
3877 struct mlme_priv *pmlmepriv = &Adapter->mlmepriv;
\r
3878 PLED_USB pLed = &(ledpriv->SwLed0);
\r
3879 PLED_USB pLed1 = &(ledpriv->SwLed1);
\r
3880 PLED_USB pLed2 = &(ledpriv->SwLed2);
\r
3881 BOOLEAN bWPSOverLap = _FALSE;
\r
3885 case LED_CTL_START_TO_LINK:
\r
3886 if(pLed2->bLedBlinkInProgress == _FALSE)
\r
3888 pLed2->bLedBlinkInProgress = _TRUE;
\r
3889 pLed2->BlinkingLedState = RTW_LED_ON;
\r
3890 pLed2->CurrLedState = LED_BLINK_LINK_IN_PROCESS;
\r
3892 _set_timer(&(pLed2->BlinkTimer), 0);
\r
3896 case LED_CTL_LINK:
\r
3897 case LED_CTL_NO_LINK:
\r
3899 if(LedAction == LED_CTL_NO_LINK)
\r
3901 //if(pMgntInfo->AuthStatus == AUTH_STATUS_FAILED)
\r
3904 pLed1->CurrLedState = LED_BLINK_AUTH_ERROR;
\r
3905 if( pLed1->bLedOn )
\r
3906 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
3908 pLed1->BlinkingLedState = RTW_LED_ON;
\r
3909 _set_timer(&(pLed1->BlinkTimer), 0);
\r
3913 pLed1->CurrLedState = RTW_LED_OFF;
\r
3914 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
3915 if( pLed1->bLedOn )
\r
3916 _set_timer(&(pLed1->BlinkTimer), 0);
\r
3921 pLed1->CurrLedState = RTW_LED_OFF;
\r
3922 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
3923 if( pLed1->bLedOn )
\r
3924 _set_timer(&(pLed1->BlinkTimer), 0);
\r
3928 if(LedAction == LED_CTL_LINK)
\r
3930 if(Adapter->securitypriv.dot11PrivacyAlgrthm != _NO_PRIVACY_)
\r
3932 if(pLed2->bLedBlinkInProgress ==_TRUE)
\r
3934 _cancel_timer_ex(&(pLed2->BlinkTimer));
\r
3935 pLed2->bLedBlinkInProgress = _FALSE;
\r
3937 pLed2->CurrLedState = RTW_LED_ON;
\r
3938 pLed2->bLedNoLinkBlinkInProgress = _TRUE;
\r
3939 if(!pLed2->bLedOn)
\r
3940 _set_timer(&(pLed2->BlinkTimer), 0);
\r
3944 if(pLed2->bLedWPSBlinkInProgress != _TRUE)
\r
3946 pLed2->CurrLedState = RTW_LED_OFF;
\r
3947 pLed2->BlinkingLedState = RTW_LED_OFF;
\r
3949 _set_timer(&(pLed2->BlinkTimer), 0);
\r
3955 if(pLed2->bLedWPSBlinkInProgress == _FALSE)
\r
3957 pLed2->CurrLedState = RTW_LED_OFF;
\r
3958 pLed2->BlinkingLedState = RTW_LED_OFF;
\r
3960 _set_timer(&(pLed2->BlinkTimer), 0);
\r
3965 if( pLed->bLedNoLinkBlinkInProgress == _FALSE )
\r
3967 if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
\r
3971 if(pLed->bLedBlinkInProgress == _TRUE)
\r
3973 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3974 pLed->bLedBlinkInProgress = _FALSE;
\r
3977 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
3978 if(IS_HARDWARE_TYPE_8192DU(Adapter) || IS_HARDWARE_TYPE_8812AU(Adapter))
\r
3980 if(LedAction == LED_CTL_LINK)
\r
3982 pLed->BlinkingLedState = RTW_LED_ON;
\r
3983 pLed->CurrLedState = LED_BLINK_ALWAYS_ON;
\r
3987 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
3988 if( pLed->bLedOn )
\r
3989 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3991 pLed->BlinkingLedState = RTW_LED_ON;
\r
3996 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
3997 if( pLed->bLedOn )
\r
3998 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4000 pLed->BlinkingLedState = RTW_LED_ON;
\r
4002 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
4007 case LED_CTL_SITE_SURVEY:
\r
4008 if((pmlmepriv->LinkDetectInfo.bBusyTraffic) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))
\r
4010 else //if(pLed->bLedScanBlinkInProgress ==FALSE)
\r
4012 if(IS_LED_WPS_BLINKING(pLed))
\r
4015 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
4017 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4018 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
4020 if(pLed->bLedBlinkInProgress == _TRUE)
\r
4022 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4023 pLed->bLedBlinkInProgress = _FALSE;
\r
4025 pLed->bLedScanBlinkInProgress = _TRUE;
\r
4026 if(IS_HARDWARE_TYPE_8192D(Adapter))
\r
4027 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
4029 pLed->CurrLedState = LED_BLINK_SCAN;
\r
4030 pLed->BlinkTimes = 24;
\r
4031 if( pLed->bLedOn )
\r
4032 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4034 pLed->BlinkingLedState = RTW_LED_ON;
\r
4035 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
4042 if(pLed->bLedBlinkInProgress == _FALSE)
\r
4044 if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
\r
4048 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
4050 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4051 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
4053 pLed->bLedBlinkInProgress = _TRUE;
\r
4054 pLed->CurrLedState = LED_BLINK_TXRX;
\r
4055 pLed->BlinkTimes = 2;
\r
4056 if( pLed->bLedOn )
\r
4057 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4059 pLed->BlinkingLedState = RTW_LED_ON;
\r
4060 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
4064 case LED_CTL_START_WPS: //wait until xinpin finish
\r
4065 case LED_CTL_START_WPS_BOTTON:
\r
4066 pLed2->bLedBlinkInProgress = _TRUE;
\r
4067 pLed2->BlinkingLedState = RTW_LED_ON;
\r
4068 pLed2->CurrLedState = LED_BLINK_LINK_IN_PROCESS;
\r
4069 pLed2->bLedWPSBlinkInProgress = _TRUE;
\r
4071 _set_timer(&(pLed2->BlinkTimer), 0);
\r
4075 case LED_CTL_STOP_WPS: //WPS connect success
\r
4077 if(pLed2->bLedWPSBlinkInProgress == _TRUE)
\r
4079 _cancel_timer_ex(&(pLed2->BlinkTimer));
\r
4080 pLed2->bLedBlinkInProgress = _FALSE;
\r
4081 pLed2->bLedWPSBlinkInProgress = _FALSE;
\r
4083 pLed2->CurrLedState = RTW_LED_ON;
\r
4084 pLed2->bLedNoLinkBlinkInProgress = _TRUE;
\r
4085 if(!pLed2->bLedOn)
\r
4086 _set_timer(&(pLed2->BlinkTimer), 0);
\r
4089 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
4090 pLed1->CurrLedState = RTW_LED_OFF;
\r
4091 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
4092 if( pLed1->bLedOn )
\r
4093 _set_timer(&(pLed1->BlinkTimer), 0);
\r
4098 case LED_CTL_STOP_WPS_FAIL: //WPS authentication fail
\r
4100 //if(bWPSOverLap == _FALSE)
\r
4102 pLed1->CurrLedState = LED_BLINK_AUTH_ERROR;
\r
4103 pLed1->BlinkTimes = 50;
\r
4104 if( pLed1->bLedOn )
\r
4105 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
4107 pLed1->BlinkingLedState = RTW_LED_ON;
\r
4108 _set_timer(&(pLed1->BlinkTimer), 0);
\r
4112 // bWPSOverLap = _FALSE;
\r
4113 // pLed1->CurrLedState = RTW_LED_OFF;
\r
4114 // pLed1->BlinkingLedState = RTW_LED_OFF;
\r
4115 // _set_timer(&(pLed1->BlinkTimer), 0);
\r
4119 pLed2->CurrLedState = RTW_LED_OFF;
\r
4120 pLed2->BlinkingLedState = RTW_LED_OFF;
\r
4121 pLed2->bLedWPSBlinkInProgress = _FALSE;
\r
4122 if( pLed2->bLedOn )
\r
4123 _set_timer(&(pLed2->BlinkTimer), 0);
\r
4127 case LED_CTL_STOP_WPS_FAIL_OVERLAP: //WPS session overlap
\r
4129 bWPSOverLap = _TRUE;
\r
4130 pLed1->CurrLedState = LED_BLINK_WPS_STOP_OVERLAP;
\r
4131 pLed1->BlinkTimes = 10;
\r
4132 pLed1->BlinkCounter = 50;
\r
4133 if( pLed1->bLedOn )
\r
4134 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
4136 pLed1->BlinkingLedState = RTW_LED_ON;
\r
4137 _set_timer(&(pLed1->BlinkTimer), 0);
\r
4140 pLed2->CurrLedState = RTW_LED_OFF;
\r
4141 pLed2->BlinkingLedState = RTW_LED_OFF;
\r
4142 pLed2->bLedWPSBlinkInProgress = _FALSE;
\r
4143 if( pLed2->bLedOn )
\r
4144 _set_timer(&(pLed2->BlinkTimer), 0);
\r
4148 case LED_CTL_POWER_OFF:
\r
4149 pLed->CurrLedState = RTW_LED_OFF;
\r
4150 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4152 if( pLed->bLedNoLinkBlinkInProgress)
\r
4154 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4155 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
4157 if( pLed->bLedLinkBlinkInProgress)
\r
4159 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4160 pLed->bLedLinkBlinkInProgress = _FALSE;
\r
4162 if( pLed->bLedBlinkInProgress)
\r
4164 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4165 pLed->bLedBlinkInProgress = _FALSE;
\r
4167 if( pLed->bLedWPSBlinkInProgress )
\r
4169 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4170 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
4172 if( pLed->bLedScanBlinkInProgress)
\r
4174 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4175 pLed->bLedScanBlinkInProgress = _FALSE;
\r
4177 if( pLed->bLedStartToLinkBlinkInProgress)
\r
4179 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4180 pLed->bLedStartToLinkBlinkInProgress = _FALSE;
\r
4183 if( pLed1->bLedWPSBlinkInProgress )
\r
4185 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
4186 pLed1->bLedWPSBlinkInProgress = _FALSE;
\r
4190 pLed1->BlinkingLedState = LED_UNKNOWN;
\r
4191 SwLedOff(Adapter, pLed);
\r
4192 SwLedOff(Adapter, pLed1);
\r
4195 case LED_CTL_CONNECTION_NO_TRANSFER:
\r
4196 if(pLed->bLedBlinkInProgress == _FALSE)
\r
4198 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
4200 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4201 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
4203 pLed->bLedBlinkInProgress = _TRUE;
\r
4205 pLed->CurrLedState = LED_BLINK_ALWAYS_ON;
\r
4206 pLed->BlinkingLedState = RTW_LED_ON;
\r
4207 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
4216 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 9 Led %d\n", pLed->CurrLedState));
\r
4219 //page added for Netgear A6200V2, 20120827
\r
4221 SwLedControlMode10(
\r
4223 LED_CTL_MODE LedAction
\r
4226 HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
\r
4227 struct led_priv *ledpriv = &(Adapter->ledpriv);
\r
4228 struct mlme_priv *pmlmepriv = &Adapter->mlmepriv;
\r
4229 PLED_USB pLed = &(ledpriv->SwLed0);
\r
4230 PLED_USB pLed1 = &(ledpriv->SwLed1);
\r
4234 case LED_CTL_START_TO_LINK:
\r
4235 if(pLed1->bLedBlinkInProgress == _FALSE)
\r
4237 pLed1->bLedBlinkInProgress = _TRUE;
\r
4238 pLed1->BlinkingLedState = RTW_LED_ON;
\r
4239 pLed1->CurrLedState = LED_BLINK_LINK_IN_PROCESS;
\r
4241 _set_timer(&(pLed1->BlinkTimer), 0);
\r
4245 case LED_CTL_LINK:
\r
4246 case LED_CTL_NO_LINK:
\r
4247 if(LedAction == LED_CTL_LINK)
\r
4249 if(pLed->bLedWPSBlinkInProgress == _TRUE || pLed1->bLedWPSBlinkInProgress == _TRUE)
\r
4253 if(pHalData->CurrentBandType == BAND_ON_2_4G)
\r
4256 pLed->CurrLedState = RTW_LED_ON;
\r
4257 pLed->BlinkingLedState = RTW_LED_ON;
\r
4258 if(pLed->bLedBlinkInProgress == _TRUE)
\r
4260 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4261 pLed->bLedBlinkInProgress = _FALSE;
\r
4263 _set_timer(&(pLed->BlinkTimer), 0);
\r
4265 pLed1->CurrLedState = RTW_LED_OFF;
\r
4266 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
4267 _set_timer(&(pLed1->BlinkTimer), 0);
\r
4269 else if(pHalData->CurrentBandType == BAND_ON_5G)
\r
4272 pLed1->CurrLedState = RTW_LED_ON;
\r
4273 pLed1->BlinkingLedState = RTW_LED_ON;
\r
4274 if(pLed1->bLedBlinkInProgress == _TRUE)
\r
4276 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
4277 pLed1->bLedBlinkInProgress = _FALSE;
\r
4279 _set_timer(&(pLed1->BlinkTimer), 0);
\r
4281 pLed->CurrLedState = RTW_LED_OFF;
\r
4282 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4283 _set_timer(&(pLed->BlinkTimer), 0);
\r
4287 else if(LedAction == LED_CTL_NO_LINK) //TODO by page
\r
4289 if(pLed->bLedWPSBlinkInProgress == _TRUE || pLed1->bLedWPSBlinkInProgress == _TRUE)
\r
4293 pLed->CurrLedState = RTW_LED_OFF;
\r
4294 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4295 if( pLed->bLedOn )
\r
4296 _set_timer(&(pLed->BlinkTimer), 0);
\r
4298 pLed1->CurrLedState = RTW_LED_OFF;
\r
4299 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
4300 if( pLed1->bLedOn )
\r
4301 _set_timer(&(pLed1->BlinkTimer), 0);
\r
4307 case LED_CTL_SITE_SURVEY:
\r
4308 if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
\r
4309 ; //don't blink when media connect
\r
4310 else //if(pLed->bLedScanBlinkInProgress ==FALSE)
\r
4312 if(IS_LED_WPS_BLINKING(pLed) || IS_LED_WPS_BLINKING(pLed1))
\r
4315 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
4317 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4318 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
4320 if(pLed->bLedBlinkInProgress == _TRUE)
\r
4322 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4323 pLed->bLedBlinkInProgress = _FALSE;
\r
4325 pLed->bLedScanBlinkInProgress = _TRUE;
\r
4326 pLed->CurrLedState = LED_BLINK_SCAN;
\r
4327 pLed->BlinkTimes = 12;
\r
4328 pLed->BlinkingLedState = LED_BLINK_SCAN;
\r
4329 _set_timer(&(pLed->BlinkTimer), 0);
\r
4331 if(pLed1->bLedNoLinkBlinkInProgress == _TRUE)
\r
4333 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
4334 pLed1->bLedNoLinkBlinkInProgress = _FALSE;
\r
4336 if(pLed1->bLedBlinkInProgress == _TRUE)
\r
4338 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
4339 pLed1->bLedBlinkInProgress = _FALSE;
\r
4341 pLed1->bLedScanBlinkInProgress = _TRUE;
\r
4342 pLed1->CurrLedState = LED_BLINK_SCAN;
\r
4343 pLed1->BlinkTimes = 12;
\r
4344 pLed1->BlinkingLedState = LED_BLINK_SCAN;
\r
4345 _set_timer(&(pLed1->BlinkTimer), LED_BLINK_LINK_SLOWLY_INTERVAL_NETGEAR);
\r
4350 case LED_CTL_START_WPS: //wait until xinpin finish
\r
4351 case LED_CTL_START_WPS_BOTTON:
\r
4353 if(pLed->bLedBlinkInProgress == _FALSE)
\r
4355 pLed->bLedBlinkInProgress = _TRUE;
\r
4356 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
4357 pLed->BlinkingLedState = LED_BLINK_WPS;
\r
4358 pLed->CurrLedState = LED_BLINK_WPS;
\r
4359 _set_timer(&(pLed->BlinkTimer), 0);
\r
4363 if(pLed1->bLedBlinkInProgress == _FALSE)
\r
4365 pLed1->bLedBlinkInProgress = _TRUE;
\r
4366 pLed1->bLedWPSBlinkInProgress = _TRUE;
\r
4367 pLed1->BlinkingLedState = LED_BLINK_WPS;
\r
4368 pLed1->CurrLedState = LED_BLINK_WPS;
\r
4369 _set_timer(&(pLed1->BlinkTimer), LED_BLINK_NORMAL_INTERVAL+LED_BLINK_LINK_INTERVAL_NETGEAR);
\r
4375 case LED_CTL_STOP_WPS: //WPS connect success
\r
4376 if(pHalData->CurrentBandType == BAND_ON_2_4G)
\r
4379 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
4380 pLed->CurrLedState = RTW_LED_ON;
\r
4381 pLed->BlinkingLedState = RTW_LED_ON;
\r
4382 if(pLed->bLedBlinkInProgress == _TRUE)
\r
4384 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4385 pLed->bLedBlinkInProgress = _FALSE;
\r
4387 _set_timer(&(pLed->BlinkTimer), 0);
\r
4389 pLed1->CurrLedState = RTW_LED_OFF;
\r
4390 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
4391 _set_timer(&(pLed1->BlinkTimer), 0);
\r
4393 else if(pHalData->CurrentBandType == BAND_ON_5G)
\r
4396 pLed1->bLedWPSBlinkInProgress = _FALSE;
\r
4397 pLed1->CurrLedState = RTW_LED_ON;
\r
4398 pLed1->BlinkingLedState = RTW_LED_ON;
\r
4399 if(pLed1->bLedBlinkInProgress == _TRUE)
\r
4401 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
4402 pLed1->bLedBlinkInProgress = _FALSE;
\r
4404 _set_timer(&(pLed1->BlinkTimer), 0);
\r
4406 pLed->CurrLedState = RTW_LED_OFF;
\r
4407 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4408 _set_timer(&(pLed->BlinkTimer), 0);
\r
4413 case LED_CTL_STOP_WPS_FAIL: //WPS authentication fail
\r
4415 pLed1->bLedWPSBlinkInProgress = _FALSE;
\r
4416 pLed1->CurrLedState = RTW_LED_OFF;
\r
4417 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
4418 _set_timer(&(pLed1->BlinkTimer), 0);
\r
4421 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
4422 pLed->CurrLedState = RTW_LED_OFF;
\r
4423 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4424 if( pLed->bLedOn )
\r
4425 _set_timer(&(pLed->BlinkTimer), 0);
\r
4435 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 10 Led %d\n", pLed->CurrLedState));
\r
4438 //Edimax-ASUS, added by Page, 20121221
\r
4440 SwLedControlMode11(
\r
4442 LED_CTL_MODE LedAction
\r
4445 struct led_priv *ledpriv = &(Adapter->ledpriv);
\r
4446 struct mlme_priv *pmlmepriv = &Adapter->mlmepriv;
\r
4447 PLED_USB pLed = &(ledpriv->SwLed0);
\r
4451 case LED_CTL_POWER_ON:
\r
4452 case LED_CTL_START_TO_LINK:
\r
4453 case LED_CTL_NO_LINK:
\r
4454 pLed->CurrLedState = RTW_LED_ON;
\r
4455 pLed->BlinkingLedState = RTW_LED_ON;
\r
4456 _set_timer(&(pLed->BlinkTimer), 0);
\r
4459 case LED_CTL_LINK:
\r
4460 if( pLed->bLedBlinkInProgress == _TRUE )
\r
4462 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4463 pLed->bLedBlinkInProgress = _FALSE;
\r
4465 pLed->bLedBlinkInProgress = _TRUE;
\r
4466 pLed->CurrLedState = LED_BLINK_TXRX;
\r
4467 if( pLed->bLedOn )
\r
4468 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4470 pLed->BlinkingLedState = RTW_LED_ON;
\r
4471 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
4474 case LED_CTL_START_WPS: //wait until xinpin finish
\r
4475 case LED_CTL_START_WPS_BOTTON:
\r
4476 if(pLed->bLedBlinkInProgress == _TRUE)
\r
4478 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4479 pLed->bLedBlinkInProgress = _FALSE;
\r
4481 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
4482 pLed->bLedBlinkInProgress = _TRUE;
\r
4483 pLed->CurrLedState = LED_BLINK_WPS;
\r
4484 if( pLed->bLedOn )
\r
4485 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4487 pLed->BlinkingLedState = RTW_LED_ON;
\r
4488 pLed->BlinkTimes = 5;
\r
4489 _set_timer(&(pLed->BlinkTimer), 0);
\r
4494 case LED_CTL_STOP_WPS:
\r
4495 case LED_CTL_STOP_WPS_FAIL:
\r
4496 if(pLed->bLedBlinkInProgress == _TRUE)
\r
4498 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4499 pLed->bLedBlinkInProgress = _FALSE;
\r
4501 pLed->CurrLedState = LED_BLINK_WPS_STOP;
\r
4502 _set_timer(&(pLed->BlinkTimer), 0);
\r
4505 case LED_CTL_POWER_OFF:
\r
4506 pLed->CurrLedState = RTW_LED_OFF;
\r
4507 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4509 if( pLed->bLedNoLinkBlinkInProgress)
\r
4511 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4512 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
4514 if( pLed->bLedLinkBlinkInProgress)
\r
4516 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4517 pLed->bLedLinkBlinkInProgress = _FALSE;
\r
4519 if( pLed->bLedBlinkInProgress)
\r
4521 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4522 pLed->bLedBlinkInProgress = _FALSE;
\r
4524 if( pLed->bLedWPSBlinkInProgress )
\r
4526 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4527 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
4529 if( pLed->bLedScanBlinkInProgress)
\r
4531 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4532 pLed->bLedScanBlinkInProgress = _FALSE;
\r
4535 SwLedOff(Adapter, pLed);
\r
4543 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led mode 1 CurrLedState %d\n", pLed->CurrLedState));
\r
4546 // page added for NEC
\r
4549 SwLedControlMode12(
\r
4551 LED_CTL_MODE LedAction
\r
4554 struct led_priv *ledpriv = &(Adapter->ledpriv);
\r
4555 struct mlme_priv *pmlmepriv = &Adapter->mlmepriv;
\r
4556 PLED_USB pLed = &(ledpriv->SwLed0);
\r
4560 case LED_CTL_POWER_ON:
\r
4561 case LED_CTL_NO_LINK:
\r
4562 case LED_CTL_LINK:
\r
4563 case LED_CTL_SITE_SURVEY:
\r
4565 if( pLed->bLedNoLinkBlinkInProgress == _FALSE )
\r
4567 if(pLed->bLedBlinkInProgress == _TRUE)
\r
4569 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4570 pLed->bLedBlinkInProgress = _FALSE;
\r
4573 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
4574 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
4575 if( pLed->bLedOn )
\r
4576 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4578 pLed->BlinkingLedState = RTW_LED_ON;
\r
4579 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
4585 if(pLed->bLedBlinkInProgress == _FALSE)
\r
4587 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
4589 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4590 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
4592 pLed->bLedBlinkInProgress = _TRUE;
\r
4593 pLed->CurrLedState = LED_BLINK_TXRX;
\r
4594 pLed->BlinkTimes = 2;
\r
4595 if( pLed->bLedOn )
\r
4596 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4598 pLed->BlinkingLedState = RTW_LED_ON;
\r
4599 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
4603 case LED_CTL_POWER_OFF:
\r
4604 pLed->CurrLedState = RTW_LED_OFF;
\r
4605 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4607 if( pLed->bLedBlinkInProgress)
\r
4609 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4610 pLed->bLedBlinkInProgress = _FALSE;
\r
4613 if( pLed->bLedScanBlinkInProgress)
\r
4615 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4616 pLed->bLedScanBlinkInProgress = _FALSE;
\r
4619 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
4621 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4622 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
4625 SwLedOff(Adapter, pLed);
\r
4633 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SWLed12 %d\n", pLed->CurrLedState));
\r
4636 // Maddest add for NETGEAR R6100
\r
4639 SwLedControlMode13(
\r
4640 IN PADAPTER Adapter,
\r
4641 IN LED_CTL_MODE LedAction
\r
4644 struct led_priv *ledpriv = &(Adapter->ledpriv);
\r
4645 struct mlme_priv *pmlmepriv = &Adapter->mlmepriv;
\r
4646 PLED_USB pLed = &(ledpriv->SwLed0);
\r
4648 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 13 CurrLedState %d, LedAction %d\n", pLed->CurrLedState,LedAction));
\r
4651 case LED_CTL_LINK:
\r
4652 if(pLed->bLedWPSBlinkInProgress)
\r
4658 pLed->CurrLedState = RTW_LED_ON;
\r
4659 pLed->BlinkingLedState = RTW_LED_ON;
\r
4660 if( pLed->bLedBlinkInProgress)
\r
4662 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4663 pLed->bLedBlinkInProgress = _FALSE;
\r
4665 if( pLed->bLedScanBlinkInProgress)
\r
4667 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4668 pLed->bLedScanBlinkInProgress = _FALSE;
\r
4671 _set_timer(&(pLed->BlinkTimer), 0);
\r
4674 case LED_CTL_START_WPS: //wait until xinpin finish
\r
4675 case LED_CTL_START_WPS_BOTTON:
\r
4676 if(pLed->bLedWPSBlinkInProgress == _FALSE)
\r
4678 if(pLed->bLedBlinkInProgress == _TRUE)
\r
4680 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4681 pLed->bLedBlinkInProgress = _FALSE;
\r
4683 if(pLed->bLedScanBlinkInProgress == _TRUE)
\r
4685 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4686 pLed->bLedScanBlinkInProgress = _FALSE;
\r
4688 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
4689 pLed->CurrLedState = LED_BLINK_WPS;
\r
4690 if( pLed->bLedOn )
\r
4692 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4693 _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_OFF_INTERVAL_NETGEAR);
\r
4697 pLed->BlinkingLedState = RTW_LED_ON;
\r
4698 _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_ON_INTERVAL_NETGEAR);
\r
4703 case LED_CTL_STOP_WPS:
\r
4704 if(pLed->bLedWPSBlinkInProgress)
\r
4706 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4707 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
4711 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
4714 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
4715 pLed->CurrLedState = LED_BLINK_WPS_STOP;
\r
4718 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4720 _set_timer(&(pLed->BlinkTimer), 0);
\r
4726 case LED_CTL_STOP_WPS_FAIL:
\r
4727 case LED_CTL_STOP_WPS_FAIL_OVERLAP: //WPS session overlap
\r
4728 if(pLed->bLedWPSBlinkInProgress)
\r
4730 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4731 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
4734 pLed->CurrLedState = RTW_LED_OFF;
\r
4735 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4736 _set_timer(&(pLed->BlinkTimer), 0);
\r
4739 case LED_CTL_START_TO_LINK:
\r
4740 if((pLed->bLedBlinkInProgress == _FALSE) && (pLed->bLedWPSBlinkInProgress == _FALSE))
\r
4742 pLed->bLedBlinkInProgress = _TRUE;
\r
4743 pLed->BlinkingLedState = RTW_LED_ON;
\r
4744 pLed->CurrLedState = LED_BLINK_LINK_IN_PROCESS;
\r
4746 _set_timer(&(pLed->BlinkTimer), 0);
\r
4750 case LED_CTL_NO_LINK:
\r
4752 if(pLed->bLedWPSBlinkInProgress)
\r
4756 if( pLed->bLedBlinkInProgress)
\r
4758 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4759 pLed->bLedBlinkInProgress = _FALSE;
\r
4761 if( pLed->bLedScanBlinkInProgress)
\r
4763 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4764 pLed->bLedScanBlinkInProgress = _FALSE;
\r
4766 //if(!IS_LED_BLINKING(pLed))
\r
4768 pLed->CurrLedState = RTW_LED_OFF;
\r
4769 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4770 _set_timer(&(pLed->BlinkTimer), 0);
\r
4774 case LED_CTL_POWER_OFF:
\r
4775 case LED_CTL_POWER_ON:
\r
4776 pLed->CurrLedState = RTW_LED_OFF;
\r
4777 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4778 if( pLed->bLedBlinkInProgress)
\r
4780 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4781 pLed->bLedBlinkInProgress = _FALSE;
\r
4783 if( pLed->bLedScanBlinkInProgress)
\r
4785 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4786 pLed->bLedScanBlinkInProgress = _FALSE;
\r
4788 if( pLed->bLedWPSBlinkInProgress )
\r
4790 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4791 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
4794 if (LedAction == LED_CTL_POWER_ON)
\r
4795 _set_timer(&(pLed->BlinkTimer), 0);
\r
4797 SwLedOff(Adapter, pLed);
\r
4808 // Maddest add for DNI Buffalo
\r
4811 SwLedControlMode14(
\r
4812 IN PADAPTER Adapter,
\r
4813 IN LED_CTL_MODE LedAction
\r
4816 struct led_priv *ledpriv = &(Adapter->ledpriv);
\r
4817 PLED_USB pLed = &(ledpriv->SwLed0);
\r
4819 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 14 CurrLedState %d, LedAction %d\n", pLed->CurrLedState,LedAction));
\r
4822 case LED_CTL_POWER_OFF:
\r
4823 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 14 LED_CTL_POWER_OFF\n"));
\r
4824 pLed->CurrLedState = RTW_LED_OFF;
\r
4825 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4826 if( pLed->bLedBlinkInProgress)
\r
4828 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4829 pLed->bLedBlinkInProgress = _FALSE;
\r
4831 SwLedOff(Adapter, pLed);
\r
4834 case LED_CTL_POWER_ON:
\r
4835 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 14 LED_CTL_POWER_ON\n"));
\r
4836 SwLedOn(Adapter, pLed);
\r
4839 case LED_CTL_LINK:
\r
4840 case LED_CTL_NO_LINK:
\r
4841 if (IS_HARDWARE_TYPE_8812AU(Adapter))
\r
4842 SwLedOn(Adapter, pLed);
\r
4847 if(pLed->bLedBlinkInProgress ==_FALSE)
\r
4849 pLed->bLedBlinkInProgress = _TRUE;
\r
4850 pLed->CurrLedState = LED_BLINK_TXRX;
\r
4851 pLed->BlinkTimes = 2;
\r
4852 if( pLed->bLedOn )
\r
4854 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4855 if (IS_HARDWARE_TYPE_8812AU(Adapter))
\r
4856 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
\r
4858 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
4862 pLed->BlinkingLedState = RTW_LED_ON;
\r
4863 if (IS_HARDWARE_TYPE_8812AU(Adapter))
\r
4864 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
4866 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
4876 // Maddest add for Dlink
\r
4879 SwLedControlMode15(
\r
4880 IN PADAPTER Adapter,
\r
4881 IN LED_CTL_MODE LedAction
\r
4884 struct led_priv *ledpriv = &(Adapter->ledpriv);
\r
4885 struct mlme_priv *pmlmepriv = &Adapter->mlmepriv;
\r
4886 PLED_USB pLed = &(ledpriv->SwLed0);
\r
4888 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 CurrLedState %d, LedAction %d\n", pLed->CurrLedState,LedAction));
\r
4891 case LED_CTL_START_WPS: //wait until xinpin finish
\r
4892 case LED_CTL_START_WPS_BOTTON:
\r
4893 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 LED_CTL_START_WPS\n"));
\r
4894 if(pLed->bLedWPSBlinkInProgress ==_FALSE)
\r
4896 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
4898 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4899 pLed->bLedBlinkInProgress = _FALSE;
\r
4901 if(pLed->bLedScanBlinkInProgress ==_TRUE)
\r
4903 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4904 pLed->bLedScanBlinkInProgress = _FALSE;
\r
4906 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
4907 pLed->CurrLedState = LED_BLINK_WPS;
\r
4908 if( pLed->bLedOn )
\r
4910 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4911 _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_OFF_INTERVAL_NETGEAR);
\r
4915 pLed->BlinkingLedState = RTW_LED_ON;
\r
4916 _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_ON_INTERVAL_NETGEAR);
\r
4921 case LED_CTL_STOP_WPS:
\r
4922 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 LED_CTL_STOP_WPS\n"));
\r
4923 if(pLed->bLedWPSBlinkInProgress)
\r
4925 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4928 pLed->CurrLedState = LED_BLINK_WPS_STOP;
\r
4929 //if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
\r
4931 pLed->BlinkingLedState = RTW_LED_ON;
\r
4933 _set_timer(&(pLed->BlinkTimer), 0);
\r
4938 case LED_CTL_STOP_WPS_FAIL:
\r
4939 case LED_CTL_STOP_WPS_FAIL_OVERLAP: //WPS session overlap
\r
4940 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 LED_CTL_STOP_WPS_FAIL\n"));
\r
4941 if(pLed->bLedWPSBlinkInProgress)
\r
4943 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4944 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
4947 pLed->CurrLedState = RTW_LED_OFF;
\r
4948 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4949 _set_timer(&(pLed->BlinkTimer), 0);
\r
4952 case LED_CTL_NO_LINK:
\r
4953 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 LED_CTL_NO_LINK\n"));
\r
4954 if(pLed->bLedWPSBlinkInProgress)
\r
4959 /*if(Adapter->securitypriv.dot11PrivacyAlgrthm > _NO_PRIVACY_)
\r
4961 if(SecIsTxKeyInstalled(Adapter, pMgntInfo->Bssid))
\r
4966 if(pMgntInfo->LEDAssocState ==LED_ASSOC_SECURITY_BEGIN)
\r
4971 if( pLed->bLedBlinkInProgress)
\r
4973 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4974 pLed->bLedBlinkInProgress = _FALSE;
\r
4976 if( pLed->bLedScanBlinkInProgress)
\r
4978 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4979 pLed->bLedScanBlinkInProgress = _FALSE;
\r
4981 //if(!IS_LED_BLINKING(pLed))
\r
4983 pLed->CurrLedState = LED_BLINK_NO_LINK;
\r
4984 pLed->BlinkingLedState = RTW_LED_ON;
\r
4985 _set_timer(&(pLed->BlinkTimer), 30);
\r
4989 case LED_CTL_LINK:
\r
4990 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 LED_CTL_LINK\n"));
\r
4992 if(pLed->bLedWPSBlinkInProgress)
\r
4997 if( pLed->bLedBlinkInProgress)
\r
4999 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
5000 pLed->bLedBlinkInProgress = _FALSE;
\r
5003 pLed->CurrLedState = LED_BLINK_LINK_IDEL;
\r
5004 pLed->BlinkingLedState = RTW_LED_ON;
\r
5006 _set_timer(&(pLed->BlinkTimer), 30);
\r
5009 case LED_CTL_SITE_SURVEY :
\r
5010 if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
\r
5013 if(pLed->bLedWPSBlinkInProgress ==_TRUE)
\r
5016 if( pLed->bLedBlinkInProgress)
\r
5018 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
5019 pLed->bLedBlinkInProgress = _FALSE;
\r
5021 pLed->CurrLedState = LED_BLINK_SCAN;
\r
5022 pLed->BlinkingLedState = RTW_LED_ON;
\r
5023 _set_timer(&(pLed->BlinkTimer), 0);
\r
5028 if(pLed->bLedWPSBlinkInProgress)
\r
5033 if( pLed->bLedBlinkInProgress)
\r
5035 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
5036 pLed->bLedBlinkInProgress = _FALSE;
\r
5039 pLed->bLedBlinkInProgress = _TRUE;
\r
5040 pLed->CurrLedState = LED_BLINK_TXRX;
\r
5041 pLed->BlinkTimes = 2;
\r
5042 if( pLed->bLedOn )
\r
5043 pLed->BlinkingLedState = RTW_LED_OFF;
\r
5045 pLed->BlinkingLedState = RTW_LED_ON;
\r
5046 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
5056 _adapter *padapter,
\r
5057 LED_CTL_MODE LedAction
\r
5060 struct led_priv *ledpriv = &(padapter->ledpriv);
\r
5062 #if(MP_DRIVER == 1)
\r
5063 if (padapter->registrypriv.mp_mode == 1)
\r
5067 if( (padapter->bSurpriseRemoved == _TRUE) ||(padapter->hw_init_completed == _FALSE) )
\r
5072 if( ledpriv->bRegUseLed == _FALSE)
\r
5075 //if(priv->bInHctTest)
\r
5078 #ifdef CONFIG_CONCURRENT_MODE
\r
5079 // Only do led action for PRIMARY_ADAPTER
\r
5080 if (padapter->adapter_type != PRIMARY_ADAPTER)
\r
5084 if( (adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on &&
\r
5085 adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS) &&
\r
5086 (LedAction == LED_CTL_TX || LedAction == LED_CTL_RX ||
\r
5087 LedAction == LED_CTL_SITE_SURVEY ||
\r
5088 LedAction == LED_CTL_LINK ||
\r
5089 LedAction == LED_CTL_NO_LINK ||
\r
5090 LedAction == LED_CTL_POWER_ON) )
\r
5095 switch(ledpriv->LedStrategy)
\r
5097 case SW_LED_MODE0:
\r
5098 SwLedControlMode0(padapter, LedAction);
\r
5101 case SW_LED_MODE1:
\r
5102 SwLedControlMode1(padapter, LedAction);
\r
5105 case SW_LED_MODE2:
\r
5106 SwLedControlMode2(padapter, LedAction);
\r
5109 case SW_LED_MODE3:
\r
5110 SwLedControlMode3(padapter, LedAction);
\r
5113 case SW_LED_MODE4:
\r
5114 SwLedControlMode4(padapter, LedAction);
\r
5117 case SW_LED_MODE5:
\r
5118 SwLedControlMode5(padapter, LedAction);
\r
5121 case SW_LED_MODE6:
\r
5122 SwLedControlMode6(padapter, LedAction);
\r
5125 case SW_LED_MODE7:
\r
5126 SwLedControlMode7(padapter, LedAction);
\r
5129 case SW_LED_MODE8:
\r
5130 SwLedControlMode8(padapter, LedAction);
\r
5133 case SW_LED_MODE9:
\r
5134 SwLedControlMode9(padapter, LedAction);
\r
5137 case SW_LED_MODE10:
\r
5138 SwLedControlMode10(padapter, LedAction);
\r
5141 case SW_LED_MODE11:
\r
5142 SwLedControlMode11(padapter, LedAction);
\r
5145 case SW_LED_MODE12:
\r
5146 SwLedControlMode12(padapter, LedAction);
\r
5149 case SW_LED_MODE13:
\r
5150 SwLedControlMode13(padapter, LedAction);
\r
5153 case SW_LED_MODE14:
\r
5154 SwLedControlMode14(padapter, LedAction);
\r
5157 case SW_LED_MODE15:
\r
5158 SwLedControlMode15(padapter, LedAction);
\r
5165 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("LedStrategy:%d, LedAction %d\n", ledpriv->LedStrategy,LedAction));
\r
5170 // Reset status of LED_871x object.
\r
5172 void ResetLedStatus(PLED_USB pLed) {
\r
5174 pLed->CurrLedState = RTW_LED_OFF; // Current LED state.
\r
5175 pLed->bLedOn = _FALSE; // true if LED is ON, false if LED is OFF.
\r
5177 pLed->bLedBlinkInProgress = _FALSE; // true if it is blinking, false o.w..
\r
5178 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
5180 pLed->BlinkTimes = 0; // Number of times to toggle led state for blinking.
\r
5181 pLed->BlinkCounter = 0;
\r
5182 pLed->BlinkingLedState = LED_UNKNOWN; // Next state for blinking, either RTW_LED_ON or RTW_LED_OFF are.
\r
5184 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
5185 pLed->bLedLinkBlinkInProgress = _FALSE;
\r
5186 pLed->bLedStartToLinkBlinkInProgress = _FALSE;
\r
5187 pLed->bLedScanBlinkInProgress = _FALSE;
\r
5192 // Initialize an LED_871x object.
\r
5196 _adapter *padapter,
\r
5201 pLed->padapter = padapter;
\r
5202 pLed->LedPin = LedPin;
\r
5204 ResetLedStatus(pLed);
\r
5206 _init_timer(&(pLed->BlinkTimer), padapter->pnetdev, BlinkTimerCallback, pLed);
\r
5208 _init_workitem(&(pLed->BlinkWorkItem), BlinkWorkItemCallback, pLed);
\r
5214 // DeInitialize an LED_871x object.
\r
5221 _cancel_workitem_sync(&(pLed->BlinkWorkItem));
\r
5222 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
5223 ResetLedStatus(pLed);
\r