android_kernel_xiaomi_sm8350/drivers/net/wireless
Bill Moss 15dbf1b7b7 iwl3945: do not delay hardware scan if it is a direct scan
iwl3945 <---> mac80211 <----> wpa_supplicant <---> NetworkManager

When a hardware scan is completed and another scan is requested in less
than two seconds, iwlwifi will not do the second scan and will pass the
error code -EAGAIN back to mac80211 where it quickly dies. The error
code is not passed along to the calling program wpa_supplicant. After a
timeout, wpa_supplicant will just give up but it will not know why the
scan failed. This is a weakness in the design.

I ran into this issue when I was trying to figure out why it takes more
an a minute for NetworkManager to connect after Networking has been
disabled and then re-enabled. I found a good deal of unnecessary work
being done because mac80211 requests authentication when the interface
is not configured, the ANY mode. I created an experimental passive
(NOTANY) mode for mac80211 to eliminate this case. Then NetworkManager
became so fast that I ran into the iwlwifi 2 second delay next scan
issue which we are discussing.

The patch resolves the problem by bypassing the delay if the scan request
is a direct scan. It should do less harm to the hardware.

Signed-off-by: Bill Moss <bmoss@CLEMSON.EDU>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-05-14 16:29:48 -04:00
..
ath5k mac80211: clean up get_tx_stats callback 2008-05-07 15:02:26 -04:00
b43 b43: replace limit_value macro with clamp_val 2008-05-14 16:29:32 -04:00
b43legacy b43legacy: replace limit_value macro with clamp_val 2008-05-14 16:29:33 -04:00
hostap [NET]: Undo code bloat in hot paths due to print_mac(). 2008-04-08 16:50:44 -07:00
iwlwifi iwl3945: do not delay hardware scan if it is a direct scan 2008-05-14 16:29:48 -04:00
libertas libertas: allow removal of card at any time 2008-05-07 15:02:27 -04:00
p54 wireless: fix warning introduced by "mac80211: QoS related cleanups" 2008-05-07 15:02:27 -04:00
prism54 prism54: prism54_get_encode() test below 0 on unsigned index 2008-04-23 21:25:36 -04:00
rt2x00 rt2x00: Clarify supported chipsets in Kconfig 2008-05-07 15:02:27 -04:00
zd1211rw wireless: use get/put_unaligned_* helpers 2008-04-29 08:06:27 -07:00
adm8211.c mac80211: clean up get_tx_stats callback 2008-05-07 15:02:26 -04:00
adm8211.h
airo_cs.c
airo.c airo: use netstats in net_device structure 2008-05-14 16:29:47 -04:00
airo.h
airport.c
arlan-main.c
arlan-proc.c arlan: fix warning when PROC_FS=n 2008-03-24 19:25:08 -04:00
arlan.h
atmel_cs.c
atmel_pci.c
atmel.c
atmel.h
hermes_rid.h
hermes.c
hermes.h
i82586.h
i82593.h
ipw2100.c
ipw2100.h
ipw2200.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-14 02:30:23 -07:00
ipw2200.h ipw2200 annotations and fixes 2008-03-25 16:41:58 -04:00
Kconfig p54: move to separate directory 2008-04-08 16:44:45 -04:00
Makefile iwlwifi: Allow building iwl3945 without iwl4965. 2008-04-27 15:38:30 -07:00
netwave_cs.c
orinoco_cs.c
orinoco_nortel.c
orinoco_pci.c
orinoco_pci.h
orinoco_plx.c
orinoco_tmd.c
orinoco.c
orinoco.h
ray_cs.c proc: switch /proc/driver/ray_cs/ray_cs to seq_file interface 2008-04-16 15:59:56 -04:00
ray_cs.h
rayctl.h
rndis_wlan.c wireless: rndis_wlan: modparam_workaround_interval is never below 0. 2008-04-23 21:25:36 -04:00
rtl818x.h
rtl8180_dev.c endianness annotations: drivers/net/wireless/rtl8180_dev.c 2008-04-01 17:13:16 -04:00
rtl8180_grf5101.c
rtl8180_grf5101.h
rtl8180_max2820.c
rtl8180_max2820.h
rtl8180_rtl8225.c
rtl8180_rtl8225.h
rtl8180_sa2400.c
rtl8180_sa2400.h
rtl8180.h
rtl8187_dev.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-04-17 23:56:30 -07:00
rtl8187_rtl8225.c
rtl8187_rtl8225.h
rtl8187.h
spectrum_cs.c
strip.c strip: Fix up strip for the new order 2008-04-30 08:29:47 -07:00
wavelan_cs.c wavelan_cs: stop inlining largish static functions 2008-04-08 15:05:57 -04:00
wavelan_cs.h wavelan_cs arm fix 2008-03-24 19:25:07 -04:00
wavelan_cs.p.h wavelan_cs: stop inlining largish static functions 2008-04-08 15:05:57 -04:00
wavelan.c
wavelan.h
wavelan.p.h
wl3501_cs.c
wl3501.h
zd1201.c
zd1201.h