]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - glsdk/meta-ti-glsdk.git/blob - recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0126-iwlegacy-3945-fix-hw-passive-scan-on-radar-channels.patch
linux-ti33x-psp 3.2: rebase onto latest PSP
[glsdk/meta-ti-glsdk.git] / recipes-kernel / linux / linux-ti33x-psp-3.2 / 3.2.2 / 0126-iwlegacy-3945-fix-hw-passive-scan-on-radar-channels.patch
1 From 98214e3fab80dbfdf54c908de2ae0c9730d6430d Mon Sep 17 00:00:00 2001
2 From: Stanislaw Gruszka <sgruszka@redhat.com>
3 Date: Fri, 23 Dec 2011 08:13:50 +0100
4 Subject: [PATCH 126/129] iwlegacy: 3945: fix hw passive scan on radar
5  channels
7 commit 68acc4afb040d98ddfd2cae0de09e2f4e1ee127f upstream.
9 Patch fix firmware error on "iw dev wlan0 scan passive" for
10 hardware scanning (with disable_hw_scan=0 module parameter).
12  iwl3945 0000:03:00.0: Microcode SW error detected. Restarting 0x82000008.
13  iwl3945 0000:03:00.0: Loaded firmware version: 15.32.2.9
14  iwl3945 0000:03:00.0: Start IWL Error Log Dump:
15  iwl3945 0000:03:00.0: Status: 0x0002A2E4, count: 1
16  iwl3945 0000:03:00.0: Desc       Time       asrtPC blink2 ilink1  nmiPC   Line
17  iwl3945 0000:03:00.0: SYSASSERT     (0x5) 0041263900 0x13756 0x0031C 0x00000 764
18  iwl3945 0000:03:00.0: Error Reply type 0x000002FC cmd C_SCAN (0x80) seq 0x443E ser 0x00340000
19  iwl3945 0000:03:00.0: Command C_SCAN failed: FW Error
20  iwl3945 0000:03:00.0: Can't stop Rx DMA.
22 We have disable ability to change passive scanning to active on
23 particular channel when traffic is detected on that channel. Otherwise
24 firmware will report error, when we try to do passive scan on radar
25 channels.
27 Reported-and-debugged-by: Pedro Francisco <pedrogfrancisco@gmail.com>
28 Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
29 Signed-off-by: John W. Linville <linville@tuxdriver.com>
30 Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
31 ---
32  drivers/net/wireless/iwlegacy/iwl3945-base.c |    9 ++++-----
33  1 file changed, 4 insertions(+), 5 deletions(-)
35 diff --git a/drivers/net/wireless/iwlegacy/iwl3945-base.c b/drivers/net/wireless/iwlegacy/iwl3945-base.c
36 index b282d86..05f2ad1 100644
37 --- a/drivers/net/wireless/iwlegacy/iwl3945-base.c
38 +++ b/drivers/net/wireless/iwlegacy/iwl3945-base.c
39 @@ -2656,14 +2656,13 @@ int iwl3945_request_scan(struct iwl_priv *priv, struct ieee80211_vif *vif)
40                 IWL_WARN(priv, "Invalid scan band\n");
41                 return -EIO;
42         }
43 -
44         /*
45 -        * If active scaning is requested but a certain channel
46 -        * is marked passive, we can do active scanning if we
47 -        * detect transmissions.
48 +        * If active scaning is requested but a certain channel is marked
49 +        * passive, we can do active scanning if we detect transmissions. For
50 +        * passive only scanning disable switching to active on any channel.
51          */
52         scan->good_CRC_th = is_active ? IWL_GOOD_CRC_TH_DEFAULT :
53 -                                       IWL_GOOD_CRC_TH_DISABLED;
54 +                                       IWL_GOOD_CRC_TH_NEVER;
55  
56         len = iwl_legacy_fill_probe_req(priv, (struct ieee80211_mgmt *)scan->data,
57                                         vif->addr, priv->scan_request->ie,
58 -- 
59 1.7.9.5