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 PHAL_DATA_TYPE pHalData = GET_HAL_DATA(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(pHalData->CustomerID == RT_CID_819x_ALPHA_Dlink)
\r
160 uLedBlinkNoLinkInterval= LED_BLINK_NO_LINK_INTERVAL_ALPHA_500MS;
\r
162 if(pHalData->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(pHalData->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
800 pLed->BlinkingLedState = RTW_LED_OFF;
\r
802 pLed->BlinkingLedState = RTW_LED_ON;
\r
804 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
809 case LED_BLINK_WPS:
\r
812 pLed->BlinkingLedState = RTW_LED_OFF;
\r
813 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
\r
817 pLed->BlinkingLedState = RTW_LED_ON;
\r
818 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
822 case LED_BLINK_WPS_STOP: //WPS authentication fail
\r
824 pLed->BlinkingLedState = RTW_LED_OFF;
\r
826 pLed->BlinkingLedState = RTW_LED_ON;
\r
828 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
831 case LED_BLINK_WPS_STOP_OVERLAP: //WPS session overlap
\r
832 pLed->BlinkTimes--;
\r
833 if(pLed->BlinkTimes == 0)
\r
837 pLed->BlinkTimes = 1;
\r
841 bStopBlinking = _TRUE;
\r
847 pLed->BlinkTimes = 10;
\r
848 pLed->BlinkingLedState = RTW_LED_ON;
\r
849 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
\r
854 pLed->BlinkingLedState = RTW_LED_OFF;
\r
856 pLed->BlinkingLedState = RTW_LED_ON;
\r
858 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
862 case LED_BLINK_ALWAYS_ON:
\r
863 pLed->BlinkTimes--;
\r
864 if( pLed->BlinkTimes == 0 )
\r
866 bStopBlinking = _TRUE;
\r
870 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
872 SwLedOff(padapter, pLed);
\r
876 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
877 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
879 pLed->BlinkingLedState = RTW_LED_OFF;
\r
881 pLed->BlinkingLedState = RTW_LED_ON;
\r
883 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
885 pLed->bLedBlinkInProgress = _FALSE;
\r
889 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
891 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("RFOff Status \n"));
\r
892 SwLedOff(padapter, pLed);
\r
897 pLed->BlinkingLedState = RTW_LED_OFF;
\r
899 pLed->BlinkingLedState = RTW_LED_ON;
\r
901 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
910 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink4 CurrLedState %d\n", pLed->CurrLedState));
\r
920 _adapter *padapter = pLed->padapter;
\r
921 struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
\r
922 u8 bStopBlinking = _FALSE;
\r
924 // Change LED according to BlinkingLedState specified.
\r
925 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
927 SwLedOn(padapter, pLed);
\r
928 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
932 SwLedOff(padapter, pLed);
\r
933 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
936 switch(pLed->CurrLedState)
\r
938 case LED_BLINK_SCAN:
\r
939 pLed->BlinkTimes--;
\r
940 if( pLed->BlinkTimes == 0 )
\r
942 bStopBlinking = _TRUE;
\r
947 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
949 pLed->CurrLedState = RTW_LED_OFF;
\r
950 pLed->BlinkingLedState = RTW_LED_OFF;
\r
952 SwLedOff(padapter, pLed);
\r
955 { pLed->CurrLedState = RTW_LED_ON;
\r
956 pLed->BlinkingLedState = RTW_LED_ON;
\r
958 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
961 pLed->bLedScanBlinkInProgress = _FALSE;
\r
965 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
967 SwLedOff(padapter, pLed);
\r
972 pLed->BlinkingLedState = RTW_LED_OFF;
\r
974 pLed->BlinkingLedState = RTW_LED_ON;
\r
975 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
981 case LED_BLINK_TXRX:
\r
982 pLed->BlinkTimes--;
\r
983 if( pLed->BlinkTimes == 0 )
\r
985 bStopBlinking = _TRUE;
\r
990 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
992 pLed->CurrLedState = RTW_LED_OFF;
\r
993 pLed->BlinkingLedState = RTW_LED_OFF;
\r
995 SwLedOff(padapter, pLed);
\r
999 pLed->CurrLedState = RTW_LED_ON;
\r
1000 pLed->BlinkingLedState = RTW_LED_ON;
\r
1002 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
1005 pLed->bLedBlinkInProgress = _FALSE;
\r
1009 if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1011 SwLedOff(padapter, pLed);
\r
1015 if( pLed->bLedOn )
\r
1016 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1018 pLed->BlinkingLedState = RTW_LED_ON;
\r
1019 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
1028 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink5 CurrLedState %d\n", pLed->CurrLedState));
\r
1038 _adapter *padapter = pLed->padapter;
\r
1039 struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
\r
1040 u8 bStopBlinking = _FALSE;
\r
1042 // Change LED according to BlinkingLedState specified.
\r
1043 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
1045 SwLedOn(padapter, pLed);
\r
1046 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
1050 SwLedOff(padapter, pLed);
\r
1051 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
1054 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink6\n"));
\r
1062 PADAPTER Adapter = pLed->padapter;
\r
1063 struct mlme_priv *pmlmepriv = &(Adapter->mlmepriv);
\r
1064 BOOLEAN bStopBlinking = _FALSE;
\r
1066 // Change LED according to BlinkingLedState specified.
\r
1067 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
1069 SwLedOn(Adapter, pLed);
\r
1070 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
1074 if(pLed->CurrLedState != LED_BLINK_WPS_STOP)
\r
1075 SwLedOff(Adapter, pLed);
\r
1076 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
1079 switch(pLed->CurrLedState)
\r
1081 case LED_BLINK_SCAN:
\r
1082 pLed->BlinkTimes--;
\r
1083 if( pLed->BlinkTimes == 0 )
\r
1085 bStopBlinking = _TRUE;
\r
1090 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on )
\r
1092 SwLedOff(Adapter, pLed);
\r
1094 else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
\r
1096 pLed->CurrLedState = RTW_LED_ON;
\r
1097 pLed->BlinkingLedState = RTW_LED_ON;
\r
1098 if( !pLed->bLedOn )
\r
1099 SwLedOn(Adapter, pLed);
\r
1101 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
1103 else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)
\r
1105 pLed->CurrLedState = RTW_LED_OFF;
\r
1106 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1107 if( pLed->bLedOn )
\r
1108 SwLedOff(Adapter, pLed);
\r
1110 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
1112 pLed->bLedScanBlinkInProgress = _FALSE;
\r
1116 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on )
\r
1118 SwLedOff(Adapter, pLed);
\r
1122 if( pLed->bLedOn )
\r
1123 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1125 pLed->BlinkingLedState = RTW_LED_ON;
\r
1126 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
\r
1131 case LED_BLINK_WPS:
\r
1132 if( pLed->bLedOn )
\r
1133 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1135 pLed->BlinkingLedState = RTW_LED_ON;
\r
1136 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
\r
1139 case LED_BLINK_WPS_STOP: //WPS success
\r
1140 if(pLed->BlinkingLedState == RTW_LED_ON)
\r
1142 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1143 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
\r
1144 bStopBlinking = _FALSE;
\r
1148 bStopBlinking = _TRUE;
\r
1153 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on )
\r
1155 SwLedOff(Adapter, pLed);
\r
1159 pLed->CurrLedState = RTW_LED_ON;
\r
1160 pLed->BlinkingLedState = RTW_LED_ON;
\r
1161 SwLedOn(Adapter, pLed);
\r
1162 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
1164 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
1173 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink7\n"));
\r
1182 PADAPTER Adapter = pLed->padapter;
\r
1184 // Change LED according to BlinkingLedState specified.
\r
1185 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
1187 SwLedOn(Adapter, pLed);
\r
1188 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes blink8(%d): turn on\n", pLed->BlinkTimes));
\r
1192 SwLedOff(Adapter, pLed);
\r
1193 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes blink8(%d): turn off\n", pLed->BlinkTimes));
\r
1196 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink8\n"));
\r
1200 //page added for Belkin AC950. 20120813
\r
1206 PADAPTER Adapter = pLed->padapter;
\r
1207 struct mlme_priv *pmlmepriv = &(Adapter->mlmepriv);
\r
1208 BOOLEAN bStopBlinking = _FALSE;
\r
1210 // Change LED according to BlinkingLedState specified.
\r
1211 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
1213 SwLedOn(Adapter, pLed);
\r
1214 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
1218 SwLedOff(Adapter, pLed);
\r
1219 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
1221 //DBG_871X("%s, pLed->CurrLedState=%d, pLed->BlinkingLedState=%d \n", __FUNCTION__, pLed->CurrLedState, pLed->BlinkingLedState);
\r
1224 switch(pLed->CurrLedState)
\r
1227 SwLedOn(Adapter, pLed);
\r
1231 SwLedOff(Adapter, pLed);
\r
1234 case LED_BLINK_SLOWLY:
\r
1235 if( pLed->bLedOn )
\r
1236 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1238 pLed->BlinkingLedState = RTW_LED_ON;
\r
1239 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
1242 case LED_BLINK_StartToBlink:
\r
1243 if( pLed->bLedOn )
\r
1245 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1246 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
\r
1250 pLed->BlinkingLedState = RTW_LED_ON;
\r
1251 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
1255 case LED_BLINK_SCAN:
\r
1256 pLed->BlinkTimes--;
\r
1257 if( pLed->BlinkTimes == 0 )
\r
1259 bStopBlinking = _TRUE;
\r
1264 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on )
\r
1266 SwLedOff(Adapter, pLed);
\r
1268 else if(check_fwstate(pmlmepriv, _FW_LINKED) == _TRUE)
\r
1270 pLed->bLedLinkBlinkInProgress = _TRUE;
\r
1271 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
1273 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
\r
1274 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
1276 else if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)
\r
1278 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
1279 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
1280 if( pLed->bLedOn )
\r
1281 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1283 pLed->BlinkingLedState = RTW_LED_ON;
\r
1284 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
1285 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
1287 pLed->BlinkTimes = 0;
\r
1288 pLed->bLedBlinkInProgress = _FALSE;
\r
1292 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1294 SwLedOff(Adapter, pLed);
\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_SCAN_INTERVAL_ALPHA);
\r
1307 case LED_BLINK_TXRX:
\r
1308 pLed->BlinkTimes--;
\r
1309 if( pLed->BlinkTimes == 0 )
\r
1311 bStopBlinking = _TRUE;
\r
1315 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1317 SwLedOff(Adapter, pLed);
\r
1321 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
1322 if( pLed->bLedOn )
\r
1323 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1325 pLed->BlinkingLedState = RTW_LED_ON;
\r
1326 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
1328 pLed->bLedBlinkInProgress = _FALSE;
\r
1332 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1334 SwLedOff(Adapter, pLed);
\r
1338 if( pLed->bLedOn )
\r
1339 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1341 pLed->BlinkingLedState = RTW_LED_ON;
\r
1343 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
1348 case LED_BLINK_WPS:
\r
1349 if( pLed->bLedOn )
\r
1351 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1352 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
\r
1356 pLed->BlinkingLedState = RTW_LED_ON;
\r
1357 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
1361 case LED_BLINK_WPS_STOP: //WPS authentication fail
\r
1362 if( pLed->bLedOn )
\r
1363 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1365 pLed->BlinkingLedState = RTW_LED_ON;
\r
1367 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
1370 case LED_BLINK_WPS_STOP_OVERLAP: //WPS session overlap
\r
1371 pLed->BlinkTimes--;
\r
1372 pLed->BlinkCounter --;
\r
1373 if(pLed->BlinkCounter == 0)
\r
1375 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1376 pLed->CurrLedState = RTW_LED_OFF;
\r
1377 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
1381 if(pLed->BlinkTimes == 0)
\r
1385 pLed->BlinkTimes = 1;
\r
1389 bStopBlinking = _TRUE;
\r
1395 pLed->BlinkTimes = 10;
\r
1396 pLed->BlinkingLedState = RTW_LED_ON;
\r
1397 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
\r
1401 if( pLed->bLedOn )
\r
1402 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1404 pLed->BlinkingLedState = RTW_LED_ON;
\r
1406 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
1411 case LED_BLINK_ALWAYS_ON:
\r
1412 pLed->BlinkTimes--;
\r
1413 if( pLed->BlinkTimes == 0 )
\r
1415 bStopBlinking = _TRUE;
\r
1419 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1421 SwLedOff(Adapter, pLed);
\r
1425 if(IS_HARDWARE_TYPE_8812AU(Adapter))
\r
1427 pLed->BlinkingLedState = RTW_LED_ON;
\r
1428 pLed->CurrLedState = LED_BLINK_ALWAYS_ON;
\r
1432 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
1433 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
1434 if( pLed->bLedOn )
\r
1435 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1437 pLed->BlinkingLedState = RTW_LED_ON;
\r
1439 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
1441 pLed->bLedBlinkInProgress = _FALSE;
\r
1445 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1447 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("RFOff Status \n"));
\r
1448 SwLedOff(Adapter, pLed);
\r
1452 if(IS_HARDWARE_TYPE_8812AU(Adapter))
\r
1454 pLed->BlinkingLedState = RTW_LED_ON;
\r
1458 if( pLed->bLedOn )
\r
1459 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1461 pLed->BlinkingLedState = RTW_LED_ON;
\r
1463 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
1468 case LED_BLINK_LINK_IN_PROCESS:
\r
1469 if( pLed->bLedOn )
\r
1471 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1472 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ON_BELKIN);
\r
1476 pLed->BlinkingLedState = RTW_LED_ON;
\r
1477 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_OFF_BELKIN);
\r
1481 case LED_BLINK_AUTH_ERROR:
\r
1482 pLed->BlinkTimes--;
\r
1483 if( pLed->BlinkTimes == 0 )
\r
1485 bStopBlinking = _TRUE;
\r
1487 if(bStopBlinking == _FALSE)
\r
1489 if( pLed->bLedOn )
\r
1491 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1492 _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);
\r
1496 pLed->BlinkingLedState = RTW_LED_ON;
\r
1497 _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);
\r
1502 pLed->CurrLedState = RTW_LED_OFF;
\r
1503 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1504 _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);
\r
1512 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink9 CurrLedState %d\n", pLed->CurrLedState));
\r
1515 //page added for Netgear A6200V2. 20120827
\r
1521 PADAPTER Adapter = pLed->padapter;
\r
1522 struct mlme_priv *pmlmepriv = &(Adapter->mlmepriv);
\r
1523 BOOLEAN bStopBlinking = _FALSE;
\r
1525 // Change LED according to BlinkingLedState specified.
\r
1526 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
1528 SwLedOn(Adapter, pLed);
\r
1529 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
1533 SwLedOff(Adapter, pLed);
\r
1534 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
1538 switch(pLed->CurrLedState)
\r
1541 SwLedOn(Adapter, pLed);
\r
1545 SwLedOff(Adapter, pLed);
\r
1548 case LED_BLINK_SLOWLY:
\r
1549 if( pLed->bLedOn )
\r
1550 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1552 pLed->BlinkingLedState = RTW_LED_ON;
\r
1553 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
1556 case LED_BLINK_StartToBlink:
\r
1557 if( pLed->bLedOn )
\r
1559 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1560 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
\r
1564 pLed->BlinkingLedState = RTW_LED_ON;
\r
1565 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
1569 case LED_BLINK_SCAN:
\r
1570 pLed->BlinkTimes--;
\r
1571 if( pLed->BlinkTimes == 0 )
\r
1573 bStopBlinking = _TRUE;
\r
1578 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on )
\r
1580 SwLedOff(Adapter, pLed);
\r
1582 else if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
\r
1584 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
1585 pLed->CurrLedState = RTW_LED_OFF;
\r
1586 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1588 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
1589 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
1591 pLed->BlinkTimes = 0;
\r
1592 pLed->bLedBlinkInProgress = _FALSE;
\r
1596 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1598 SwLedOff(Adapter, pLed);
\r
1602 if( pLed->bLedOn )
\r
1604 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1605 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
\r
1609 pLed->BlinkingLedState = RTW_LED_ON;
\r
1610 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_SLOWLY_INTERVAL_NETGEAR+LED_BLINK_LINK_INTERVAL_NETGEAR);
\r
1616 case LED_BLINK_WPS:
\r
1617 if( pLed->bLedOn )
\r
1619 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1620 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
\r
1624 pLed->BlinkingLedState = RTW_LED_ON;
\r
1625 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL+LED_BLINK_LINK_INTERVAL_NETGEAR);
\r
1629 case LED_BLINK_WPS_STOP: //WPS authentication fail
\r
1630 if( pLed->bLedOn )
\r
1631 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1633 pLed->BlinkingLedState = RTW_LED_ON;
\r
1635 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
1638 case LED_BLINK_WPS_STOP_OVERLAP: //WPS session overlap
\r
1639 pLed->BlinkTimes--;
\r
1640 pLed->BlinkCounter --;
\r
1641 if(pLed->BlinkCounter == 0)
\r
1643 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1644 pLed->CurrLedState = RTW_LED_OFF;
\r
1645 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
1649 if(pLed->BlinkTimes == 0)
\r
1653 pLed->BlinkTimes = 1;
\r
1657 bStopBlinking = _TRUE;
\r
1663 pLed->BlinkTimes = 10;
\r
1664 pLed->BlinkingLedState = RTW_LED_ON;
\r
1665 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
\r
1669 if( pLed->bLedOn )
\r
1670 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1672 pLed->BlinkingLedState = RTW_LED_ON;
\r
1674 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
1679 case LED_BLINK_ALWAYS_ON:
\r
1680 pLed->BlinkTimes--;
\r
1681 if( pLed->BlinkTimes == 0 )
\r
1683 bStopBlinking = _TRUE;
\r
1687 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1689 SwLedOff(Adapter, pLed);
\r
1693 if(IS_HARDWARE_TYPE_8812AU(Adapter))
\r
1695 pLed->BlinkingLedState = RTW_LED_ON;
\r
1696 pLed->CurrLedState = LED_BLINK_ALWAYS_ON;
\r
1700 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
1701 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
1702 if( pLed->bLedOn )
\r
1703 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1705 pLed->BlinkingLedState = RTW_LED_ON;
\r
1707 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
1709 pLed->bLedBlinkInProgress = _FALSE;
\r
1713 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1715 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("RFOff Status \n"));
\r
1716 SwLedOff(Adapter, pLed);
\r
1720 if(IS_HARDWARE_TYPE_8812AU(Adapter))
\r
1722 pLed->BlinkingLedState = RTW_LED_ON;
\r
1726 if( pLed->bLedOn )
\r
1727 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1729 pLed->BlinkingLedState = RTW_LED_ON;
\r
1731 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
1736 case LED_BLINK_LINK_IN_PROCESS:
\r
1737 if( pLed->bLedOn )
\r
1739 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1740 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ON_BELKIN);
\r
1744 pLed->BlinkingLedState = RTW_LED_ON;
\r
1745 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_OFF_BELKIN);
\r
1749 case LED_BLINK_AUTH_ERROR:
\r
1750 pLed->BlinkTimes--;
\r
1751 if( pLed->BlinkTimes == 0 )
\r
1753 bStopBlinking = _TRUE;
\r
1755 if(bStopBlinking == _FALSE)
\r
1757 if( pLed->bLedOn )
\r
1759 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1760 _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);
\r
1764 pLed->BlinkingLedState = RTW_LED_ON;
\r
1765 _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);
\r
1770 pLed->CurrLedState = RTW_LED_OFF;
\r
1771 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1772 _set_timer(&(pLed->BlinkTimer), LED_BLINK_ERROR_INTERVAL_BELKIN);
\r
1780 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink10 CurrLedState %d\n", pLed->CurrLedState));
\r
1789 PADAPTER Adapter = pLed->padapter;
\r
1790 struct mlme_priv *pmlmepriv = &(Adapter->mlmepriv);
\r
1791 BOOLEAN bStopBlinking = _FALSE;
\r
1793 // Change LED according to BlinkingLedState specified.
\r
1794 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
1796 SwLedOn(Adapter, pLed);
\r
1797 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
1801 SwLedOff(Adapter, pLed);
\r
1802 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
1805 switch(pLed->CurrLedState)
\r
1807 case LED_BLINK_TXRX:
\r
1808 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1810 SwLedOff(Adapter, pLed);
\r
1814 if( pLed->bLedOn )
\r
1815 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1817 pLed->BlinkingLedState = RTW_LED_ON;
\r
1818 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
1823 case LED_BLINK_WPS:
\r
1824 if(pLed->BlinkTimes == 5)
\r
1826 SwLedOn(Adapter, pLed);
\r
1827 _set_timer(&(pLed->BlinkTimer), LED_CM11_LINK_ON_INTERVEL);
\r
1831 if( pLed->bLedOn )
\r
1833 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1834 _set_timer(&(pLed->BlinkTimer), LED_CM11_BLINK_INTERVAL);
\r
1838 pLed->BlinkingLedState = RTW_LED_ON;
\r
1839 _set_timer(&(pLed->BlinkTimer), LED_CM11_BLINK_INTERVAL);
\r
1842 pLed->BlinkTimes--;
\r
1843 if( pLed->BlinkTimes == 0 )
\r
1845 bStopBlinking = _TRUE;
\r
1847 if(bStopBlinking == _TRUE)
\r
1848 pLed->BlinkTimes = 5;
\r
1851 case LED_BLINK_WPS_STOP: //WPS authentication fail
\r
1852 if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
\r
1854 if( pLed->bLedOn )
\r
1855 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1857 pLed->BlinkingLedState = RTW_LED_ON;
\r
1858 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
1862 pLed->CurrLedState = RTW_LED_ON;
\r
1863 pLed->BlinkingLedState = RTW_LED_ON;
\r
1864 SwLedOn(Adapter, pLed);
\r
1865 _set_timer(&(pLed->BlinkTimer), 0);
\r
1873 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink5 CurrLedState %d\n", pLed->CurrLedState));
\r
1881 PADAPTER Adapter = pLed->padapter;
\r
1882 struct mlme_priv *pmlmepriv = &(Adapter->mlmepriv);
\r
1883 BOOLEAN bStopBlinking = _FALSE;
\r
1885 // Change LED according to BlinkingLedState specified.
\r
1886 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
1888 SwLedOn(Adapter, pLed);
\r
1889 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%ld): turn on\n", pLed->BlinkTimes));
\r
1893 SwLedOff(Adapter, pLed);
\r
1894 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%ld): turn off\n", pLed->BlinkTimes));
\r
1897 switch(pLed->CurrLedState)
\r
1899 case LED_BLINK_SLOWLY:
\r
1900 if( pLed->bLedOn )
\r
1901 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1903 pLed->BlinkingLedState = RTW_LED_ON;
\r
1904 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
1907 case LED_BLINK_TXRX:
\r
1908 pLed->BlinkTimes--;
\r
1909 if( pLed->BlinkTimes == 0 )
\r
1911 bStopBlinking = _TRUE;
\r
1916 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1918 pLed->CurrLedState = RTW_LED_OFF;
\r
1919 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1921 SwLedOff(Adapter, pLed);
\r
1925 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
1926 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
1927 if( pLed->bLedOn )
\r
1928 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1930 pLed->BlinkingLedState = RTW_LED_ON;
\r
1931 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
1934 pLed->bLedBlinkInProgress = _FALSE;
\r
1938 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
1940 SwLedOff(Adapter, pLed);
\r
1944 if( pLed->bLedOn )
\r
1945 pLed->BlinkingLedState = RTW_LED_OFF;
\r
1947 pLed->BlinkingLedState = RTW_LED_ON;
\r
1948 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
1957 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink8 CurrLedState %d\n", pLed->CurrLedState));
\r
1967 PADAPTER Adapter = pLed->padapter;
\r
1968 struct mlme_priv *pmlmepriv = &(Adapter->mlmepriv);
\r
1969 BOOLEAN bStopBlinking = _FALSE;
\r
1970 static u8 LinkBlinkCnt=0;
\r
1972 // Change LED according to BlinkingLedState specified.
\r
1973 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
1975 SwLedOn(Adapter, pLed);
\r
1976 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
1980 if(pLed->CurrLedState != LED_BLINK_WPS_STOP)
\r
1981 SwLedOff(Adapter, pLed);
\r
1982 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
1984 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("!!! SwLedBlink13 CurrLedState %d, bLedWPSBlinkInProgress %d, bLedBlinkInProgress %d\n", pLed->CurrLedState,pLed->bLedWPSBlinkInProgress,pLed->bLedBlinkInProgress));
\r
1985 switch(pLed->CurrLedState)
\r
1987 case LED_BLINK_LINK_IN_PROCESS:
\r
1988 if(!pLed->bLedWPSBlinkInProgress)
\r
1991 if(LinkBlinkCnt>15)
\r
1994 pLed->bLedBlinkInProgress = _FALSE;
\r
1997 if( pLed->bLedOn )
\r
1999 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2000 _set_timer(&(pLed->BlinkTimer), 500);
\r
2004 pLed->BlinkingLedState = RTW_LED_ON;
\r
2005 _set_timer(&(pLed->BlinkTimer), 500);
\r
2010 case LED_BLINK_WPS:
\r
2011 if( pLed->bLedOn )
\r
2013 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2014 _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_ON_INTERVAL_NETGEAR);
\r
2018 pLed->BlinkingLedState = RTW_LED_ON;
\r
2019 _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_OFF_INTERVAL_NETGEAR);
\r
2024 case LED_BLINK_WPS_STOP: //WPS success
\r
2025 SwLedOff(Adapter, pLed);
\r
2026 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
2034 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink13\n"));
\r
2043 PADAPTER Adapter = pLed->padapter;
\r
2044 struct mlme_priv *pmlmepriv = &(Adapter->mlmepriv);
\r
2045 BOOLEAN bStopBlinking = _FALSE;
\r
2046 static u8 LinkBlinkCnt=0;
\r
2048 // Change LED according to BlinkingLedState specified.
\r
2049 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
2051 SwLedOn(Adapter, pLed);
\r
2052 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
2056 if(pLed->CurrLedState != LED_BLINK_WPS_STOP)
\r
2057 SwLedOff(Adapter, pLed);
\r
2058 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
2060 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("!!! SwLedBlink14 CurrLedState %d, bLedWPSBlinkInProgress %d, bLedBlinkInProgress %d\n", pLed->CurrLedState,pLed->bLedWPSBlinkInProgress,pLed->bLedBlinkInProgress));
\r
2061 switch(pLed->CurrLedState)
\r
2063 case LED_BLINK_TXRX:
\r
2064 pLed->BlinkTimes--;
\r
2065 if( pLed->BlinkTimes == 0 )
\r
2067 bStopBlinking = _TRUE;
\r
2071 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
2073 SwLedOff(Adapter, pLed);
\r
2077 SwLedOn(Adapter, pLed);
\r
2079 pLed->bLedBlinkInProgress = _FALSE;
\r
2083 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
2085 SwLedOff(Adapter, pLed);
\r
2089 if( pLed->bLedOn )
\r
2091 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2092 if (IS_HARDWARE_TYPE_8812AU(Adapter))
\r
2093 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
\r
2095 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
2099 pLed->BlinkingLedState = RTW_LED_ON;
\r
2100 if (IS_HARDWARE_TYPE_8812AU(Adapter))
\r
2101 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
2103 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
2115 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink14\n"));
\r
2123 PADAPTER Adapter = pLed->padapter;
\r
2124 struct mlme_priv *pmlmepriv = &(Adapter->mlmepriv);
\r
2125 BOOLEAN bStopBlinking = _FALSE;
\r
2126 static u8 LinkBlinkCnt=0;
\r
2127 // Change LED according to BlinkingLedState specified.
\r
2129 if( pLed->BlinkingLedState == RTW_LED_ON )
\r
2131 SwLedOn(Adapter, pLed);
\r
2132 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
\r
2136 if(pLed->CurrLedState != LED_BLINK_WPS_STOP)
\r
2137 SwLedOff(Adapter, pLed);
\r
2138 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
\r
2140 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("!!! SwLedBlink15 CurrLedState %d, bLedWPSBlinkInProgress %d, bLedBlinkInProgress %d\n", pLed->CurrLedState,pLed->bLedWPSBlinkInProgress,pLed->bLedBlinkInProgress));
\r
2141 switch(pLed->CurrLedState)
\r
2143 case LED_BLINK_WPS:
\r
2144 if( pLed->bLedOn )
\r
2146 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2147 _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_ON_INTERVAL_DLINK);
\r
2151 pLed->BlinkingLedState = RTW_LED_ON;
\r
2152 _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_OFF_INTERVAL_DLINK);
\r
2156 case LED_BLINK_WPS_STOP: //WPS success
\r
2157 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("blink15, LED_BLINK_WPS_STOP BlinkingLedState %d\n",pLed->BlinkingLedState));
\r
2159 if(pLed->BlinkingLedState == RTW_LED_OFF)
\r
2161 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
2165 pLed->CurrLedState = LED_BLINK_WPS_STOP;
\r
2166 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2168 _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_LINKED_ON_INTERVAL_DLINK);
\r
2171 case LED_BLINK_NO_LINK:
\r
2173 static BOOLEAN bLedOn=_TRUE;
\r
2174 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("blink15, LED_NO_LINK_BLINK bLedOn %d\n",bLedOn));
\r
2178 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2183 pLed->BlinkingLedState = RTW_LED_ON;
\r
2185 pLed->bLedBlinkInProgress = _TRUE;
\r
2186 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL);
\r
2190 case LED_BLINK_LINK_IDEL:
\r
2192 static BOOLEAN bLedOn=_TRUE;
\r
2193 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("blink15, LED_BLINK_LINK_IDEL bLedOn %d\n",bLedOn));
\r
2197 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2202 pLed->BlinkingLedState = RTW_LED_ON;
\r
2205 pLed->bLedBlinkInProgress = _TRUE;
\r
2206 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_IDEL_INTERVAL);
\r
2210 case LED_BLINK_SCAN:
\r
2212 static u8 BlinkTime=0;
\r
2213 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("blink15, LED_SCAN_BLINK bLedOn %d\n",BlinkTime));
\r
2214 if(BlinkTime %2==0)
\r
2216 pLed->BlinkingLedState = RTW_LED_ON;
\r
2220 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2226 pLed->bLedBlinkInProgress = _TRUE;
\r
2228 if(pLed->BlinkingLedState == RTW_LED_ON)
\r
2229 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_OFF_INTERVAL);
\r
2231 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_ON_INTERVAL);
\r
2235 //if(pLed->OLDLedState ==LED_NO_LINK_BLINK)
\r
2236 if(check_fwstate(pmlmepriv, _FW_LINKED)== _FALSE)
\r
2238 pLed->CurrLedState = LED_BLINK_NO_LINK;
\r
2239 pLed->BlinkingLedState = RTW_LED_ON;
\r
2241 _set_timer(&(pLed->BlinkTimer), 100);
\r
2248 case LED_BLINK_TXRX:
\r
2249 pLed->BlinkTimes--;
\r
2250 if( pLed->BlinkTimes == 0 )
\r
2252 bStopBlinking = _TRUE;
\r
2256 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
2258 SwLedOff(Adapter, pLed);
\r
2262 SwLedOn(Adapter, pLed);
\r
2264 pLed->bLedBlinkInProgress = _FALSE;
\r
2268 if( adapter_to_pwrctl(Adapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(Adapter)->rfoff_reason > RF_CHANGE_BY_PS)
\r
2270 SwLedOff(Adapter, pLed);
\r
2274 if( pLed->bLedOn )
\r
2275 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2277 pLed->BlinkingLedState = RTW_LED_ON;
\r
2278 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
2288 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink15\n"));
\r
2293 // Handler function of LED Blinking.
\r
2294 // We dispatch acture LED blink action according to LedStrategy.
\r
2296 void BlinkHandler(PLED_USB pLed)
\r
2298 _adapter *padapter = pLed->padapter;
\r
2299 struct led_priv *ledpriv = &(padapter->ledpriv);
\r
2301 //DBG_871X("%s (%s:%d)\n",__FUNCTION__, current->comm, current->pid);
\r
2303 if( (padapter->bSurpriseRemoved == _TRUE) || (padapter->hw_init_completed == _FALSE))
\r
2305 //DBG_871X("%s bSurpriseRemoved:%d, bDriverStopped:%d\n", __FUNCTION__, padapter->bSurpriseRemoved, padapter->bDriverStopped);
\r
2309 switch(ledpriv->LedStrategy)
\r
2311 case SW_LED_MODE0:
\r
2315 case SW_LED_MODE1:
\r
2316 SwLedBlink1(pLed);
\r
2319 case SW_LED_MODE2:
\r
2320 SwLedBlink2(pLed);
\r
2323 case SW_LED_MODE3:
\r
2324 SwLedBlink3(pLed);
\r
2327 case SW_LED_MODE4:
\r
2328 SwLedBlink4(pLed);
\r
2331 case SW_LED_MODE5:
\r
2332 SwLedBlink5(pLed);
\r
2335 case SW_LED_MODE6:
\r
2336 SwLedBlink6(pLed);
\r
2339 case SW_LED_MODE7:
\r
2340 SwLedBlink7(pLed);
\r
2343 case SW_LED_MODE8:
\r
2344 SwLedBlink8(pLed);
\r
2347 case SW_LED_MODE9:
\r
2348 SwLedBlink9(pLed);
\r
2351 case SW_LED_MODE10:
\r
2352 SwLedBlink10(pLed);
\r
2355 case SW_LED_MODE11:
\r
2356 SwLedBlink11(pLed);
\r
2359 case SW_LED_MODE12:
\r
2360 SwLedBlink12(pLed);
\r
2363 case SW_LED_MODE13:
\r
2364 SwLedBlink13(pLed);
\r
2367 case SW_LED_MODE14:
\r
2368 SwLedBlink14(pLed);
\r
2371 case SW_LED_MODE15:
\r
2372 SwLedBlink15(pLed);
\r
2376 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("BlinkWorkItemCallback 0x%x \n", ledpriv->LedStrategy));
\r
2377 //SwLedBlink(pLed);
\r
2384 // Callback function of LED BlinkTimer,
\r
2385 // it just schedules to corresponding BlinkWorkItem/led_blink_hdl
\r
2387 void BlinkTimerCallback(void *data)
\r
2389 PLED_USB pLed = (PLED_USB)data;
\r
2390 _adapter *padapter = pLed->padapter;
\r
2392 //DBG_871X("%s\n", __FUNCTION__);
\r
2394 if( (padapter->bSurpriseRemoved == _TRUE) || (padapter->hw_init_completed == _FALSE))
\r
2396 //DBG_871X("%s bSurpriseRemoved:%d, bDriverStopped:%d\n", __FUNCTION__, padapter->bSurpriseRemoved, padapter->bDriverStopped);
\r
2400 #ifdef CONFIG_LED_HANDLED_BY_CMD_THREAD
\r
2401 rtw_led_blink_cmd(padapter, (PVOID)pLed);
\r
2403 if(ATOMIC_READ(&pLed->bCancelWorkItem) == _FALSE)
\r
2404 _set_workitem(&(pLed->BlinkWorkItem));
\r
2410 // Callback function of LED BlinkWorkItem.
\r
2411 // We dispatch acture LED blink action according to LedStrategy.
\r
2413 void BlinkWorkItemCallback(_workitem *work)
\r
2415 PLED_USB pLed = container_of(work, LED_USB, BlinkWorkItem);
\r
2416 BlinkHandler(pLed);
\r
2420 SwLedControlMode0(
\r
2421 _adapter *padapter,
\r
2422 LED_CTL_MODE LedAction
\r
2425 struct led_priv *ledpriv = &(padapter->ledpriv);
\r
2426 PLED_USB pLed = &(ledpriv->SwLed1);
\r
2428 // Decide led state
\r
2433 if( pLed->bLedBlinkInProgress == _FALSE )
\r
2435 pLed->bLedBlinkInProgress = _TRUE;
\r
2437 pLed->CurrLedState = LED_BLINK_NORMAL;
\r
2438 pLed->BlinkTimes = 2;
\r
2440 if( pLed->bLedOn )
\r
2441 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2443 pLed->BlinkingLedState = RTW_LED_ON;
\r
2444 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
2448 case LED_CTL_START_TO_LINK:
\r
2449 if( pLed->bLedBlinkInProgress == _FALSE )
\r
2451 pLed->bLedBlinkInProgress = _TRUE;
\r
2453 pLed->CurrLedState = LED_BLINK_StartToBlink;
\r
2454 pLed->BlinkTimes = 24;
\r
2456 if( pLed->bLedOn )
\r
2457 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2459 pLed->BlinkingLedState = RTW_LED_ON;
\r
2460 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
\r
2464 pLed->CurrLedState = LED_BLINK_StartToBlink;
\r
2468 case LED_CTL_LINK:
\r
2469 pLed->CurrLedState = RTW_LED_ON;
\r
2470 if( pLed->bLedBlinkInProgress == _FALSE )
\r
2472 pLed->BlinkingLedState = RTW_LED_ON;
\r
2473 _set_timer(&(pLed->BlinkTimer), 0);
\r
2477 case LED_CTL_NO_LINK:
\r
2478 pLed->CurrLedState = RTW_LED_OFF;
\r
2479 if( pLed->bLedBlinkInProgress == _FALSE )
\r
2481 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2482 _set_timer(&(pLed->BlinkTimer), 0);
\r
2486 case LED_CTL_POWER_OFF:
\r
2487 pLed->CurrLedState = RTW_LED_OFF;
\r
2488 if(pLed->bLedBlinkInProgress)
\r
2490 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2491 pLed->bLedBlinkInProgress = _FALSE;
\r
2493 SwLedOff(padapter, pLed);
\r
2496 case LED_CTL_START_WPS:
\r
2497 if( pLed->bLedBlinkInProgress == _FALSE || pLed->CurrLedState == RTW_LED_ON)
\r
2499 pLed->bLedBlinkInProgress = _TRUE;
\r
2501 pLed->CurrLedState = LED_BLINK_WPS;
\r
2502 pLed->BlinkTimes = 20;
\r
2504 if( pLed->bLedOn )
\r
2506 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2507 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LONG_INTERVAL);
\r
2511 pLed->BlinkingLedState = RTW_LED_ON;
\r
2512 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LONG_INTERVAL);
\r
2517 case LED_CTL_STOP_WPS:
\r
2518 if(pLed->bLedBlinkInProgress)
\r
2520 pLed->CurrLedState = RTW_LED_OFF;
\r
2521 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2522 pLed->bLedBlinkInProgress = _FALSE;
\r
2531 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led %d\n", pLed->CurrLedState));
\r
2535 //ALPHA, added by chiyoko, 20090106
\r
2537 SwLedControlMode1(
\r
2538 _adapter *padapter,
\r
2539 LED_CTL_MODE LedAction
\r
2542 struct led_priv *ledpriv = &(padapter->ledpriv);
\r
2543 PLED_USB pLed = &(ledpriv->SwLed0);
\r
2544 struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
\r
2545 PHAL_DATA_TYPE pHalData = GET_HAL_DATA(padapter);
\r
2547 u32 uLedBlinkNoLinkInterval = LED_BLINK_NO_LINK_INTERVAL_ALPHA; //add by ylb 20121012 for customer led for alpha
\r
2548 if(pHalData->CustomerID == RT_CID_819x_ALPHA_Dlink)
\r
2549 uLedBlinkNoLinkInterval= LED_BLINK_NO_LINK_INTERVAL_ALPHA_500MS;
\r
2551 if(pHalData->CustomerID == RT_CID_819x_CAMEO)
\r
2552 pLed = &(ledpriv->SwLed1);
\r
2556 case LED_CTL_POWER_ON:
\r
2557 case LED_CTL_START_TO_LINK:
\r
2558 case LED_CTL_NO_LINK:
\r
2559 if( pLed->bLedNoLinkBlinkInProgress == _FALSE )
\r
2561 if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
\r
2565 if( pLed->bLedLinkBlinkInProgress == _TRUE )
\r
2567 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2568 pLed->bLedLinkBlinkInProgress = _FALSE;
\r
2570 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
2572 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2573 pLed->bLedBlinkInProgress = _FALSE;
\r
2576 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
2577 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
2578 if( pLed->bLedOn )
\r
2579 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2581 pLed->BlinkingLedState = RTW_LED_ON;
\r
2582 _set_timer(&(pLed->BlinkTimer), uLedBlinkNoLinkInterval);//change by ylb 20121012 for customer led for alpha
\r
2586 case LED_CTL_LINK:
\r
2587 if( pLed->bLedLinkBlinkInProgress == _FALSE )
\r
2589 if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
\r
2593 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
2595 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2596 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
2598 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
2600 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2601 pLed->bLedBlinkInProgress = _FALSE;
\r
2603 pLed->bLedLinkBlinkInProgress = _TRUE;
\r
2604 pLed->CurrLedState = LED_BLINK_NORMAL;
\r
2605 if( pLed->bLedOn )
\r
2606 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2608 pLed->BlinkingLedState = RTW_LED_ON;
\r
2609 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
\r
2613 case LED_CTL_SITE_SURVEY:
\r
2614 if((pmlmepriv->LinkDetectInfo.bBusyTraffic) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))
\r
2616 else if(pLed->bLedScanBlinkInProgress ==_FALSE)
\r
2618 if(IS_LED_WPS_BLINKING(pLed))
\r
2621 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
2623 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2624 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
2626 if( pLed->bLedLinkBlinkInProgress == _TRUE )
\r
2628 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2629 pLed->bLedLinkBlinkInProgress = _FALSE;
\r
2631 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
2633 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2634 pLed->bLedBlinkInProgress = _FALSE;
\r
2636 pLed->bLedScanBlinkInProgress = _TRUE;
\r
2637 pLed->CurrLedState = LED_BLINK_SCAN;
\r
2638 pLed->BlinkTimes = 24;
\r
2639 if( pLed->bLedOn )
\r
2640 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2642 pLed->BlinkingLedState = RTW_LED_ON;
\r
2644 if (adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason == RF_CHANGE_BY_IPS)
\r
2645 _set_timer(&(pLed->BlinkTimer), LED_INITIAL_INTERVAL);
\r
2647 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
2654 if(pLed->bLedBlinkInProgress ==_FALSE)
\r
2656 if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
\r
2660 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
2662 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2663 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
2665 if( pLed->bLedLinkBlinkInProgress == _TRUE )
\r
2667 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2668 pLed->bLedLinkBlinkInProgress = _FALSE;
\r
2670 pLed->bLedBlinkInProgress = _TRUE;
\r
2671 pLed->CurrLedState = LED_BLINK_TXRX;
\r
2672 pLed->BlinkTimes = 2;
\r
2673 if( pLed->bLedOn )
\r
2674 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2676 pLed->BlinkingLedState = RTW_LED_ON;
\r
2677 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
2681 case LED_CTL_START_WPS: //wait until xinpin finish
\r
2682 case LED_CTL_START_WPS_BOTTON:
\r
2683 if(pLed->bLedWPSBlinkInProgress ==_FALSE)
\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 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
2697 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2698 pLed->bLedBlinkInProgress = _FALSE;
\r
2700 if(pLed->bLedScanBlinkInProgress ==_TRUE)
\r
2702 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2703 pLed->bLedScanBlinkInProgress = _FALSE;
\r
2705 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
2706 pLed->CurrLedState = LED_BLINK_WPS;
\r
2707 if( pLed->bLedOn )
\r
2708 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2710 pLed->BlinkingLedState = RTW_LED_ON;
\r
2711 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
2716 case LED_CTL_STOP_WPS:
\r
2717 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
2719 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2720 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
2722 if( pLed->bLedLinkBlinkInProgress == _TRUE )
\r
2724 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2725 pLed->bLedLinkBlinkInProgress = _FALSE;
\r
2727 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
2729 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2730 pLed->bLedBlinkInProgress = _FALSE;
\r
2732 if(pLed->bLedScanBlinkInProgress ==_TRUE)
\r
2734 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2735 pLed->bLedScanBlinkInProgress = _FALSE;
\r
2737 if(pLed->bLedWPSBlinkInProgress)
\r
2739 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2743 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
2746 pLed->CurrLedState = LED_BLINK_WPS_STOP;
\r
2749 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2750 _set_timer(&(pLed->BlinkTimer), LED_BLINK_WPS_SUCESS_INTERVAL_ALPHA);
\r
2754 pLed->BlinkingLedState = RTW_LED_ON;
\r
2755 _set_timer(&(pLed->BlinkTimer), 0);
\r
2759 case LED_CTL_STOP_WPS_FAIL:
\r
2760 if(pLed->bLedWPSBlinkInProgress)
\r
2762 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2763 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
2766 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
2767 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
2768 if( pLed->bLedOn )
\r
2769 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2771 pLed->BlinkingLedState = RTW_LED_ON;
\r
2772 _set_timer(&(pLed->BlinkTimer), uLedBlinkNoLinkInterval);//change by ylb 20121012 for customer led for alpha
\r
2775 case LED_CTL_POWER_OFF:
\r
2776 pLed->CurrLedState = RTW_LED_OFF;
\r
2777 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2778 if( pLed->bLedNoLinkBlinkInProgress)
\r
2780 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2781 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
2783 if( pLed->bLedLinkBlinkInProgress)
\r
2785 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2786 pLed->bLedLinkBlinkInProgress = _FALSE;
\r
2788 if( pLed->bLedBlinkInProgress)
\r
2790 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2791 pLed->bLedBlinkInProgress = _FALSE;
\r
2793 if( pLed->bLedWPSBlinkInProgress )
\r
2795 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2796 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
2798 if( pLed->bLedScanBlinkInProgress)
\r
2800 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2801 pLed->bLedScanBlinkInProgress = _FALSE;
\r
2804 SwLedOff(padapter, pLed);
\r
2812 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led %d\n", pLed->CurrLedState));
\r
2815 //Arcadyan/Sitecom , added by chiyoko, 20090216
\r
2817 SwLedControlMode2(
\r
2818 _adapter *padapter,
\r
2819 LED_CTL_MODE LedAction
\r
2822 struct led_priv *ledpriv = &(padapter->ledpriv);
\r
2823 struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
\r
2824 PLED_USB pLed = &(ledpriv->SwLed0);
\r
2828 case LED_CTL_SITE_SURVEY:
\r
2829 if(pmlmepriv->LinkDetectInfo.bBusyTraffic)
\r
2831 else if(pLed->bLedScanBlinkInProgress ==_FALSE)
\r
2833 if(IS_LED_WPS_BLINKING(pLed))
\r
2836 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
2838 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2839 pLed->bLedBlinkInProgress = _FALSE;
\r
2841 pLed->bLedScanBlinkInProgress = _TRUE;
\r
2842 pLed->CurrLedState = LED_BLINK_SCAN;
\r
2843 pLed->BlinkTimes = 24;
\r
2844 if( pLed->bLedOn )
\r
2845 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2847 pLed->BlinkingLedState = RTW_LED_ON;
\r
2848 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
2854 if((pLed->bLedBlinkInProgress ==_FALSE) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))
\r
2856 if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
\r
2861 pLed->bLedBlinkInProgress = _TRUE;
\r
2862 pLed->CurrLedState = LED_BLINK_TXRX;
\r
2863 pLed->BlinkTimes = 2;
\r
2864 if( pLed->bLedOn )
\r
2865 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2867 pLed->BlinkingLedState = RTW_LED_ON;
\r
2868 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
2872 case LED_CTL_LINK:
\r
2873 pLed->CurrLedState = RTW_LED_ON;
\r
2874 pLed->BlinkingLedState = RTW_LED_ON;
\r
2875 if( pLed->bLedBlinkInProgress)
\r
2877 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2878 pLed->bLedBlinkInProgress = _FALSE;
\r
2880 if( pLed->bLedScanBlinkInProgress)
\r
2882 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2883 pLed->bLedScanBlinkInProgress = _FALSE;
\r
2886 _set_timer(&(pLed->BlinkTimer), 0);
\r
2889 case LED_CTL_START_WPS: //wait until xinpin finish
\r
2890 case LED_CTL_START_WPS_BOTTON:
\r
2891 if(pLed->bLedWPSBlinkInProgress ==_FALSE)
\r
2893 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
2895 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2896 pLed->bLedBlinkInProgress = _FALSE;
\r
2898 if(pLed->bLedScanBlinkInProgress ==_TRUE)
\r
2900 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2901 pLed->bLedScanBlinkInProgress = _FALSE;
\r
2903 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
2904 pLed->CurrLedState = RTW_LED_ON;
\r
2905 pLed->BlinkingLedState = RTW_LED_ON;
\r
2906 _set_timer(&(pLed->BlinkTimer), 0);
\r
2910 case LED_CTL_STOP_WPS:
\r
2911 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
2912 if(adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on)
\r
2914 pLed->CurrLedState = RTW_LED_OFF;
\r
2915 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2916 _set_timer(&(pLed->BlinkTimer), 0);
\r
2920 pLed->CurrLedState = RTW_LED_ON;
\r
2921 pLed->BlinkingLedState = RTW_LED_ON;
\r
2922 _set_timer(&(pLed->BlinkTimer), 0);
\r
2923 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
2927 case LED_CTL_STOP_WPS_FAIL:
\r
2928 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
2929 pLed->CurrLedState = RTW_LED_OFF;
\r
2930 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2931 _set_timer(&(pLed->BlinkTimer), 0);
\r
2932 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
2935 case LED_CTL_START_TO_LINK:
\r
2936 case LED_CTL_NO_LINK:
\r
2937 if(!IS_LED_BLINKING(pLed))
\r
2939 pLed->CurrLedState = RTW_LED_OFF;
\r
2940 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2941 _set_timer(&(pLed->BlinkTimer), 0);
\r
2945 case LED_CTL_POWER_OFF:
\r
2946 pLed->CurrLedState = RTW_LED_OFF;
\r
2947 pLed->BlinkingLedState = RTW_LED_OFF;
\r
2948 if( pLed->bLedBlinkInProgress)
\r
2950 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2951 pLed->bLedBlinkInProgress = _FALSE;
\r
2953 if( pLed->bLedScanBlinkInProgress)
\r
2955 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2956 pLed->bLedScanBlinkInProgress = _FALSE;
\r
2958 if( pLed->bLedWPSBlinkInProgress )
\r
2960 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2961 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
2964 SwLedOff(padapter, pLed);
\r
2972 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
2975 //COREGA, added by chiyoko, 20090316
\r
2977 SwLedControlMode3(
\r
2978 _adapter *padapter,
\r
2979 LED_CTL_MODE LedAction
\r
2982 struct led_priv *ledpriv = &(padapter->ledpriv);
\r
2983 struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
\r
2984 PLED_USB pLed = &(ledpriv->SwLed0);
\r
2988 case LED_CTL_SITE_SURVEY:
\r
2989 if(pmlmepriv->LinkDetectInfo.bBusyTraffic)
\r
2991 else if(pLed->bLedScanBlinkInProgress ==_FALSE)
\r
2993 if(IS_LED_WPS_BLINKING(pLed))
\r
2996 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
2998 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
2999 pLed->bLedBlinkInProgress = _FALSE;
\r
3001 pLed->bLedScanBlinkInProgress = _TRUE;
\r
3002 pLed->CurrLedState = LED_BLINK_SCAN;
\r
3003 pLed->BlinkTimes = 24;
\r
3004 if( pLed->bLedOn )
\r
3005 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3007 pLed->BlinkingLedState = RTW_LED_ON;
\r
3008 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
3014 if((pLed->bLedBlinkInProgress ==_FALSE) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))
\r
3016 if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
\r
3021 pLed->bLedBlinkInProgress = _TRUE;
\r
3022 pLed->CurrLedState = LED_BLINK_TXRX;
\r
3023 pLed->BlinkTimes = 2;
\r
3024 if( pLed->bLedOn )
\r
3025 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3027 pLed->BlinkingLedState = RTW_LED_ON;
\r
3028 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
3032 case LED_CTL_LINK:
\r
3033 if(IS_LED_WPS_BLINKING(pLed))
\r
3036 pLed->CurrLedState = RTW_LED_ON;
\r
3037 pLed->BlinkingLedState = RTW_LED_ON;
\r
3038 if( pLed->bLedBlinkInProgress)
\r
3040 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3041 pLed->bLedBlinkInProgress = _FALSE;
\r
3043 if( pLed->bLedScanBlinkInProgress)
\r
3045 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3046 pLed->bLedScanBlinkInProgress = _FALSE;
\r
3049 _set_timer(&(pLed->BlinkTimer), 0);
\r
3052 case LED_CTL_START_WPS: //wait until xinpin finish
\r
3053 case LED_CTL_START_WPS_BOTTON:
\r
3054 if(pLed->bLedWPSBlinkInProgress ==_FALSE)
\r
3056 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
3058 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3059 pLed->bLedBlinkInProgress = _FALSE;
\r
3061 if(pLed->bLedScanBlinkInProgress ==_TRUE)
\r
3063 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3064 pLed->bLedScanBlinkInProgress = _FALSE;
\r
3066 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
3067 pLed->CurrLedState = LED_BLINK_WPS;
\r
3068 if( pLed->bLedOn )
\r
3069 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3071 pLed->BlinkingLedState = RTW_LED_ON;
\r
3072 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
3076 case LED_CTL_STOP_WPS:
\r
3077 if(pLed->bLedWPSBlinkInProgress)
\r
3079 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3080 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
3084 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
3087 pLed->CurrLedState = LED_BLINK_WPS_STOP;
\r
3090 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3091 _set_timer(&(pLed->BlinkTimer), LED_BLINK_WPS_SUCESS_INTERVAL_ALPHA);
\r
3095 pLed->BlinkingLedState = RTW_LED_ON;
\r
3096 _set_timer(&(pLed->BlinkTimer), 0);
\r
3101 case LED_CTL_STOP_WPS_FAIL:
\r
3102 if(pLed->bLedWPSBlinkInProgress)
\r
3104 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3105 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
3108 pLed->CurrLedState = RTW_LED_OFF;
\r
3109 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3110 _set_timer(&(pLed->BlinkTimer), 0);
\r
3113 case LED_CTL_START_TO_LINK:
\r
3114 case LED_CTL_NO_LINK:
\r
3115 if(!IS_LED_BLINKING(pLed))
\r
3117 pLed->CurrLedState = RTW_LED_OFF;
\r
3118 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3119 _set_timer(&(pLed->BlinkTimer), 0);
\r
3123 case LED_CTL_POWER_OFF:
\r
3124 pLed->CurrLedState = RTW_LED_OFF;
\r
3125 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3126 if( pLed->bLedBlinkInProgress)
\r
3128 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3129 pLed->bLedBlinkInProgress = _FALSE;
\r
3131 if( pLed->bLedScanBlinkInProgress)
\r
3133 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3134 pLed->bLedScanBlinkInProgress = _FALSE;
\r
3136 if( pLed->bLedWPSBlinkInProgress )
\r
3138 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3139 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
3142 SwLedOff(padapter, pLed);
\r
3150 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
\r
3154 //Edimax-Belkin, added by chiyoko, 20090413
\r
3156 SwLedControlMode4(
\r
3157 _adapter *padapter,
\r
3158 LED_CTL_MODE LedAction
\r
3161 struct led_priv *ledpriv = &(padapter->ledpriv);
\r
3162 struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
\r
3163 PLED_USB pLed = &(ledpriv->SwLed0);
\r
3164 PLED_USB pLed1 = &(ledpriv->SwLed1);
\r
3168 case LED_CTL_START_TO_LINK:
\r
3169 if(pLed1->bLedWPSBlinkInProgress)
\r
3171 pLed1->bLedWPSBlinkInProgress = _FALSE;
\r
3172 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
3174 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
3175 pLed1->CurrLedState = RTW_LED_OFF;
\r
3178 _set_timer(&(pLed->BlinkTimer), 0);
\r
3181 if( pLed->bLedStartToLinkBlinkInProgress == _FALSE )
\r
3183 if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
\r
3187 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
3189 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3190 pLed->bLedBlinkInProgress = _FALSE;
\r
3192 if(pLed->bLedNoLinkBlinkInProgress ==_TRUE)
\r
3194 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3195 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
3198 pLed->bLedStartToLinkBlinkInProgress = _TRUE;
\r
3199 pLed->CurrLedState = LED_BLINK_StartToBlink;
\r
3200 if( pLed->bLedOn )
\r
3202 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3203 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
\r
3207 pLed->BlinkingLedState = RTW_LED_ON;
\r
3208 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
3213 case LED_CTL_LINK:
\r
3214 case LED_CTL_NO_LINK:
\r
3216 if(LedAction == LED_CTL_LINK)
\r
3218 if(pLed1->bLedWPSBlinkInProgress)
\r
3220 pLed1->bLedWPSBlinkInProgress = _FALSE;
\r
3221 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
3223 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
3224 pLed1->CurrLedState = RTW_LED_OFF;
\r
3227 _set_timer(&(pLed->BlinkTimer), 0);
\r
3231 if( pLed->bLedNoLinkBlinkInProgress == _FALSE )
\r
3233 if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
\r
3237 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
3239 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3240 pLed->bLedBlinkInProgress = _FALSE;
\r
3243 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
3244 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
3245 if( pLed->bLedOn )
\r
3246 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3248 pLed->BlinkingLedState = RTW_LED_ON;
\r
3250 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
3254 case LED_CTL_SITE_SURVEY:
\r
3255 if((pmlmepriv->LinkDetectInfo.bBusyTraffic) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))
\r
3257 else if(pLed->bLedScanBlinkInProgress ==_FALSE)
\r
3259 if(IS_LED_WPS_BLINKING(pLed))
\r
3262 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
3264 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3265 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
3267 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
3269 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3270 pLed->bLedBlinkInProgress = _FALSE;
\r
3272 pLed->bLedScanBlinkInProgress = _TRUE;
\r
3273 pLed->CurrLedState = LED_BLINK_SCAN;
\r
3274 pLed->BlinkTimes = 24;
\r
3275 if( pLed->bLedOn )
\r
3276 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3278 pLed->BlinkingLedState = RTW_LED_ON;
\r
3279 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
3285 if(pLed->bLedBlinkInProgress ==_FALSE)
\r
3287 if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
\r
3291 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
3293 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3294 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
3296 pLed->bLedBlinkInProgress = _TRUE;
\r
3297 pLed->CurrLedState = LED_BLINK_TXRX;
\r
3298 pLed->BlinkTimes = 2;
\r
3299 if( pLed->bLedOn )
\r
3300 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3302 pLed->BlinkingLedState = RTW_LED_ON;
\r
3303 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
3307 case LED_CTL_START_WPS: //wait until xinpin finish
\r
3308 case LED_CTL_START_WPS_BOTTON:
\r
3309 if(pLed1->bLedWPSBlinkInProgress)
\r
3311 pLed1->bLedWPSBlinkInProgress = _FALSE;
\r
3312 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
3314 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
3315 pLed1->CurrLedState = RTW_LED_OFF;
\r
3318 _set_timer(&(pLed->BlinkTimer), 0);
\r
3321 if(pLed->bLedWPSBlinkInProgress ==_FALSE)
\r
3323 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
3325 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3326 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
3328 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
3330 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3331 pLed->bLedBlinkInProgress = _FALSE;
\r
3333 if(pLed->bLedScanBlinkInProgress ==_TRUE)
\r
3335 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3336 pLed->bLedScanBlinkInProgress = _FALSE;
\r
3338 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
3339 pLed->CurrLedState = LED_BLINK_WPS;
\r
3340 if( pLed->bLedOn )
\r
3342 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3343 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
\r
3347 pLed->BlinkingLedState = RTW_LED_ON;
\r
3348 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
3353 case LED_CTL_STOP_WPS: //WPS connect success
\r
3354 if(pLed->bLedWPSBlinkInProgress)
\r
3356 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3357 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
3360 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
3361 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
3362 if( pLed->bLedOn )
\r
3363 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3365 pLed->BlinkingLedState = RTW_LED_ON;
\r
3366 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
3370 case LED_CTL_STOP_WPS_FAIL: //WPS authentication fail
\r
3371 if(pLed->bLedWPSBlinkInProgress)
\r
3373 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3374 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
3377 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
3378 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
3379 if( pLed->bLedOn )
\r
3380 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3382 pLed->BlinkingLedState = RTW_LED_ON;
\r
3383 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
3386 if(pLed1->bLedWPSBlinkInProgress)
\r
3387 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
3389 pLed1->bLedWPSBlinkInProgress = _TRUE;
\r
3391 pLed1->CurrLedState = LED_BLINK_WPS_STOP;
\r
3392 if( pLed1->bLedOn )
\r
3393 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
3395 pLed1->BlinkingLedState = RTW_LED_ON;
\r
3396 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
3400 case LED_CTL_STOP_WPS_FAIL_OVERLAP: //WPS session overlap
\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
3416 if(pLed1->bLedWPSBlinkInProgress)
\r
3417 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
3419 pLed1->bLedWPSBlinkInProgress = _TRUE;
\r
3421 pLed1->CurrLedState = LED_BLINK_WPS_STOP_OVERLAP;
\r
3422 pLed1->BlinkTimes = 10;
\r
3423 if( pLed1->bLedOn )
\r
3424 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
3426 pLed1->BlinkingLedState = RTW_LED_ON;
\r
3427 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
3431 case LED_CTL_POWER_OFF:
\r
3432 pLed->CurrLedState = RTW_LED_OFF;
\r
3433 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3435 if( pLed->bLedNoLinkBlinkInProgress)
\r
3437 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3438 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
3440 if( pLed->bLedLinkBlinkInProgress)
\r
3442 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3443 pLed->bLedLinkBlinkInProgress = _FALSE;
\r
3445 if( pLed->bLedBlinkInProgress)
\r
3447 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3448 pLed->bLedBlinkInProgress = _FALSE;
\r
3450 if( pLed->bLedWPSBlinkInProgress )
\r
3452 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3453 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
3455 if( pLed->bLedScanBlinkInProgress)
\r
3457 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3458 pLed->bLedScanBlinkInProgress = _FALSE;
\r
3460 if( pLed->bLedStartToLinkBlinkInProgress)
\r
3462 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3463 pLed->bLedStartToLinkBlinkInProgress = _FALSE;
\r
3466 if( pLed1->bLedWPSBlinkInProgress )
\r
3468 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
3469 pLed1->bLedWPSBlinkInProgress = _FALSE;
\r
3472 pLed1->BlinkingLedState = LED_UNKNOWN;
\r
3473 SwLedOff(padapter, pLed);
\r
3474 SwLedOff(padapter, pLed1);
\r
3477 case LED_CTL_CONNECTION_NO_TRANSFER:
\r
3478 if(pLed->bLedBlinkInProgress == _FALSE)
\r
3480 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
3482 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3483 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
3485 pLed->bLedBlinkInProgress = _TRUE;
\r
3487 pLed->CurrLedState = LED_BLINK_ALWAYS_ON;
\r
3488 pLed->BlinkingLedState = RTW_LED_ON;
\r
3489 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
3498 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led %d\n", pLed->CurrLedState));
\r
3503 //Sercomm-Belkin, added by chiyoko, 20090415
\r
3505 SwLedControlMode5(
\r
3506 _adapter *padapter,
\r
3507 LED_CTL_MODE LedAction
\r
3510 struct led_priv *ledpriv = &(padapter->ledpriv);
\r
3511 struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
\r
3512 PHAL_DATA_TYPE pHalData = GET_HAL_DATA(padapter);
\r
3513 PLED_USB pLed = &(ledpriv->SwLed0);
\r
3515 if(pHalData->CustomerID == RT_CID_819x_CAMEO)
\r
3516 pLed = &(ledpriv->SwLed1);
\r
3520 case LED_CTL_POWER_ON:
\r
3521 case LED_CTL_NO_LINK:
\r
3522 case LED_CTL_LINK: //solid blue
\r
3523 pLed->CurrLedState = RTW_LED_ON;
\r
3524 pLed->BlinkingLedState = RTW_LED_ON;
\r
3526 _set_timer(&(pLed->BlinkTimer), 0);
\r
3529 case LED_CTL_SITE_SURVEY:
\r
3530 if((pmlmepriv->LinkDetectInfo.bBusyTraffic) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))
\r
3532 else if(pLed->bLedScanBlinkInProgress ==_FALSE)
\r
3534 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
3536 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3537 pLed->bLedBlinkInProgress = _FALSE;
\r
3539 pLed->bLedScanBlinkInProgress = _TRUE;
\r
3540 pLed->CurrLedState = LED_BLINK_SCAN;
\r
3541 pLed->BlinkTimes = 24;
\r
3542 if( pLed->bLedOn )
\r
3543 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3545 pLed->BlinkingLedState = RTW_LED_ON;
\r
3546 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
3552 if(pLed->bLedBlinkInProgress ==_FALSE)
\r
3554 if(pLed->CurrLedState == LED_BLINK_SCAN)
\r
3558 pLed->bLedBlinkInProgress = _TRUE;
\r
3559 pLed->CurrLedState = LED_BLINK_TXRX;
\r
3560 pLed->BlinkTimes = 2;
\r
3561 if( pLed->bLedOn )
\r
3562 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3564 pLed->BlinkingLedState = RTW_LED_ON;
\r
3565 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
3569 case LED_CTL_POWER_OFF:
\r
3570 pLed->CurrLedState = RTW_LED_OFF;
\r
3571 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3573 if( pLed->bLedBlinkInProgress)
\r
3575 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3576 pLed->bLedBlinkInProgress = _FALSE;
\r
3579 SwLedOff(padapter, pLed);
\r
3587 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led %d\n", pLed->CurrLedState));
\r
3590 //WNC-Corega, added by chiyoko, 20090902
\r
3592 SwLedControlMode6(
\r
3593 _adapter *padapter,
\r
3594 LED_CTL_MODE LedAction
\r
3597 struct led_priv *ledpriv = &(padapter->ledpriv);
\r
3598 struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
\r
3599 PLED_USB pLed0 = &(ledpriv->SwLed0);
\r
3603 case LED_CTL_POWER_ON:
\r
3604 case LED_CTL_LINK:
\r
3605 case LED_CTL_NO_LINK:
\r
3606 _cancel_timer_ex(&(pLed0->BlinkTimer));
\r
3607 pLed0->CurrLedState = RTW_LED_ON;
\r
3608 pLed0->BlinkingLedState = RTW_LED_ON;
\r
3609 _set_timer(&(pLed0->BlinkTimer), 0);
\r
3612 case LED_CTL_POWER_OFF:
\r
3613 SwLedOff(padapter, pLed0);
\r
3620 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("ledcontrol 6 Led %d\n", pLed0->CurrLedState));
\r
3623 //Netgear, added by sinda, 2011/11/11
\r
3625 SwLedControlMode7(
\r
3627 LED_CTL_MODE LedAction
\r
3630 struct led_priv *ledpriv = &(Adapter->ledpriv);
\r
3631 struct mlme_priv *pmlmepriv = &Adapter->mlmepriv;
\r
3632 PLED_USB pLed = &(ledpriv->SwLed0);
\r
3636 case LED_CTL_SITE_SURVEY:
\r
3637 if(pmlmepriv->LinkDetectInfo.bBusyTraffic)
\r
3639 else if(pLed->bLedScanBlinkInProgress == _FALSE)
\r
3641 if(IS_LED_WPS_BLINKING(pLed))
\r
3644 if(pLed->bLedBlinkInProgress == _TRUE)
\r
3646 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3647 pLed->bLedBlinkInProgress = _FALSE;
\r
3649 pLed->bLedScanBlinkInProgress = _TRUE;
\r
3650 pLed->CurrLedState = LED_BLINK_SCAN;
\r
3651 pLed->BlinkTimes = 6;
\r
3652 if( pLed->bLedOn )
\r
3653 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3655 pLed->BlinkingLedState = RTW_LED_ON;
\r
3656 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
\r
3660 case LED_CTL_LINK:
\r
3661 if(IS_LED_WPS_BLINKING(pLed))
\r
3664 pLed->CurrLedState = RTW_LED_ON;
\r
3665 pLed->BlinkingLedState = RTW_LED_ON;
\r
3666 if( pLed->bLedBlinkInProgress)
\r
3668 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3669 pLed->bLedBlinkInProgress = _FALSE;
\r
3671 if( pLed->bLedScanBlinkInProgress)
\r
3673 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3674 pLed->bLedScanBlinkInProgress = _FALSE;
\r
3677 _set_timer(&(pLed->BlinkTimer), 0);
\r
3680 case LED_CTL_START_WPS: //wait until xinpin finish
\r
3681 case LED_CTL_START_WPS_BOTTON:
\r
3682 if(pLed->bLedWPSBlinkInProgress ==_FALSE)
\r
3684 if(pLed->bLedBlinkInProgress == _TRUE)
\r
3686 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3687 pLed->bLedBlinkInProgress = _FALSE;
\r
3689 if(pLed->bLedScanBlinkInProgress == _TRUE)
\r
3691 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3692 pLed->bLedScanBlinkInProgress = _FALSE;
\r
3694 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
3695 pLed->CurrLedState = LED_BLINK_WPS;
\r
3696 if( pLed->bLedOn )
\r
3697 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3699 pLed->BlinkingLedState = RTW_LED_ON;
\r
3700 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
\r
3704 case LED_CTL_STOP_WPS:
\r
3705 if(pLed->bLedWPSBlinkInProgress)
\r
3707 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3708 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
3712 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
3715 pLed->CurrLedState = LED_BLINK_WPS_STOP;
\r
3718 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3719 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_NETGEAR);
\r
3723 pLed->BlinkingLedState = RTW_LED_ON;
\r
3724 _set_timer(&(pLed->BlinkTimer), 0);
\r
3730 case LED_CTL_STOP_WPS_FAIL:
\r
3731 case LED_CTL_STOP_WPS_FAIL_OVERLAP: //WPS session overlap
\r
3732 if(pLed->bLedWPSBlinkInProgress)
\r
3734 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3735 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
3738 pLed->CurrLedState = RTW_LED_OFF;
\r
3739 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3740 _set_timer(&(pLed->BlinkTimer), 0);
\r
3743 case LED_CTL_START_TO_LINK:
\r
3744 case LED_CTL_NO_LINK:
\r
3745 if(!IS_LED_BLINKING(pLed))
\r
3747 pLed->CurrLedState = RTW_LED_OFF;
\r
3748 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3749 _set_timer(&(pLed->BlinkTimer), 0);
\r
3753 case LED_CTL_POWER_OFF:
\r
3754 case LED_CTL_POWER_ON:
\r
3755 pLed->CurrLedState = RTW_LED_OFF;
\r
3756 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3757 if( pLed->bLedBlinkInProgress)
\r
3759 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3760 pLed->bLedBlinkInProgress = _FALSE;
\r
3762 if( pLed->bLedScanBlinkInProgress)
\r
3764 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3765 pLed->bLedScanBlinkInProgress = _FALSE;
\r
3767 if( pLed->bLedWPSBlinkInProgress )
\r
3769 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3770 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
3773 _set_timer(&(pLed->BlinkTimer), 0);
\r
3781 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("LEd control mode 7 CurrLedState %d\n", pLed->CurrLedState));
\r
3785 SwLedControlMode8(
\r
3787 LED_CTL_MODE LedAction
\r
3790 struct led_priv *ledpriv = &(Adapter->ledpriv);
\r
3791 struct mlme_priv *pmlmepriv = &Adapter->mlmepriv;
\r
3792 PLED_USB pLed0 = &(ledpriv->SwLed0);
\r
3796 case LED_CTL_LINK:
\r
3797 _cancel_timer_ex(&(pLed0->BlinkTimer));
\r
3798 pLed0->CurrLedState = RTW_LED_ON;
\r
3799 pLed0->BlinkingLedState = RTW_LED_ON;
\r
3800 _set_timer(&(pLed0->BlinkTimer), 0);
\r
3803 case LED_CTL_NO_LINK:
\r
3804 _cancel_timer_ex(&(pLed0->BlinkTimer));
\r
3805 pLed0->CurrLedState = RTW_LED_OFF;
\r
3806 pLed0->BlinkingLedState = RTW_LED_OFF;
\r
3807 _set_timer(&(pLed0->BlinkTimer), 0);
\r
3810 case LED_CTL_POWER_OFF:
\r
3811 SwLedOff(Adapter, pLed0);
\r
3818 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 8 %d\n", pLed0->CurrLedState));
\r
3822 //page added for Belkin AC950, 20120813
\r
3824 SwLedControlMode9(
\r
3825 IN PADAPTER Adapter,
\r
3826 IN LED_CTL_MODE LedAction
\r
3829 struct led_priv *ledpriv = &(Adapter->ledpriv);
\r
3830 struct mlme_priv *pmlmepriv = &Adapter->mlmepriv;
\r
3831 PLED_USB pLed = &(ledpriv->SwLed0);
\r
3832 PLED_USB pLed1 = &(ledpriv->SwLed1);
\r
3833 PLED_USB pLed2 = &(ledpriv->SwLed2);
\r
3834 BOOLEAN bWPSOverLap = _FALSE;
\r
3835 //DBG_871X("LedAction=%d \n", LedAction);
\r
3838 case LED_CTL_START_TO_LINK:
\r
3839 if(pLed2->bLedBlinkInProgress == _FALSE)
\r
3841 pLed2->bLedBlinkInProgress = _TRUE;
\r
3842 pLed2->BlinkingLedState = RTW_LED_ON;
\r
3843 pLed2->CurrLedState = LED_BLINK_LINK_IN_PROCESS;
\r
3845 _set_timer(&(pLed2->BlinkTimer), 0);
\r
3849 case LED_CTL_LINK:
\r
3850 case LED_CTL_NO_LINK:
\r
3852 if(LedAction == LED_CTL_NO_LINK)
\r
3854 //if(pMgntInfo->AuthStatus == AUTH_STATUS_FAILED)
\r
3857 pLed1->CurrLedState = LED_BLINK_AUTH_ERROR;
\r
3858 if( pLed1->bLedOn )
\r
3859 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
3861 pLed1->BlinkingLedState = RTW_LED_ON;
\r
3862 _set_timer(&(pLed1->BlinkTimer), 0);
\r
3866 pLed1->CurrLedState = RTW_LED_OFF;
\r
3867 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
3868 if( pLed1->bLedOn )
\r
3869 _set_timer(&(pLed1->BlinkTimer), 0);
\r
3874 pLed1->CurrLedState = RTW_LED_OFF;
\r
3875 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
3876 if( pLed1->bLedOn )
\r
3877 _set_timer(&(pLed1->BlinkTimer), 0);
\r
3881 if(LedAction == LED_CTL_LINK)
\r
3883 if(Adapter->securitypriv.dot11PrivacyAlgrthm != _NO_PRIVACY_)
\r
3885 if(pLed2->bLedBlinkInProgress ==_TRUE)
\r
3887 _cancel_timer_ex(&(pLed2->BlinkTimer));
\r
3888 pLed2->bLedBlinkInProgress = _FALSE;
\r
3890 pLed2->CurrLedState = RTW_LED_ON;
\r
3891 pLed2->bLedNoLinkBlinkInProgress = _TRUE;
\r
3892 if(!pLed2->bLedOn)
\r
3893 _set_timer(&(pLed2->BlinkTimer), 0);
\r
3897 if(pLed2->bLedWPSBlinkInProgress != _TRUE)
\r
3899 pLed2->CurrLedState = RTW_LED_OFF;
\r
3900 pLed2->BlinkingLedState = RTW_LED_OFF;
\r
3902 _set_timer(&(pLed2->BlinkTimer), 0);
\r
3908 if(pLed2->bLedWPSBlinkInProgress == _FALSE)
\r
3910 pLed2->CurrLedState = RTW_LED_OFF;
\r
3911 pLed2->BlinkingLedState = RTW_LED_OFF;
\r
3913 _set_timer(&(pLed2->BlinkTimer), 0);
\r
3918 if( pLed->bLedNoLinkBlinkInProgress == _FALSE )
\r
3920 if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
\r
3924 if(pLed->bLedBlinkInProgress == _TRUE)
\r
3926 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3927 pLed->bLedBlinkInProgress = _FALSE;
\r
3930 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
3931 if(IS_HARDWARE_TYPE_8812AU(Adapter))
\r
3933 if(LedAction == LED_CTL_LINK)
\r
3935 pLed->BlinkingLedState = RTW_LED_ON;
\r
3936 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
3940 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
3941 if( pLed->bLedOn )
\r
3942 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3944 pLed->BlinkingLedState = RTW_LED_ON;
\r
3949 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
3950 if( pLed->bLedOn )
\r
3951 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3953 pLed->BlinkingLedState = RTW_LED_ON;
\r
3955 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
3960 case LED_CTL_SITE_SURVEY:
\r
3961 if((pmlmepriv->LinkDetectInfo.bBusyTraffic) && (check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE))
\r
3963 else //if(pLed->bLedScanBlinkInProgress ==FALSE)
\r
3965 if(IS_LED_WPS_BLINKING(pLed))
\r
3968 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
3970 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3971 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
3973 if(pLed->bLedBlinkInProgress == _TRUE)
\r
3975 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
3976 pLed->bLedBlinkInProgress = _FALSE;
\r
3978 pLed->bLedScanBlinkInProgress = _TRUE;
\r
3979 pLed->CurrLedState = LED_BLINK_SCAN;
\r
3980 pLed->BlinkTimes = 24;
\r
3981 if( pLed->bLedOn )
\r
3982 pLed->BlinkingLedState = RTW_LED_OFF;
\r
3984 pLed->BlinkingLedState = RTW_LED_ON;
\r
3985 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
3992 if(pLed->bLedBlinkInProgress == _FALSE)
\r
3994 if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
\r
3998 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
4000 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4001 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
4003 pLed->bLedBlinkInProgress = _TRUE;
\r
4004 pLed->CurrLedState = LED_BLINK_TXRX;
\r
4005 pLed->BlinkTimes = 2;
\r
4006 if( pLed->bLedOn )
\r
4007 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4009 pLed->BlinkingLedState = RTW_LED_ON;
\r
4010 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
4014 case LED_CTL_START_WPS: //wait until xinpin finish
\r
4015 case LED_CTL_START_WPS_BOTTON:
\r
4016 pLed2->bLedBlinkInProgress = _TRUE;
\r
4017 pLed2->BlinkingLedState = RTW_LED_ON;
\r
4018 pLed2->CurrLedState = LED_BLINK_LINK_IN_PROCESS;
\r
4019 pLed2->bLedWPSBlinkInProgress = _TRUE;
\r
4021 _set_timer(&(pLed2->BlinkTimer), 500);
\r
4025 case LED_CTL_STOP_WPS: //WPS connect success
\r
4027 if(pLed2->bLedWPSBlinkInProgress == _TRUE)
\r
4029 _cancel_timer_ex(&(pLed2->BlinkTimer));
\r
4030 pLed2->bLedBlinkInProgress = _FALSE;
\r
4031 pLed2->bLedWPSBlinkInProgress = _FALSE;
\r
4033 pLed2->CurrLedState = RTW_LED_ON;
\r
4034 pLed2->bLedNoLinkBlinkInProgress = _TRUE;
\r
4035 if(!pLed2->bLedOn)
\r
4036 _set_timer(&(pLed2->BlinkTimer), 0);
\r
4039 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
4040 pLed1->CurrLedState = RTW_LED_OFF;
\r
4041 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
4042 if( pLed1->bLedOn )
\r
4043 _set_timer(&(pLed1->BlinkTimer), 0);
\r
4048 case LED_CTL_STOP_WPS_FAIL: //WPS authentication fail
\r
4050 //if(bWPSOverLap == _FALSE)
\r
4052 pLed1->CurrLedState = LED_BLINK_AUTH_ERROR;
\r
4053 pLed1->BlinkTimes = 50;
\r
4054 if( pLed1->bLedOn )
\r
4055 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
4057 pLed1->BlinkingLedState = RTW_LED_ON;
\r
4058 _set_timer(&(pLed1->BlinkTimer), 0);
\r
4062 // bWPSOverLap = _FALSE;
\r
4063 // pLed1->CurrLedState = RTW_LED_OFF;
\r
4064 // pLed1->BlinkingLedState = RTW_LED_OFF;
\r
4065 // _set_timer(&(pLed1->BlinkTimer), 0);
\r
4069 pLed2->CurrLedState = RTW_LED_OFF;
\r
4070 pLed2->BlinkingLedState = RTW_LED_OFF;
\r
4071 pLed2->bLedWPSBlinkInProgress = _FALSE;
\r
4072 if( pLed2->bLedOn )
\r
4073 _set_timer(&(pLed2->BlinkTimer), 0);
\r
4077 case LED_CTL_STOP_WPS_FAIL_OVERLAP: //WPS session overlap
\r
4079 bWPSOverLap = _TRUE;
\r
4080 pLed1->CurrLedState = LED_BLINK_WPS_STOP_OVERLAP;
\r
4081 pLed1->BlinkTimes = 10;
\r
4082 pLed1->BlinkCounter = 50;
\r
4083 if( pLed1->bLedOn )
\r
4084 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
4086 pLed1->BlinkingLedState = RTW_LED_ON;
\r
4087 _set_timer(&(pLed1->BlinkTimer), 0);
\r
4090 pLed2->CurrLedState = RTW_LED_OFF;
\r
4091 pLed2->BlinkingLedState = RTW_LED_OFF;
\r
4092 pLed2->bLedWPSBlinkInProgress = _FALSE;
\r
4093 if( pLed2->bLedOn )
\r
4094 _set_timer(&(pLed2->BlinkTimer), 0);
\r
4098 case LED_CTL_POWER_OFF:
\r
4099 pLed->CurrLedState = RTW_LED_OFF;
\r
4100 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4102 if( pLed->bLedNoLinkBlinkInProgress)
\r
4104 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4105 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
4107 if( pLed->bLedLinkBlinkInProgress)
\r
4109 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4110 pLed->bLedLinkBlinkInProgress = _FALSE;
\r
4112 if( pLed->bLedBlinkInProgress)
\r
4114 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4115 pLed->bLedBlinkInProgress = _FALSE;
\r
4117 if( pLed->bLedWPSBlinkInProgress )
\r
4119 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4120 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
4122 if( pLed->bLedScanBlinkInProgress)
\r
4124 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4125 pLed->bLedScanBlinkInProgress = _FALSE;
\r
4127 if( pLed->bLedStartToLinkBlinkInProgress)
\r
4129 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4130 pLed->bLedStartToLinkBlinkInProgress = _FALSE;
\r
4133 if( pLed1->bLedWPSBlinkInProgress )
\r
4135 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
4136 pLed1->bLedWPSBlinkInProgress = _FALSE;
\r
4140 pLed1->BlinkingLedState = LED_UNKNOWN;
\r
4141 SwLedOff(Adapter, pLed);
\r
4142 SwLedOff(Adapter, pLed1);
\r
4145 case LED_CTL_CONNECTION_NO_TRANSFER:
\r
4146 if(pLed->bLedBlinkInProgress == _FALSE)
\r
4148 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
4150 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4151 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
4153 pLed->bLedBlinkInProgress = _TRUE;
\r
4155 pLed->CurrLedState = LED_BLINK_ALWAYS_ON;
\r
4156 pLed->BlinkingLedState = RTW_LED_ON;
\r
4157 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
4166 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 9 Led %d\n", pLed->CurrLedState));
\r
4169 //page added for Netgear A6200V2, 20120827
\r
4171 SwLedControlMode10(
\r
4173 LED_CTL_MODE LedAction
\r
4176 HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
\r
4177 struct led_priv *ledpriv = &(Adapter->ledpriv);
\r
4178 struct mlme_priv *pmlmepriv = &Adapter->mlmepriv;
\r
4179 PLED_USB pLed = &(ledpriv->SwLed0);
\r
4180 PLED_USB pLed1 = &(ledpriv->SwLed1);
\r
4184 case LED_CTL_START_TO_LINK:
\r
4185 if(pLed1->bLedBlinkInProgress == _FALSE)
\r
4187 pLed1->bLedBlinkInProgress = _TRUE;
\r
4188 pLed1->BlinkingLedState = RTW_LED_ON;
\r
4189 pLed1->CurrLedState = LED_BLINK_LINK_IN_PROCESS;
\r
4191 _set_timer(&(pLed1->BlinkTimer), 0);
\r
4195 case LED_CTL_LINK:
\r
4196 case LED_CTL_NO_LINK:
\r
4197 if(LedAction == LED_CTL_LINK)
\r
4199 if(pLed->bLedWPSBlinkInProgress == _TRUE || pLed1->bLedWPSBlinkInProgress == _TRUE)
\r
4203 if(pHalData->CurrentBandType == BAND_ON_2_4G)
\r
4206 pLed->CurrLedState = RTW_LED_ON;
\r
4207 pLed->BlinkingLedState = RTW_LED_ON;
\r
4208 if(pLed->bLedBlinkInProgress == _TRUE)
\r
4210 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4211 pLed->bLedBlinkInProgress = _FALSE;
\r
4213 _set_timer(&(pLed->BlinkTimer), 0);
\r
4215 pLed1->CurrLedState = RTW_LED_OFF;
\r
4216 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
4217 _set_timer(&(pLed1->BlinkTimer), 0);
\r
4219 else if(pHalData->CurrentBandType == BAND_ON_5G)
\r
4222 pLed1->CurrLedState = RTW_LED_ON;
\r
4223 pLed1->BlinkingLedState = RTW_LED_ON;
\r
4224 if(pLed1->bLedBlinkInProgress == _TRUE)
\r
4226 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
4227 pLed1->bLedBlinkInProgress = _FALSE;
\r
4229 _set_timer(&(pLed1->BlinkTimer), 0);
\r
4231 pLed->CurrLedState = RTW_LED_OFF;
\r
4232 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4233 _set_timer(&(pLed->BlinkTimer), 0);
\r
4237 else if(LedAction == LED_CTL_NO_LINK) //TODO by page
\r
4239 if(pLed->bLedWPSBlinkInProgress == _TRUE || pLed1->bLedWPSBlinkInProgress == _TRUE)
\r
4243 pLed->CurrLedState = RTW_LED_OFF;
\r
4244 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4245 if( pLed->bLedOn )
\r
4246 _set_timer(&(pLed->BlinkTimer), 0);
\r
4248 pLed1->CurrLedState = RTW_LED_OFF;
\r
4249 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
4250 if( pLed1->bLedOn )
\r
4251 _set_timer(&(pLed1->BlinkTimer), 0);
\r
4257 case LED_CTL_SITE_SURVEY:
\r
4258 if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
\r
4259 ; //don't blink when media connect
\r
4260 else //if(pLed->bLedScanBlinkInProgress ==FALSE)
\r
4262 if(IS_LED_WPS_BLINKING(pLed) || IS_LED_WPS_BLINKING(pLed1))
\r
4265 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
4267 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4268 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
4270 if(pLed->bLedBlinkInProgress == _TRUE)
\r
4272 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4273 pLed->bLedBlinkInProgress = _FALSE;
\r
4275 pLed->bLedScanBlinkInProgress = _TRUE;
\r
4276 pLed->CurrLedState = LED_BLINK_SCAN;
\r
4277 pLed->BlinkTimes = 12;
\r
4278 pLed->BlinkingLedState = LED_BLINK_SCAN;
\r
4279 _set_timer(&(pLed->BlinkTimer), 0);
\r
4281 if(pLed1->bLedNoLinkBlinkInProgress == _TRUE)
\r
4283 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
4284 pLed1->bLedNoLinkBlinkInProgress = _FALSE;
\r
4286 if(pLed1->bLedBlinkInProgress == _TRUE)
\r
4288 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
4289 pLed1->bLedBlinkInProgress = _FALSE;
\r
4291 pLed1->bLedScanBlinkInProgress = _TRUE;
\r
4292 pLed1->CurrLedState = LED_BLINK_SCAN;
\r
4293 pLed1->BlinkTimes = 12;
\r
4294 pLed1->BlinkingLedState = LED_BLINK_SCAN;
\r
4295 _set_timer(&(pLed1->BlinkTimer), LED_BLINK_LINK_SLOWLY_INTERVAL_NETGEAR);
\r
4300 case LED_CTL_START_WPS: //wait until xinpin finish
\r
4301 case LED_CTL_START_WPS_BOTTON:
\r
4303 if(pLed->bLedBlinkInProgress == _FALSE)
\r
4305 pLed->bLedBlinkInProgress = _TRUE;
\r
4306 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
4307 pLed->BlinkingLedState = LED_BLINK_WPS;
\r
4308 pLed->CurrLedState = LED_BLINK_WPS;
\r
4309 _set_timer(&(pLed->BlinkTimer), 0);
\r
4313 if(pLed1->bLedBlinkInProgress == _FALSE)
\r
4315 pLed1->bLedBlinkInProgress = _TRUE;
\r
4316 pLed1->bLedWPSBlinkInProgress = _TRUE;
\r
4317 pLed1->BlinkingLedState = LED_BLINK_WPS;
\r
4318 pLed1->CurrLedState = LED_BLINK_WPS;
\r
4319 _set_timer(&(pLed1->BlinkTimer), LED_BLINK_NORMAL_INTERVAL+LED_BLINK_LINK_INTERVAL_NETGEAR);
\r
4325 case LED_CTL_STOP_WPS: //WPS connect success
\r
4326 if(pHalData->CurrentBandType == BAND_ON_2_4G)
\r
4329 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
4330 pLed->CurrLedState = RTW_LED_ON;
\r
4331 pLed->BlinkingLedState = RTW_LED_ON;
\r
4332 if(pLed->bLedBlinkInProgress == _TRUE)
\r
4334 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4335 pLed->bLedBlinkInProgress = _FALSE;
\r
4337 _set_timer(&(pLed->BlinkTimer), 0);
\r
4339 pLed1->CurrLedState = RTW_LED_OFF;
\r
4340 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
4341 _set_timer(&(pLed1->BlinkTimer), 0);
\r
4343 else if(pHalData->CurrentBandType == BAND_ON_5G)
\r
4346 pLed1->bLedWPSBlinkInProgress = _FALSE;
\r
4347 pLed1->CurrLedState = RTW_LED_ON;
\r
4348 pLed1->BlinkingLedState = RTW_LED_ON;
\r
4349 if(pLed1->bLedBlinkInProgress == _TRUE)
\r
4351 _cancel_timer_ex(&(pLed1->BlinkTimer));
\r
4352 pLed1->bLedBlinkInProgress = _FALSE;
\r
4354 _set_timer(&(pLed1->BlinkTimer), 0);
\r
4356 pLed->CurrLedState = RTW_LED_OFF;
\r
4357 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4358 _set_timer(&(pLed->BlinkTimer), 0);
\r
4363 case LED_CTL_STOP_WPS_FAIL: //WPS authentication fail
\r
4365 pLed1->bLedWPSBlinkInProgress = _FALSE;
\r
4366 pLed1->CurrLedState = RTW_LED_OFF;
\r
4367 pLed1->BlinkingLedState = RTW_LED_OFF;
\r
4368 _set_timer(&(pLed1->BlinkTimer), 0);
\r
4371 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
4372 pLed->CurrLedState = RTW_LED_OFF;
\r
4373 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4374 if( pLed->bLedOn )
\r
4375 _set_timer(&(pLed->BlinkTimer), 0);
\r
4385 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 10 Led %d\n", pLed->CurrLedState));
\r
4388 //Edimax-ASUS, added by Page, 20121221
\r
4390 SwLedControlMode11(
\r
4392 LED_CTL_MODE LedAction
\r
4395 struct led_priv *ledpriv = &(Adapter->ledpriv);
\r
4396 struct mlme_priv *pmlmepriv = &Adapter->mlmepriv;
\r
4397 PLED_USB pLed = &(ledpriv->SwLed0);
\r
4401 case LED_CTL_POWER_ON:
\r
4402 case LED_CTL_START_TO_LINK:
\r
4403 case LED_CTL_NO_LINK:
\r
4404 pLed->CurrLedState = RTW_LED_ON;
\r
4405 pLed->BlinkingLedState = RTW_LED_ON;
\r
4406 _set_timer(&(pLed->BlinkTimer), 0);
\r
4409 case LED_CTL_LINK:
\r
4410 if( pLed->bLedBlinkInProgress == _TRUE )
\r
4412 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4413 pLed->bLedBlinkInProgress = _FALSE;
\r
4415 pLed->bLedBlinkInProgress = _TRUE;
\r
4416 pLed->CurrLedState = LED_BLINK_TXRX;
\r
4417 if( pLed->bLedOn )
\r
4418 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4420 pLed->BlinkingLedState = RTW_LED_ON;
\r
4421 _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
\r
4424 case LED_CTL_START_WPS: //wait until xinpin finish
\r
4425 case LED_CTL_START_WPS_BOTTON:
\r
4426 if(pLed->bLedBlinkInProgress == _TRUE)
\r
4428 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4429 pLed->bLedBlinkInProgress = _FALSE;
\r
4431 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
4432 pLed->bLedBlinkInProgress = _TRUE;
\r
4433 pLed->CurrLedState = LED_BLINK_WPS;
\r
4434 if( pLed->bLedOn )
\r
4435 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4437 pLed->BlinkingLedState = RTW_LED_ON;
\r
4438 pLed->BlinkTimes = 5;
\r
4439 _set_timer(&(pLed->BlinkTimer), 0);
\r
4444 case LED_CTL_STOP_WPS:
\r
4445 case LED_CTL_STOP_WPS_FAIL:
\r
4446 if(pLed->bLedBlinkInProgress == _TRUE)
\r
4448 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4449 pLed->bLedBlinkInProgress = _FALSE;
\r
4451 pLed->CurrLedState = LED_BLINK_WPS_STOP;
\r
4452 _set_timer(&(pLed->BlinkTimer), 0);
\r
4455 case LED_CTL_POWER_OFF:
\r
4456 pLed->CurrLedState = RTW_LED_OFF;
\r
4457 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4459 if( pLed->bLedNoLinkBlinkInProgress)
\r
4461 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4462 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
4464 if( pLed->bLedLinkBlinkInProgress)
\r
4466 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4467 pLed->bLedLinkBlinkInProgress = _FALSE;
\r
4469 if( pLed->bLedBlinkInProgress)
\r
4471 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4472 pLed->bLedBlinkInProgress = _FALSE;
\r
4474 if( pLed->bLedWPSBlinkInProgress )
\r
4476 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4477 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
4479 if( pLed->bLedScanBlinkInProgress)
\r
4481 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4482 pLed->bLedScanBlinkInProgress = _FALSE;
\r
4485 SwLedOff(Adapter, pLed);
\r
4493 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led mode 1 CurrLedState %d\n", pLed->CurrLedState));
\r
4496 // page added for NEC
\r
4499 SwLedControlMode12(
\r
4501 LED_CTL_MODE LedAction
\r
4504 struct led_priv *ledpriv = &(Adapter->ledpriv);
\r
4505 struct mlme_priv *pmlmepriv = &Adapter->mlmepriv;
\r
4506 PLED_USB pLed = &(ledpriv->SwLed0);
\r
4510 case LED_CTL_POWER_ON:
\r
4511 case LED_CTL_NO_LINK:
\r
4512 case LED_CTL_LINK:
\r
4513 case LED_CTL_SITE_SURVEY:
\r
4515 if( pLed->bLedNoLinkBlinkInProgress == _FALSE )
\r
4517 if(pLed->bLedBlinkInProgress == _TRUE)
\r
4519 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4520 pLed->bLedBlinkInProgress = _FALSE;
\r
4523 pLed->bLedNoLinkBlinkInProgress = _TRUE;
\r
4524 pLed->CurrLedState = LED_BLINK_SLOWLY;
\r
4525 if( pLed->bLedOn )
\r
4526 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4528 pLed->BlinkingLedState = RTW_LED_ON;
\r
4529 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
\r
4535 if(pLed->bLedBlinkInProgress == _FALSE)
\r
4537 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
4539 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4540 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
4542 pLed->bLedBlinkInProgress = _TRUE;
\r
4543 pLed->CurrLedState = LED_BLINK_TXRX;
\r
4544 pLed->BlinkTimes = 2;
\r
4545 if( pLed->bLedOn )
\r
4546 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4548 pLed->BlinkingLedState = RTW_LED_ON;
\r
4549 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
4553 case LED_CTL_POWER_OFF:
\r
4554 pLed->CurrLedState = RTW_LED_OFF;
\r
4555 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4557 if( pLed->bLedBlinkInProgress)
\r
4559 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4560 pLed->bLedBlinkInProgress = _FALSE;
\r
4563 if( pLed->bLedScanBlinkInProgress)
\r
4565 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4566 pLed->bLedScanBlinkInProgress = _FALSE;
\r
4569 if(pLed->bLedNoLinkBlinkInProgress == _TRUE)
\r
4571 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4572 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
4575 SwLedOff(Adapter, pLed);
\r
4583 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SWLed12 %d\n", pLed->CurrLedState));
\r
4586 // Maddest add for NETGEAR R6100
\r
4589 SwLedControlMode13(
\r
4590 IN PADAPTER Adapter,
\r
4591 IN LED_CTL_MODE LedAction
\r
4594 struct led_priv *ledpriv = &(Adapter->ledpriv);
\r
4595 struct mlme_priv *pmlmepriv = &Adapter->mlmepriv;
\r
4596 PLED_USB pLed = &(ledpriv->SwLed0);
\r
4598 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 13 CurrLedState %d, LedAction %d\n", pLed->CurrLedState,LedAction));
\r
4601 case LED_CTL_LINK:
\r
4602 if(pLed->bLedWPSBlinkInProgress)
\r
4608 pLed->CurrLedState = RTW_LED_ON;
\r
4609 pLed->BlinkingLedState = RTW_LED_ON;
\r
4610 if( pLed->bLedBlinkInProgress)
\r
4612 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4613 pLed->bLedBlinkInProgress = _FALSE;
\r
4615 if( pLed->bLedScanBlinkInProgress)
\r
4617 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4618 pLed->bLedScanBlinkInProgress = _FALSE;
\r
4621 _set_timer(&(pLed->BlinkTimer), 0);
\r
4624 case LED_CTL_START_WPS: //wait until xinpin finish
\r
4625 case LED_CTL_START_WPS_BOTTON:
\r
4626 if(pLed->bLedWPSBlinkInProgress == _FALSE)
\r
4628 if(pLed->bLedBlinkInProgress == _TRUE)
\r
4630 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4631 pLed->bLedBlinkInProgress = _FALSE;
\r
4633 if(pLed->bLedScanBlinkInProgress == _TRUE)
\r
4635 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4636 pLed->bLedScanBlinkInProgress = _FALSE;
\r
4638 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
4639 pLed->CurrLedState = LED_BLINK_WPS;
\r
4640 if( pLed->bLedOn )
\r
4642 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4643 _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_OFF_INTERVAL_NETGEAR);
\r
4647 pLed->BlinkingLedState = RTW_LED_ON;
\r
4648 _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_ON_INTERVAL_NETGEAR);
\r
4653 case LED_CTL_STOP_WPS:
\r
4654 if(pLed->bLedWPSBlinkInProgress)
\r
4656 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4657 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
4661 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
4664 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
4665 pLed->CurrLedState = LED_BLINK_WPS_STOP;
\r
4668 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4670 _set_timer(&(pLed->BlinkTimer), 0);
\r
4676 case LED_CTL_STOP_WPS_FAIL:
\r
4677 case LED_CTL_STOP_WPS_FAIL_OVERLAP: //WPS session overlap
\r
4678 if(pLed->bLedWPSBlinkInProgress)
\r
4680 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4681 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
4684 pLed->CurrLedState = RTW_LED_OFF;
\r
4685 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4686 _set_timer(&(pLed->BlinkTimer), 0);
\r
4689 case LED_CTL_START_TO_LINK:
\r
4690 if((pLed->bLedBlinkInProgress == _FALSE) && (pLed->bLedWPSBlinkInProgress == _FALSE))
\r
4692 pLed->bLedBlinkInProgress = _TRUE;
\r
4693 pLed->BlinkingLedState = RTW_LED_ON;
\r
4694 pLed->CurrLedState = LED_BLINK_LINK_IN_PROCESS;
\r
4696 _set_timer(&(pLed->BlinkTimer), 0);
\r
4700 case LED_CTL_NO_LINK:
\r
4702 if(pLed->bLedWPSBlinkInProgress)
\r
4706 if( pLed->bLedBlinkInProgress)
\r
4708 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4709 pLed->bLedBlinkInProgress = _FALSE;
\r
4711 if( pLed->bLedScanBlinkInProgress)
\r
4713 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4714 pLed->bLedScanBlinkInProgress = _FALSE;
\r
4716 //if(!IS_LED_BLINKING(pLed))
\r
4718 pLed->CurrLedState = RTW_LED_OFF;
\r
4719 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4720 _set_timer(&(pLed->BlinkTimer), 0);
\r
4724 case LED_CTL_POWER_OFF:
\r
4725 case LED_CTL_POWER_ON:
\r
4726 pLed->CurrLedState = RTW_LED_OFF;
\r
4727 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4728 if( pLed->bLedBlinkInProgress)
\r
4730 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4731 pLed->bLedBlinkInProgress = _FALSE;
\r
4733 if( pLed->bLedScanBlinkInProgress)
\r
4735 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4736 pLed->bLedScanBlinkInProgress = _FALSE;
\r
4738 if( pLed->bLedWPSBlinkInProgress )
\r
4740 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4741 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
4744 if (LedAction == LED_CTL_POWER_ON)
\r
4745 _set_timer(&(pLed->BlinkTimer), 0);
\r
4747 SwLedOff(Adapter, pLed);
\r
4758 // Maddest add for DNI Buffalo
\r
4761 SwLedControlMode14(
\r
4762 IN PADAPTER Adapter,
\r
4763 IN LED_CTL_MODE LedAction
\r
4766 struct led_priv *ledpriv = &(Adapter->ledpriv);
\r
4767 PLED_USB pLed = &(ledpriv->SwLed0);
\r
4769 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 14 CurrLedState %d, LedAction %d\n", pLed->CurrLedState,LedAction));
\r
4772 case LED_CTL_POWER_OFF:
\r
4773 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 14 LED_CTL_POWER_OFF\n"));
\r
4774 pLed->CurrLedState = RTW_LED_OFF;
\r
4775 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4776 if( pLed->bLedBlinkInProgress)
\r
4778 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4779 pLed->bLedBlinkInProgress = _FALSE;
\r
4781 SwLedOff(Adapter, pLed);
\r
4784 case LED_CTL_POWER_ON:
\r
4785 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 14 LED_CTL_POWER_ON\n"));
\r
4786 SwLedOn(Adapter, pLed);
\r
4789 case LED_CTL_LINK:
\r
4790 case LED_CTL_NO_LINK:
\r
4791 if (IS_HARDWARE_TYPE_8812AU(Adapter))
\r
4792 SwLedOn(Adapter, pLed);
\r
4797 if(pLed->bLedBlinkInProgress ==_FALSE)
\r
4799 pLed->bLedBlinkInProgress = _TRUE;
\r
4800 pLed->CurrLedState = LED_BLINK_TXRX;
\r
4801 pLed->BlinkTimes = 2;
\r
4802 if( pLed->bLedOn )
\r
4804 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4805 if (IS_HARDWARE_TYPE_8812AU(Adapter))
\r
4806 _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
\r
4808 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
4812 pLed->BlinkingLedState = RTW_LED_ON;
\r
4813 if (IS_HARDWARE_TYPE_8812AU(Adapter))
\r
4814 _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
\r
4816 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
4826 // Maddest add for Dlink
\r
4829 SwLedControlMode15(
\r
4830 IN PADAPTER Adapter,
\r
4831 IN LED_CTL_MODE LedAction
\r
4834 struct led_priv *ledpriv = &(Adapter->ledpriv);
\r
4835 struct mlme_priv *pmlmepriv = &Adapter->mlmepriv;
\r
4836 PLED_USB pLed = &(ledpriv->SwLed0);
\r
4838 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 CurrLedState %d, LedAction %d\n", pLed->CurrLedState,LedAction));
\r
4841 case LED_CTL_START_WPS: //wait until xinpin finish
\r
4842 case LED_CTL_START_WPS_BOTTON:
\r
4843 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 LED_CTL_START_WPS\n"));
\r
4844 if(pLed->bLedWPSBlinkInProgress ==_FALSE)
\r
4846 if(pLed->bLedBlinkInProgress ==_TRUE)
\r
4848 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4849 pLed->bLedBlinkInProgress = _FALSE;
\r
4851 if(pLed->bLedScanBlinkInProgress ==_TRUE)
\r
4853 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4854 pLed->bLedScanBlinkInProgress = _FALSE;
\r
4856 pLed->bLedWPSBlinkInProgress = _TRUE;
\r
4857 pLed->CurrLedState = LED_BLINK_WPS;
\r
4858 if( pLed->bLedOn )
\r
4860 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4861 _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_OFF_INTERVAL_NETGEAR);
\r
4865 pLed->BlinkingLedState = RTW_LED_ON;
\r
4866 _set_timer(&(pLed->BlinkTimer), LED_WPS_BLINK_ON_INTERVAL_NETGEAR);
\r
4871 case LED_CTL_STOP_WPS:
\r
4872 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 LED_CTL_STOP_WPS\n"));
\r
4873 if(pLed->bLedWPSBlinkInProgress)
\r
4875 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4878 pLed->CurrLedState = LED_BLINK_WPS_STOP;
\r
4879 //if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
\r
4881 pLed->BlinkingLedState = RTW_LED_ON;
\r
4883 _set_timer(&(pLed->BlinkTimer), 0);
\r
4888 case LED_CTL_STOP_WPS_FAIL:
\r
4889 case LED_CTL_STOP_WPS_FAIL_OVERLAP: //WPS session overlap
\r
4890 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 LED_CTL_STOP_WPS_FAIL\n"));
\r
4891 if(pLed->bLedWPSBlinkInProgress)
\r
4893 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4894 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
4897 pLed->CurrLedState = RTW_LED_OFF;
\r
4898 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4899 _set_timer(&(pLed->BlinkTimer), 0);
\r
4902 case LED_CTL_NO_LINK:
\r
4903 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 LED_CTL_NO_LINK\n"));
\r
4904 if(pLed->bLedWPSBlinkInProgress)
\r
4909 /*if(Adapter->securitypriv.dot11PrivacyAlgrthm > _NO_PRIVACY_)
\r
4911 if(SecIsTxKeyInstalled(Adapter, pMgntInfo->Bssid))
\r
4916 if(pMgntInfo->LEDAssocState ==LED_ASSOC_SECURITY_BEGIN)
\r
4921 if( pLed->bLedBlinkInProgress)
\r
4923 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4924 pLed->bLedBlinkInProgress = _FALSE;
\r
4926 if( pLed->bLedScanBlinkInProgress)
\r
4928 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4929 pLed->bLedScanBlinkInProgress = _FALSE;
\r
4931 //if(!IS_LED_BLINKING(pLed))
\r
4933 pLed->CurrLedState = LED_BLINK_NO_LINK;
\r
4934 pLed->BlinkingLedState = RTW_LED_ON;
\r
4935 _set_timer(&(pLed->BlinkTimer), 30);
\r
4939 case LED_CTL_LINK:
\r
4940 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led control mode 15 LED_CTL_LINK\n"));
\r
4942 if(pLed->bLedWPSBlinkInProgress)
\r
4947 if( pLed->bLedBlinkInProgress)
\r
4949 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4950 pLed->bLedBlinkInProgress = _FALSE;
\r
4953 pLed->CurrLedState = LED_BLINK_LINK_IDEL;
\r
4954 pLed->BlinkingLedState = RTW_LED_ON;
\r
4956 _set_timer(&(pLed->BlinkTimer), 30);
\r
4959 case LED_CTL_SITE_SURVEY :
\r
4960 if(check_fwstate(pmlmepriv, _FW_LINKED)== _TRUE)
\r
4963 if(pLed->bLedWPSBlinkInProgress ==_TRUE)
\r
4966 if( pLed->bLedBlinkInProgress)
\r
4968 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4969 pLed->bLedBlinkInProgress = _FALSE;
\r
4971 pLed->CurrLedState = LED_BLINK_SCAN;
\r
4972 pLed->BlinkingLedState = RTW_LED_ON;
\r
4973 _set_timer(&(pLed->BlinkTimer), 0);
\r
4978 if(pLed->bLedWPSBlinkInProgress)
\r
4983 if( pLed->bLedBlinkInProgress)
\r
4985 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
4986 pLed->bLedBlinkInProgress = _FALSE;
\r
4989 pLed->bLedBlinkInProgress = _TRUE;
\r
4990 pLed->CurrLedState = LED_BLINK_TXRX;
\r
4991 pLed->BlinkTimes = 2;
\r
4992 if( pLed->bLedOn )
\r
4993 pLed->BlinkingLedState = RTW_LED_OFF;
\r
4995 pLed->BlinkingLedState = RTW_LED_ON;
\r
4996 _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
\r
5006 _adapter *padapter,
\r
5007 LED_CTL_MODE LedAction
\r
5010 struct led_priv *ledpriv = &(padapter->ledpriv);
\r
5012 #if(MP_DRIVER == 1)
\r
5013 if (padapter->registrypriv.mp_mode == 1)
\r
5017 if( (padapter->bSurpriseRemoved == _TRUE) ||(padapter->hw_init_completed == _FALSE) )
\r
5022 if( ledpriv->bRegUseLed == _FALSE)
\r
5025 //if(priv->bInHctTest)
\r
5028 #ifdef CONFIG_CONCURRENT_MODE
\r
5029 // Only do led action for PRIMARY_ADAPTER
\r
5030 if (padapter->adapter_type != PRIMARY_ADAPTER)
\r
5034 if( (adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on &&
\r
5035 adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS) &&
\r
5036 (LedAction == LED_CTL_TX || LedAction == LED_CTL_RX ||
\r
5037 LedAction == LED_CTL_SITE_SURVEY ||
\r
5038 LedAction == LED_CTL_LINK ||
\r
5039 LedAction == LED_CTL_NO_LINK ||
\r
5040 LedAction == LED_CTL_POWER_ON) )
\r
5045 switch(ledpriv->LedStrategy)
\r
5047 case SW_LED_MODE0:
\r
5048 SwLedControlMode0(padapter, LedAction);
\r
5051 case SW_LED_MODE1:
\r
5052 SwLedControlMode1(padapter, LedAction);
\r
5055 case SW_LED_MODE2:
\r
5056 SwLedControlMode2(padapter, LedAction);
\r
5059 case SW_LED_MODE3:
\r
5060 SwLedControlMode3(padapter, LedAction);
\r
5063 case SW_LED_MODE4:
\r
5064 SwLedControlMode4(padapter, LedAction);
\r
5067 case SW_LED_MODE5:
\r
5068 SwLedControlMode5(padapter, LedAction);
\r
5071 case SW_LED_MODE6:
\r
5072 SwLedControlMode6(padapter, LedAction);
\r
5075 case SW_LED_MODE7:
\r
5076 SwLedControlMode7(padapter, LedAction);
\r
5079 case SW_LED_MODE8:
\r
5080 SwLedControlMode8(padapter, LedAction);
\r
5083 case SW_LED_MODE9:
\r
5084 SwLedControlMode9(padapter, LedAction);
\r
5087 case SW_LED_MODE10:
\r
5088 SwLedControlMode10(padapter, LedAction);
\r
5091 case SW_LED_MODE11:
\r
5092 SwLedControlMode11(padapter, LedAction);
\r
5095 case SW_LED_MODE12:
\r
5096 SwLedControlMode12(padapter, LedAction);
\r
5099 case SW_LED_MODE13:
\r
5100 SwLedControlMode13(padapter, LedAction);
\r
5103 case SW_LED_MODE14:
\r
5104 SwLedControlMode14(padapter, LedAction);
\r
5107 case SW_LED_MODE15:
\r
5108 SwLedControlMode15(padapter, LedAction);
\r
5115 RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("LedStrategy:%d, LedAction %d\n", ledpriv->LedStrategy,LedAction));
\r
5120 // Reset status of LED_871x object.
\r
5122 void ResetLedStatus(PLED_USB pLed) {
\r
5124 pLed->CurrLedState = RTW_LED_OFF; // Current LED state.
\r
5125 pLed->bLedOn = _FALSE; // true if LED is ON, false if LED is OFF.
\r
5127 pLed->bLedBlinkInProgress = _FALSE; // true if it is blinking, false o.w..
\r
5128 pLed->bLedWPSBlinkInProgress = _FALSE;
\r
5130 pLed->BlinkTimes = 0; // Number of times to toggle led state for blinking.
\r
5131 pLed->BlinkCounter = 0;
\r
5132 pLed->BlinkingLedState = LED_UNKNOWN; // Next state for blinking, either RTW_LED_ON or RTW_LED_OFF are.
\r
5134 pLed->bLedNoLinkBlinkInProgress = _FALSE;
\r
5135 pLed->bLedLinkBlinkInProgress = _FALSE;
\r
5136 pLed->bLedStartToLinkBlinkInProgress = _FALSE;
\r
5137 pLed->bLedScanBlinkInProgress = _FALSE;
\r
5142 // Initialize an LED_871x object.
\r
5146 _adapter *padapter,
\r
5151 pLed->padapter = padapter;
\r
5152 pLed->LedPin = LedPin;
\r
5154 ResetLedStatus(pLed);
\r
5155 ATOMIC_SET(&pLed->bCancelWorkItem, _FALSE);
\r
5156 _init_timer(&(pLed->BlinkTimer), padapter->pnetdev, BlinkTimerCallback, pLed);
\r
5157 _init_workitem(&(pLed->BlinkWorkItem), BlinkWorkItemCallback, pLed);
\r
5163 // DeInitialize an LED_871x object.
\r
5170 ATOMIC_SET(&pLed->bCancelWorkItem, _TRUE);
\r
5171 _cancel_workitem_sync(&(pLed->BlinkWorkItem));
\r
5172 _cancel_timer_ex(&(pLed->BlinkTimer));
\r
5173 ResetLedStatus(pLed);
\r