Search Linux Wireless

Re: iwl3945 firmware errors: tentative debugging

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi!
Sorry for the delay!

On Wed, Dec 21, 2011 at 11:33 AM, Stanislaw Gruszka <sgruszka@xxxxxxxxxx> wrote:
> Hi Pedro,
>
> On Tue, Nov 29, 2011 at 05:07:55PM +0000, Pedro Francisco wrote:
>> My country has the following regulatory.bin lines:
>>
>> country PT:
>> (2402.000 - 2482.000 @ 40.000), (N/A, 20.00)
>> (5170.000 - >> 5250.000 @ 40.000), (N/A, 20.00)
>> (5250.000 - 5330.000 @ 40.000), (N/A, 20.00), DFS <------ removed whole line
>> (5490.000 - 5710.000 @ 40.000), (N/A, 27.00), DFS <------ removed whole line
>>
>> If I remove the last two lines, everything works as expected, i.e., NO
>> "Microsode SW error". If I include any of the last two, the Microcode
>> will issue an error.
>>
>> I've tried every combination of those lines except just one of
>> "(5250.000 - 5330.000 @ 40.000), (N/A, 20.00), DFS" OR "(5490.000 -
>> 5710.000 @ 40.000), (N/A, 27.00), DFS".
>
> Attached patch stop to trigger error on my setup with "iw dev wlan0 scan
> passive". Can you check if it also fix problem on your normal wireless
> workload?

It does seem fixed! However: I had to tweak a little the patch
(attached, for convenience of anyone else following the thread: "IL_"
-> "IWL_", file to patch is different and paragraphs are different).

Also, probably unrelated, I got _just once_ another firmware error
("iwl3945 Command REPLY_RATE_SCALE failed: FW Error
iwl3945 Error setting HW rate table: FFFFFFFB") but since the kernels
have changed and I've also changed to the PAE kernel, it's probably
unrelated to the patch (also I'm using swcrypto=0 which may help).
I'll continue testing but unless there is some other issue I won't
report back.

Thank you for the fix!
-- 
Pedro
diff --git a/drivers/net/wireless/iwlegacy/iwl3945-base.c b/drivers/net/wireless/iwlegacy/iwl3945-base.c
index 66ee156..96f5d31 100644
--- a/drivers/net/wireless/iwlegacy/iwl3945-base.c
+++ b/drivers/net/wireless/iwlegacy/iwl3945-base.c
@@ -2659,12 +2659,12 @@ int iwl3945_request_scan(struct iwl_priv *priv, struct ieee80211_vif *vif)
 	}
 
 	/*
-	 * If active scaning is requested but a certain channel
-	 * is marked passive, we can do active scanning if we
-	 * detect transmissions.
+	 * If active scaning is requested but a certain channel is marked
+	 * passive, we can do active scanning if we detect transmissions. For
+	 * passive only scanning disable switching to active on any channel.
 	 */
 	scan->good_CRC_th = is_active ? IWL_GOOD_CRC_TH_DEFAULT :
-					IWL_GOOD_CRC_TH_DISABLED;
+					IWL_GOOD_CRC_TH_NEVER;
 
 	len = iwl_legacy_fill_probe_req(priv, (struct ieee80211_mgmt *)scan->data,
 					vif->addr, priv->scan_request->ie,

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux