#
# Created by Yongle Lai in 2010-09-08
#

#****************************************************************************#

1. ͨ鿴ǰ˯
     echo android_power_print_locks,0xf > /sys/scu/24m/active
   
     cat /proc/wakelocks

#****************************************************************************#

==============================================================================
=== Version 2.35 @ 2010-12-31 ===
==============================================================================

1. жغĿǰΪRK28RK29Ϊ2ףԽΪһס
   =>RK29УҪboard-rk29sdk.cеһ
     rk29sdk_wifi_set_carddetect
     ΪstaticEXPORT_SYMBOL׳

2. wext.cȥ#if (ANDROID_POWER_SAVE == 1) صݡ

3. ȥwext.cе
     lbs_do_ioctl
     lbs_ioctl_setget_oneint
     lbs_auto_deep_sleep
     lbs_deepsleep_ioctl
     lbs_set_deepsleep
     lbs_is_command_allowed
   ӿں

4. 
==============================================================================
=== Version 2.34 @ 2010-12-23 ===
==============================================================================

1. WIFIģ鷽ʽغͱʱGPIOصĺΪû׳ò
   wifi_power_ops.cнGPIOز޸£
     gpio_direction_output(gpio->gpio_id, GPIO_OUT);
	 __gpio_set(gpio->gpio_id, sensitive);

2. ҪӶ2.6.32ں˵֧֣ΪRK29ʹõ2.6.32ں˵Linux

3. ڵԴУʱΪ10룬
   #define TIMER_INTERVAL	10000
   һǣIDLEʱȥҳʡ£൱
   IDLEΪBUSYҪнϿķӦٶȡ
   
   IDLEתΪBUSYҪһЩķӦʱ䡣
   
   ֽʱΪ3룬IDLEΪBUSYֻҪ3룬Ϊ15롣

4. һBUGAPʱᷢ״̬ȷ
   (1)power_save_suspend / resumeУûгɶԳ֡
   (2)Power save SUSPENDУȥĲ
   (3)ڽӿʼ״̬SYN_SENTҲҪΪ翪ʼæˣرʡģʽ
   (4)״̬ΪУʱ鵽UDPӣڴҳ£ΪDNS
      £ӦϽתΪæ״̬
   
==============================================================================
=== Version 2.33 @ 2010-12-23 ===
==============================================================================

1. ûҪMACַ趨ѵĶΣҪԻȡͻMACַ
   趨FWHOST DRIVERС
   (1)ҪʹضLoaderBootloader version: 2010-12-22#90.04
   (2)Ҫϲṩdrivers/scu/rk28_kld.cļӶMACַĹܣ
      MACӦMagicݽṹһMACĺ
   (3)޸wifi_config.cӴKLDжȡMACӿڵĺûԶMAC
      ַĽӿںһԶĽӿڡ
   (4)main.clbs_setup_firmwareĩβ趨µMACַ
   
   ͨPINGһʱǿʹµMACַ
   =>һŵlbs_setup_firmware֮ǰСҲУλ⡣
   =>lbs_set_mac_addressaddrǼ򵥵MACstruct sockaddr *
   =>set_macaddress2Ҳû⣺
     //memcpy(priv->current_addr, mac, ETH_ALEN);
     //memcpy(priv->dev->dev_addr, mac, ETH_ALEN);
   =>ȷ÷Ӧ£
	{
		struct sockaddr addr;
		u8 * mac = (u8 *)(addr.sa_data);
		
		if (wifi_customized_mac_addr(mac) == 1)
		{
			lbs_set_mac_address(priv->dev, &addr);
		}
	}

==============================================================================
=== Version 2.32 @ 2010-12-18 ===
==============================================================================

==============================================================================
=== Version 2.31 @ 2010-12-17 ===
==============================================================================

1. ӶಥMulticast֧֡
   2.6.31Ĵֱӿ
   (1)Ŀִmcast_client
      setsockopt:   IP_ADD_MEMBERSHIP : No such device
      
      =>ں[*]   IP: multicastingѡ
        ȻͬĴ(ѡ򿪣Ȼյಥ)
        
      =>route add default gw 192.168.1.1
        Ϳˡ
   
   (2)ֶಥмص㣺
      A. ׶ʡģʽ£ǳ׶
      B. ڶಥӦУûй̶ӣ޷ȷ紦æ״̬
   
2. ԶಥеʡƲԣ
   (1)жಥӣʱΪæġ
      =>ԭΪֻҪûΪ粻æģΪ֮ǰ
        ޷ߵʱյ㲥ARPȣӰǵжϡ
      =>ڶಥĿͻ˹ʱֻнգзͣ
        Ҫ޸жϻƣܼ򵥵кޣҲԵΪݡ
      =>ӶಥĲڷ1ӷһʣWIFIˣ
        PS-POLL򿪵£10յ2ĸʽϴյ3
        ʽСĿǰֵ趨Ϊ3ֵС㲥ARPһ
        
   (2)ಥͻ˿ʱӣ
      udp        0      0 0.0.0.0:9000           0.0.0.0:* 

==============================================================================
=== Version 2.30 @ 2010-12-14 ===
==============================================================================

1. Ӳ֤ADHOC֧֡
   (1)ͨiwlistǿɨ赽ADHOC͵APģǹϡ
   -EINVAL;
   (2)µ⣬û⡣
      iwlist wlan0 scanning
      iwconfig wlan0 mode ad-hoc
      iwconfig wlan0 essid adhoclai
      Ǵһȥһˡ
      
      iwconfig wlan0 mode ad-hoc
      iwconfig wlan0 essid lai
      ͿñһΪlaiADHOCˡ
      
   (3)֤ADHOCWEPܷʽµӦá
      A. adhoclaiΪWEP OPENķʽԿ12345û⣬PINGͨ
         =>мܷʽ£ᶪʲ
      B. adhoclaiΪWEP SHAREDķʽԿ12345û⡣
           iwconfig wlan0 key s:12345
           iwconfig wlan0 key restricted

   (4)֤֧ͨwpa_supplicantADHOC硣
      =>wpa_supplicantǻὫӿ͸ΪManagedad-hoc͡
      =>wpa_supplicantУڱAPбʱǽIBSS͵APԵ
        ޸events.cеwpa_supplicant_select_bss:
          IBSS͵APͬʱҪѡģʽIBSSʱŽAPԡ
        
        ɹ: ԹIBSSAPˡ
   
==============================================================================
=== Version 2.29 @ 2010-12-07 ===
==============================================================================

֪Ϊʲô¼ûб

==============================================================================
=== Version 2.28 @ 2010-12-03 ===
==============================================================================

1. ֻTCPЧʱǲȥͳUDPʱǾΪ紦
   æ״̬ȥͳ

2. scan.cнADHOCصźȥʱСĽ
     start = iwe_stream_add_event(start, stop, &iwe, IW_EV_QUAL_LEN);
   Ҳע͵ˣɨбʾźֵ׼ȷΪȫ0ֵ

==============================================================================
=== Version 2.27 @ 2010-11-25 ===
==============================================================================

1. Appleһ⣺
   WIFIߺ󣬽APرջߵWIFIûźŵĵطѺǻص
   WIFIźָʾûиı䣬ʾ״̬Ϊӣ޷硣
   =>Ϊ˯ʱὫϿѺһźʧ
   =>ǲڵġ

2. ˯߲˵
     74.125.153.188:5228    ESTABLISHED  Googleվ
   ͨifconfig鿴ÿӻݰɵûз͡
     tcp    0      1 192.168.0.245:56599    64.233.181.100:443     CLOSE_WAIT
     tcp    0      1 192.168.0.245:58436    64.233.181.100:80      CLOSE_WAIT
     tcp    0      1 192.168.0.245:60600    64.233.181.138:443     CLOSE_WAIT
     tcp    0      0 192.168.0.245:49446    74.125.153.188:5228    ESTABLISHED
   ǰ3Ҫھ3ҲŻϿӣһǲ϶Ͽӡ
   =>һ϶ûжϿӡݰշǺ١
   =>ҪշݰСһֵʱ
     Ϊ״̬ͷ˯
   =>IPַӣֺܳʱ䶼ֻнգûзͣǷһ
     ΣֻҪ˫ݣһʱǾͻὫΪIDLEӡ
   
   =>ڵĴʽ£30ûTXRXΪWIFIԱΪIDLE
     ˣͷ˯ϵͳԽ˯ߡ
   
==============================================================================
=== Version 2.26 @ 2010-11-19 ===
==============================================================================

SSIDкַʾ⡣

1. ̨ʾ·һ̨ҲӲϺ硣
   =>ͨiwlistɨ赽ĵAP
   =>WIFIýУAPеıʾ»ߡ
   =>WPA_SUPPебΪ
     d8:5d:4c:38:86:48      2437    232     [WEP]           tplink__
   =>˵вûжɨбеAPƣWPA_SUPPϡ
   =>޸WPA_SUPPcommon.cеwpa_ssid_txtַ͵ơ
     WPA_SUPPпʾˡ
   =>Androidнʾtplink5ˣӦǱػ⣬Androidпʹ
     UNICODEҪת
   =>нĵSSIDӡ
     tplink = SSID=74 70 6c 69 6e 6b c0 b5
     C0 B5GB2312룬ȻGBKҲ롣
   =>Уֱӽ"tplink"תΪUTF-8룬AndroidоͿʾˡ
     //UTF-8
     bss->ssid[6] = 0xE8;
     bss->ssid[7] = 0xB5;
     bss->ssid[8] = 0x96;
   =>ֱʹUnicode룺С
     //Unicode
     bss->ssid[6] = 0x8D;
     bss->ssid[7] = 0x56;
   =>ֻʹUTF-8ˡ

2. Ϊ˲ıAndroidʱGB2312ַ֧ŵMV8686ʵ֣ȹ֤
   ɺʻŵWPA_SUPPʵ֣ԱWIFIֹ̫ܱ࣬Ӧòʵ
   ΪʣΪҪкܿ졣
   (1)ɨ赽APҪSSIDת
      =>漰һȽ鷳ǣ80211ЭջSSIDĳΪ32ַ
        TPLINK WR941NУƵ32ַҲ32֣64ֽڡ
        IEEE80211_MAX_SSID_LENΪ32ֽڡһIW_ESSID_MAX_SIZE
        Ҫ֧
      =>һӦ6ֽڵUTF-8룬ԹҪ: 32 * 8 = 256 ֽڡ
   (2)set_ssidУҪUTF-8SSIDתΪGB2312SSID
      network={
        ssid=e4b880e4ba8ce4b889
        key_mgmt=NONE
        priority=168
      }
      =>wpa_supplicantὫSSIDUTF-8洢Ϊϵĸʽ
      =>set_ssidյȷʵΪe4 b8 80 e4 ba 8c e4 b8 89ȷġ
   (3)޸ͷļԱ֤֧SSIDػ
      =>޸include/linux/ieee80211.h: IEEE80211_MAX_SSID_LEN = 256
      =>޸include/linux/wireless.h: IW_ESSID_MAX_SIZE = 256
      =======
      漰ػʵûбҪô32ֵ
      ֻҪ64ֽڡ
      =>޸include/linux/ieee80211.h: IEEE80211_MAX_SSID_LEN = 64
      =>޸include/linux/wireless.h: IW_ESSID_MAX_SIZE = 64

3. ͨ2еʵ֤ʵֱػǲʵģܸӣΪʹ
   ȷתȻҪ޸wpa_supplicantΪ洢ʱʹBLOBķʽ
   ļûнתΪGB2312ǵɴAndroidʾ
   ǲȷģվػַ֧ŵWPA_SUPPʵ֡
   =>wpa_supplicant_ctrl_iface_scan_resultsнAPSSIDΪUTF8
     ʽԱ֤AndroidпԱȷʾ
   =>ڴļжȡУSSIDBLOBķʽתΪGB2312ķʽ
     ʵӦôAndroidõWPA_SUPPʱתΪGB2312

4. ͨwireless tools޷ȷַSSIDAP
   (1)iwlistȷʾĵSSIDAP
   (2)ͨiwconfig wlan0 essid޷ɹAP
      =>assoc_req->mode == IW_MODE_INFRA
        ǽMODE÷ʽĵˣESSIDʱҪMODE
        iwconfig wlan0 mode managed
   (3)iwconfigȷʾѾϵַAP֡
   (4)PING޷ɹ--ΪETH0ĴڣһΪͬεIPַ
   =>wireless toolsȷַAP

5. wpa_supplicantĵ֧֡
   (1)ֶһ硣
      add_network
      set_network 0 ssid "tplink"
      save_config
      =>ᱻBLOBķʽб档
        ssid=74706c696e6bc0b5
        Ҫ䱣ΪGB2312ķʽBLOBķʽ
      =>SSIDparserwriterSSIDֶΡ
   (2)ֶҪkey_mgmt=NONEֶΡ

==============================================================================
=== Version 2.25 @ 2010-11-16 ===
==============================================================================

1. WIFIɨбý

2. WPAAPĻ䷵ص¼Ϊ
     [13586] EVENT: disassociated
   ǰĴжһ¼ͻȥʵûбҪ

     [58] lbs_ret_80211_associate: association successfully.
     [59] EVENT: disassociated: connected=0
     [59] Trying to re-associate to previous AP.
     [59] lbs_cmd_80211_deauthenticate: enter...
     [59] lbs_mac_event_disconnected: enter........connect=0
   =>ΪǰʱĴ̡
     (1)ʹ͵Ĺ벻ȷȻ᷵سɹ
     (2)һDISASSOCIATED¼FW
     (3)ڵһΪѾɹʱӡ
     (4)ʱdeauthenticatedӶϿӲ
        лdisconnectedеá
        
   =>ϵķУǿԿڣ
     (1)ʵʵĹķֵδһ¡Ӧ27ԭ
     
     [196] lbs_ret_80211_associate: association successfully.
     [197] EVENT: disassociated: connected=0
     [197] lbs_mac_event_disconnected: enter........connect=0
     [202] lbs_ret_80211_associate: association successfully.
     [203] EVENT: disassociated: connected=0
     [203] lbs_mac_event_disconnected: enter........connect=0
   =>һӣᷢ2ιõٶȱ١
   
   =>յdisassociation¼ʱǲؽΪڳʱϿ
     ʱյdisconnected¼ǵǰ˯ߴʽУӦò
     ¼쳣
   
3. WEXTУܶ趨ӿڶᴥûҪģ
     [557] lbs_set_mode: call lbs_postpone_association_work
     [558] lbs_set_auth: call lbs_postpone_association_work
     [558] lbs_set_encodeext: call lbs_postpone_association_work
           ......
     [558] lbs_set_encodeext: call lbs_postpone_association_work
     [558] lbs_set_auth: call lbs_postpone_association_work
           ......
     [559] lbs_set_auth: call lbs_postpone_association_work
     [559] lbs_set_mode: call lbs_postpone_association_work
     [559] lbs_set_genie: call lbs_postpone_association_work
     [559] lbs_set_auth: call lbs_postpone_association_work
           ......
     [559] lbs_set_auth: call lbs_postpone_association_work
     [559] lbs_set_freq: call lbs_postpone_association_work
     [559] lbs_set_essid: call lbs_postpone_association_work
     [559] lbs_set_wap: call lbs_postpone_association_work
     [560] lbs_ret_80211_associate: association successfully.

   =>ֻESSIDWAPߡ
     (1)ûмܵAPû⡣
     (2)OPEN WEPܵAPȷû⣬£ɹһ
        ֱͣڻȡIPʾAndroidʱ¶Ͽ
     (3)SHARED WEPܵAPȷû⣬£͵Ĺ
        ʧܣǻлģʽȻ¹ȡIPնϿ
     (4)WPAܵAPȷ⣬
        lbs_set_encodeextеlbs_do_association_workĵط١
        £ΪһֱӣֻеȴAndroidʱ
        ʾ򲻻ܷdisassociationdisauthenciated

4. APɨ⣺
   (1)WIFIҳУWIFIʱAPбʾ
      =>ִWIFIѾɣҪ3ʱŻյɨ
        WIFI򿪺APбҪ7Ӳ֣̫ܳˡ
          E/WifiHW  (  713): Unable to open connection to supplicant on 
                 "wlan0": No such file or directory
          D/        ( 1119): @@@WPA_SUPPLICANT@@@: main
          D/WPA_SUPP( 1119): Setting scan request: 0 sec 100000 usec
          D/WPA_SUPP( 1119): wpa_supplicant_scan: ap_scan=1
          D/WPA_SUPP( 1119): Starting AP scan (broadcast SSID)
          D/WPA_SUPP( 1119): Trying to get current scan results first without 
                             requesting a new scan to speed up initial association
          D/WPA_SUPP( 1119): Setting scan request: 0 sec 0 usec
          D/WPA_SUPP( 1119): wpa_supplicant_scan: ap_scan=1
          D/WPA_SUPP( 1119): No enabled networks - do not scan
      =>LOGʾWPA_SUPPûǰWIFIHWȥӣʧ
        ⽫ϵʧܣӶʹ
      =>֮ǰѾнµķ֧ûи¡
      =>WIFIý£WIFIɹ򿪺APб֣Ҫ2-3롣
      
      A. APбЧʱDEFAULT_MAX_SCAN_AGEΪ15롣
      B. ʱһɨܻʹù
      C. һյɨʱأԱAPбܿٲ
      D. ϳʱ󣬴ýWIFIý棬ֱͽ
      
      =>3ֶAPWIFI򿪺ҪϳʱܳAPб
        Ϊˣʱһɨ
      =>һʱɨбȻʧ
      
   (2)ҳУWIFI󣬽WIFIҳʱAPбʾ
   (3)WIFIҳ˳ҳ棬ٽWIFIҳʱAPбʾ
   (4)ҳб˶ѾģֶӵAPʱAPбʾ
   (5)ҳб˶ѾģֶӵAPʱAPбʾ
   
   =>˸WIFIHW⣬ûиı䣬Ϊ޷ı䡣

5. ԣ
   (1)WPAܲԣ
      A. ȷ£Գɹӡ
      B. £յdisauthenticated¼ʱܹ
         4ΣΪ3⽫ʹʾʾ

6. һؽǣȷȷʵǳɹģӦòǶ˵DHCPѾ
   أ
   =>WPA_SUPP˵WPAЭ漰4֣ܳɹ4־
     δܹɹˡԲܵASSOCIATIONĽȷǷɹ
   =>һ8ĶʱʱʱʱȻΪCONNECTED״̬ʾɹ
     ʾʧܣɹǻ
   =>HHYʱ  lbs_ret_80211_associate: association fail.
     HHYAPˡ

7. һʱAPܻʧܡ
     [38] lbs_ret_80211_associate: association successfully.
     [41] EVENT: deauthenticated: reassoc_count=0
     [41] disconnected status.
     [41] lbs_mac_event_disconnected: enter........connect=0
     [44] lbs_ret_80211_associate: association successfully.
   =>WEXTУÿʱᴥȻһᴥʵʵĹ
     ųνʵʴĿܡ

8. ޸lbs_get_senseֻRSSISignalֵ
   =>ͬʱ޸wpa_supplicantؽlevelֵNoiseֵSNR㡣
   =>lbs_get_senseУ
       signal level 223  noise 162  rssi 223
     ʹźʾֵȷʱIWCONFIG鿴ĽΪ
       Link Quality=100/100  Signal level=-32 dBm  Noise level=-94 dBm
     Ӧʹlbs_get_wireless_statsеļ㷽
   =>ʵǿLEVELֵǸֵʽˣLEVELֵһ
     ΧMV8686256ʵźֵΪ-(256 - level)
     ֵLEVELΪ223źֵΪ: -(256 - 223) = -33dBm

9. HHY APڳ³Զ25״ʱд
     lbs_ret_80211_associate: association fail.status_code=2
     ASSOC_RESP: internal timer expired while waiting for the AP.
   =>źŲAPʱ׳⡣
       Quality=77/100  Signal level=-71 dBm  Noise level=-91 dBm
   =>MRVDRV_DEFAULT_LISTEN_INTERVALֵԭ10Ϊ50һ¡У
     Ϊ500һ¡ûã޹ء
   =>beacon_periodΪ900HHYʱᱨinvalid parameters
     Ϊ100ȻͬĴ
     ӦADHOCʱűʹáINFRAֵAP
   =>

10.ʱڹWPAAPʱⵯ򣬼ʹ϶֮ǰȷġ

ǴʢõĲԱ棺

11.̨ʾ·һ̨ҲӲϺ硣
12.·Ϊͬ,ֻ̨ܽһWI-FI,һʧ.
13.ڹϣʼвĵط
     [65] lbs_cmd_80211_deauthenticate: enter...
     [66] lbs_ret_80211_associate: association fail.status_code=1
     [66] lbs_mac_event_disconnected: enter........connect=0
     [73] lbs_ret_80211_associate: association successfully.
   =>ʵϻᴥι
     (1)ȥlbs_set_freqдĲû⡣
     (2)ȥlbs_set_modeдĲû⡣
     ʵϲǴΪֻBSSIDESSIDòŻʵʵĹ
     ֻصĲ
     [239] lbs_set_essid: call lbs_postpone_association_work
     [239] lbs_set_wap: call lbs_postpone_association_work
   (1)ȥASSOC_FLAG_MODE־ΪDeauthenticated

14.ֲȥȡIP
   inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
   ʵAndroidʾIPȴ192.168.0.105
   =>ԭӦlbs_cmd_80211_deauthenticateûlbs_mac_event_disconnected

15.tplinklai (WEP & SHARED)ʱȡIPܳʱ䣬ʧܡ

==============================================================================
=== Version 2.24 @ 2010-11-16 ===
==============================================================================

1. ׷˵ɨAP
   =>PSģʽлرգ֤һ¡ɣڳ׷ľ
     ûз⡣

2. ѾһAPлһAPʱᵯʾ

3. ˵ѺWIFIźʾˢҳʧܡ
   (1)AR6002Ƶϵͳ˯ʱWIFIϿʱAndroid
   
==============================================================================
=== Version 2.23 @ 2010-11-15 ===
==============================================================================

1. ˵ѺWIFIźʾˢҳʧܡ
   (1)AR6002Ƶϵͳ˯ʱWIFIϿʱAndroid

2. һڳLOG
     EVENT: deauthenticated
   ûȥӡ֮һΣ
     [2402] mv8686: command 0x0021 timed out
     [2402] mv8686: requeueing command 0x0021 due to timeout (#1)
     [2402] mv8686: Received result 0 to command 21 after 1 retries
   ָ0x0021CMD_802_11_PS_MODE
     [1390] mv8686: command 0x001f timed out
     [1390] mv8686: requeueing command 0x001f due to timeout (#1)
     [1390] CMD: 52 <arg=10004000> FAIL raw_ints: 134 masked ints: 4
   0x001FCMD_802_11_RSSI
   
   =>ĳ֣ΪWIFI˯ʱ䷢
   =>lbs_threadУԭ䣬priv->deepsleep == true
     ߳Ȼ˯ߣκݡ

3. ͨ鿴ǰ˯
     echo android_power_print_locks,0xf > /sys/scu/24m/active
   
4. ںlbs_process_eventзһBUGڱreassoc_countĴе⣺
   (1)static int reassoc_count = 0; Ծ̬ʽ塣
   (2)if ((priv->connect_status == LBS_CONNECTED) &&
			(reassoc_count < 3))
	  ʱͬʱreassoc_countᱻ1
   (3)ǵһܳǣ¼Ȼҳɹˣ
      ֵȻᱻ1ɣյ¼ʱͲˡ
   
   =>ŵlbs_privateݽṹУڹɹὫ0
   
   =>⡣AP˳£ٶȺܿ졣ֵӦ
     APٶȽAndroidҪϳʱ䣬ǱҪ
     ӵʱ䣬⡣
     
   =>Խ

5.  - AppleChen  15:57:16
     1.ѡд򿪷ܣӦ
     2.WIFIĳAP
     3.ѡAPִǲ
     4.WIFI״̬ʾΪѶϿ
     5.ת豸Ӧ
     6.WIFI״̬Ϊɨ
     7.ִ
   =>ȷAPб֣Ӱʹá
   
==============================================================================
=== Version 2.22 @ 2010-11-11 ===
==============================================================================

1. WPAʽAPʱҪܹʾ
   A. ֮ǰûκӵ£룬ᵯʾ
   B. ȹһAPȻAPҲᵯʾ

2. δAP¹رWIFIĲӦУAP󣬽APϵ磬
   뿪APźŸǷΧ
   =>APҲ᳢һѾAPһAPҵ
     ȻرWIFIӦûرWIFI
   =>Ƕϵͳ˯ߣֻҪûбʹõ

3. ϵͳ˯ʱҲWIFI˯ߡ
   =>wifi_suspendWIFI˯ߣwifi_resumeWIFI˳˯ߡ
   
4. һ뿼ǵʡǣWIFIˣǿPSƣæˣرʡ
   ơʹDEEP SLEEPƣΪֻ״̬Ӧò״̬᲻һ
   £⽫¿ͻһ⡣
   (1)ǵһַʽTX/RXм״̬СһֵPSʽ
      һֵرPSʽͳƻ漰˳㣬·
      ϺԴַܱʽ
   (2)һ10ӵĶʱڼǷҪرWIFIʱ
      =>RX/TXͨ·ͳRX/TXݰڶʱ10ڼûݴ䣬
        PSʽ֮رPSʽ
   (3)ԸAndroid˯һ𣬼AndroidʱǹرPSʽ֮
      PSʽPOWER SAVEģصʵ֡

5. POWER SAVEĻصеPS:
     BUG: scheduling while atomic
   ΪPOWER SAVEڶʱصУжģ˯ߡ
   =>ڻصͨWORK QUEUEPSʽл

==============================================================================
=== Version 2.21 ===
==============================================================================

1. wifi_power_save_initwifi_power_save_exitĹӣµʡơ

2. PSģʽʱĬϵDTIMֵΪ1defs.hУ
     #define MRVDRV_DEFAULT_MULTIPLE_DTIM		3
   ֽΪ3вԣĿǲᶪPINGӳٲ̫
   =>DTIMΪ1ʱPINGأ10ᶪ3ҡ
   =>DTIMΪ3ʱͲڶˣ100PINGԡӳ൱
     min/avg/max = 1.976/147.693/300.576 ms
     ǰDTIMֵֵֵ֧Ϊ5ָ˯ʱĳ̡
     min/avg/max = 3.748/253.482/500.708 ms
     ֵԽPINGӳپԽ
     DTIMΪ5£TCP TXΪ11.45MbpsRXΪ13.28Mbps
   =>DTIMΪ3£TCP TXΪ11.82MbpsRXΪ13.22Mbps

3. ¹ϺԭPS״̬ᶪʧûPSˡûPINGӳС
   =>֮iwconfig wlan0 power offPINGӳҲˡ
   =>FWڴPSȻȱݡ

4. WiFi򿪣ûAPǣ
   (1)ûѡAP
   (2)ҲҪӵAPڣ
   (3)ʧܡ
   (4)뿪APźŸǷΧAPµˡ
   £Ӧ֪ͨAndroidWiFiرա
   =>ʹpriv->connect_status״̬
     A. lbs_ret_80211_associate: ݹ±ֵ
     B. lbs_mac_event_disconnectedὫΪϿֵ
     C. lbs_init_adapterʼΪϿֵ
   =>һʱӵ:
     A. init_adapterʱʼʱturnoff_timer
     B. connect_statusΪCONNECTEDʱɾʱ
     C. connect_statusΪDISCONNECTEDʱʱ
     D. ڶʱ﷢¼WPA_SUPPҪرWIFI
     E. WPA_SUPP¼AndroidҪرWIFI
     F. Androidյر·رWIFI
   =>ʱʽ޸ģ
     A. ϵͳʱʼʱlbs_thread̹߳ʱʱ
     B. ʱʱΪ10룬ÿμһʱڶΪϿ״̬
        Ӧòϱ¼
        memset(wrqu.ap_addr.sa_data, 0xAB, ETH_ALEN);
		wrqu.ap_addr.sa_family = ARPHRD_ETHER;
		wireless_send_event(priv->dev, SIOCGIWAP, &wrqu, NULL);
     C. κ¶ʱڹֻ˳ʱŻᱻɾ
   =>޸wpa_supplicantdriver_wext.cӶȫΪ0xABAPַжϣ
     else if (os_memcmp(iwe->u.ap_addr.sa_data,
              "\xAB\xAB\xAB\xAB\xAB\xAB", ETH_ALEN) == 0)
     {
         wpa_msg(ctx, MSG_INFO, WPA_EVENT_DRIVER_STATE "TURNOFF");
     }
   =>AndroidӶTURNOFF¼Ĵ
     frameworks/base/wifi/java/android/net/wifi:
     (1)WifiMonitor.javahandleDriverEvent´
        } else if (state.equals("TURNOFF")) {
            mWifiStateTracker.notifyDriverTurnoff();
     (2)WifiStateTracker.java
        A. DRIVER_HUNGӣ
           private static final int DRIVER_TURNOFF = 3;
        B. notifyDriverTurnoffDRIVER_TURNOFF¼
        C. handleMessageӶDRIVER_TURNOFF¼Ĵ
           case DRIVER_TURNOFF:
               Log.e(TAG, "Wifi Driver reports turn off.");
               mWM.setWifiEnabled(false);
               break;

5. MV8686_SUPPORT_ADHOCADHOCĴ룬ʱûãԲҪ

6. һAPϣȻϿWIFI:
   priv->connect_statusֵʼLBS_CONNECTEDı䡣
   =>ҪӶSIOCSIWMLME֧֣ԭеġ
   =>Ϊ˶ϿӣWPA_SUPPIW_MLME_DEAUTH
   =>lbs_cmd_80211_deauthenticateϿӡ

==============================================================
Version 2.20
=============

1. wifi_power_saveģ飬׼MV8686µ߻ơ

2. нϴĶ汾ŸΪ2.20ʾ

3. رԭ˯߻ƣ
     #define ANDROID_POWER_SAVE      0
   =>SDKϲԣWIFIʱûҵSDIO豸

4. WIFIûйʱPSģʽᱻ򿪣ʱӦSLEEP
   ģʽͨIWCONFIG鿴ڷǹΪOFFʹѾͨ
     iwconfig wlan0 power on
   ʡģʽ
   =>޸lbs_get_powerڲ鿴PS״̬ʱҪ󶨡
   =>ӡϢEVENT: ps awake: Media is LBS_CONNECTED.ȥ

==============================================================
Version 2.13
=============
1. °汾SDKУûнAndroidȥֺAR6002
   һϵͳ
   =>鿴ûжʱAndroidĲ
     Ӧò⡣

2. 汾ʹwifi_version.hеĶ塣
   
==============================================================
Version 2.12
=============
1. ޸wifi_power_ops.cAR6002ϵʱMV8686ϵʱ
   ֿƣҪڵturn_onӿʱָоƬ͡
   
==============================================================
Version 2.11
=============
1. ޸ģϵ缰µ
   A. ԭϵ:
      PWN DOWN -> POWER DOWN
      PWN UP   -> POWER UP
      RESET
      =>ڵϵ
      PWN UP   -> POWER UP
      RESET

   B. ԭµ
      PWN UP
      POWER DOWN
      PWN DOWN
      RESET DOWN
      =>µµ
      RESET DOWN
      PWN DOWN
      POWER DOWN 
  
  ޸ĵ¼MV8686DSAR6002DSϵ
  µʱҪǲһġ
  
  NX7007ͨû⡣
      
==============================================================
Version 2.10
=============
1. ˵ANDROID_POWER_SAVEΪ0ʱ벻Щط
   ûмȷĺ걣Ĵ
2. 

==============================================================
Version 2.08

==============================================================
Version 2.07

