summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/iwlwifi
Commit message (Collapse)AuthorAgeFilesLines
* iwl3945: remove plcp checkStanislaw Gruszka2011-02-091-1/+0
| | | | | | | | | | | | | | | | | | | | | Patch fixes: https://bugzilla.redhat.com/show_bug.cgi?id=654599 Many users report very low speed problem on 3945 devices, this patch fixes problem, but only for some of them. For unknown reason, sometimes after hw scanning, device is not able to receive frames at high rate. Since plcp health check may request hw scan to "reset radio", performance problem start to be observable after update kernel to .35, where plcp check was introduced. Bug reporter confirmed that removing plcp check fixed problem for him. Reported-and-tested-by: SilvioTO <silviotoya@yahoo.it> Cc: stable@kernel.org # 2.6.35+ Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Acked-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* iwlagn: Re-enable RF_KILL interrupt when downDon Fry2011-02-071-0/+6
| | | | | | | | | | | | With commit 554d1d027b19265c4aa3f718b3126d2b86e09a08 only one RF_KILL interrupt will be seen by the driver when the interface is down. Re-enable the interrupt when it occurs to see all transitions. Signed-off-by: Don Fry <donald.h.fry@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Cc: stable@kernel.org Signed-off-by: John W. Linville <linville@tuxdriver.com>
* iwlagn: overwrite EEPROM chain setting for 6250 devicesWey-Yi Guy2011-02-021-0/+2
| | | | | | | | | | 6250 2x2 devices have 2 tx chain and 2 rx chain. For some reason, the EEPROM contain incorrect information and indicate it only has single tx chain. overwrite it with .cfg parameter to make sure both chain 'A' and chain 'B' can be used for transmit and receive Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* iwlwifi: don't read sku information from EEPROM for 4965Wey-Yi Guy2011-01-212-4/+8
| | | | | | | | | | | | For all the new devices, the sku information should read from EEPROM but for legacy devices such as 4965, appearly the EEPROM does not contain the necessary information. so skip the read from EEPROM and go back to use software configuration. Reported-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Tested-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* iwlwifi: fix valid chain reading from EEPROMWey-Yi Guy2011-01-181-1/+1
| | | | | | | | | | When read valid tx/rx chains from EEPROM, there is a bug to use the tx chain value for both tx and rx, the result of this cause low receive throughput on 1x2 devices becuase rx will only utilize single chain instead of two chains Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* Merge branch 'master' of ↵John W. Linville2011-01-052-4/+11
|\ | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
| * iwlagn: enable only rfkill interrupt when device is downStanislaw Gruszka2011-01-042-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 6cd0b1cb872b3bf9fc5de4536404206ab74bafdd "iwlagn: fix hw-rfkill while the interface is down", we enable interrupts when device is not ready to receive them. However hardware, when it is in some inconsistent state, can generate other than rfkill interrupts and crash the system. I can reproduce crash with "kernel BUG at drivers/net/wireless/iwlwifi/iwl-agn.c:1010!" message, when forcing firmware restarts. To fix only enable rfkill interrupt when down device and after probe. I checked patch on laptop with 5100 device, rfkill change is still passed to user space when device is down. Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Cc: stable@kernel.org Acked-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * iwlagn: implement layout-agnostic EEPROM readingWey-Yi Guy2010-12-096-1/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From: Johannes Berg <johannes.berg@intel.com> The current EEPROM reading code has some layout assumptions that now turned out to be false with some newer versions of the EEPROM. Luckily, we can avoid all such assumptions by using data in the EEPROM itself, so implement using that. However, for risk mitigation purposes, keep the old reading code for current hardware for now. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| * iwlagn: rename enhanced txpower fieldsJohannes Berg2010-12-092-5/+8
| | | | | | | | | | | | | | | | | | | | | | Some fields we didn't previously use from the enhanced TX power structure will be needed in the next patch, so rename them to their correct names to be able to use them and change code reading them accordingly. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlagn: fix scan tx antenna setting on 5Ghz bandStanislaw Gruszka2011-01-043-16/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Looks that we do not set correctly antennas when scanning on 5Ghz band and when bluetooth is enabled, because priv->cfg->scan_tx_antennas[band] is only defined for IEEE80211_BAND_2GHZ. To fix we check band before limiting antennas to first one. This allow to remove hard coded cfg->scan_tx_antennas[band]. Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Acked-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | iwlwifi: remove reference to Gen2Wey-Yi Guy2010-12-261-3/+3
| | | | | | | | | | | | | | The correct name should be used for the newer devices, remove reference to Gen2 Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlagn: fix FH errorJohannes Berg2010-12-261-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | # iw wlan0 interface add moni0 type monitor flags control # ip link set moni0 up causes a continuous spew of FH_ERROR from the device. Fix this by not setting the CTL2HOST filter by itself -- CTL + promisc works fine. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlwifi: remove extra stringWey-Yi Guy2010-12-261-1/+1
| | | | | | | | | | | | | | For "led_mode" module parameters, string "led_mode" is duplicated twice, remove one. Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlwifi: Fix error: struct iwl_lq_sta has no member named dbg_fixed_rateSedat Dilek2010-12-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While compiling linux-next (next-20101216) I fell over this breakage: ... drivers/net/wireless/iwlwifi/iwl-agn-rs.c: In function ‘iwl_rs_rate_init’: drivers/net/wireless/iwlwifi/iwl-agn-rs.c:2876:8: error: ‘struct iwl_lq_sta’ has no member named ‘dbg_fixed_rate’ dbg_fixed_rate is only used when CONFIG_MAC80211_DEBUGFS is set: [ drivers/net/wireless/iwlwifi/iwl-agn-rs.h ] ... #ifdef CONFIG_MAC80211_DEBUGFS struct dentry *rs_sta_dbgfs_scale_table_file; struct dentry *rs_sta_dbgfs_stats_table_file; struct dentry *rs_sta_dbgfs_rate_scale_data_file; struct dentry *rs_sta_dbgfs_tx_agg_tid_en_file; u32 dbg_fixed_rate; #endif The issue was introduced by commit a1da077bc36368eb7d6312e7e49260f0a3d92c77: "iwlwifi: clear dbg_fixed_rate during init" Signed-off-by: Sedat Dilek <sedat.dilek@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | mac80211: Add timeout to BA session start APISujith Manoharan2010-12-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Allow drivers or rate control algorithms to specify BlockAck session timeout when initiating an ADDBA transaction. This is useful in cases where maintaining persistent BA sessions does not incur any overhead. The current timeout value of 5000 TUs is retained for all non ath9k/ath9k_htc drivers. Signed-off-by: Sujith Manoharan <Sujith.Manoharan@atheros.com> Reviewed-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | iwlagn: fix witespace damageWey-Yi Guy2010-12-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | patch "iwlagn: check ready in iwlagn_bss_info_changed()" introduce whitespace, fix it please merge with the previous patch Reported by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | iwlagn: code clean up to remove duplicate codeWey-Yi Guy2010-12-133-322/+151
| | | | | | | | | | | | | | | | Multiple devices use almost the same .cfg with minor differences. Use macro and remove the duplication. By doing this, reduce the chance for mistake while modify .cfg parameters Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlwifi: keep track of bt coex enable/disable stageWey-Yi Guy2010-12-135-0/+13
| | | | | | | | | | | | For debugging purpose, keep track of the bt coex enable/disable state. Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlwifi: do not reload fw if WiMAX own the RFWey-Yi Guy2010-12-135-1/+25
| | | | | | | | | | | | | | | | For WiFi/WiMAX combo devices, if WiMAX own the RF, WiFi driver try to access RF and fail. This is the W/A to To avoid WiFi keep reloading firmware and try to access RF again. Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlagn: More detail tx power loggingWey-Yi Guy2010-12-131-10/+30
| | | | | | | | | | | | | | For enhanced tx power table in EEPROM, add more detail logging to help debugging Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlwifi: use IWL_DEBUG_EEPROM for EEPROM related infoWey-Yi Guy2010-12-132-12/+15
| | | | | | | | | | | | | | For logging EEPROM related info, instead of using IWL_DEBUG_INFO, use the dedicated logging (IWL_DEBUG_EEPROM) for easier debugging Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlwifi: add new EEPROM debug log typeWey-Yi Guy2010-12-131-0/+2
| | | | | | | | | | | | Adding new debug type to log EEPROM related data Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlagn: remove old EEPROM TX power readingJohannes Berg2010-12-135-331/+1
| | | | | | | | | | | | | | | | | | | | This removes the old TX power reading code, it isn't necessary since the new code is able to read all the various EEPROM layouts due to relying on information contained in the EEPROM. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlagn: implement layout-agnostic EEPROM readingJohannes Berg2010-12-136-1/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The current EEPROM reading code has some layout assumptions that now turned out to be false with some newer versions of the EEPROM. Luckily, we can avoid all such assumptions by using data in the EEPROM itself, so implement using that. However, for risk mitigation purposes, keep the old reading code for current hardware for now. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlagn: rename enhanced txpower fieldsJohannes Berg2010-12-132-5/+8
| | | | | | | | | | | | | | | | | | | | | | Some fields we didn't previously use from the enhanced TX power structure will be needed in the next patch, so rename them to their correct names to be able to use them and change code reading them accordingly. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlagn: rx antenna diversityWey-Yi Guy2010-12-133-2/+16
| | | | | | | | | | | | | | | | For the new 1x1 devices, hw and uCode will support rx antenna diversity, but we need to indicate 1x1 device to AccessPoint to make sure it won't use MIMO. Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlagn: fix debug variable accessJohannes Berg2010-12-131-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | The compiler correctly warns: iwl-agn-tx.c: In function ‘iwlagn_tx_status_reply_compressed_ba’: iwl-agn-tx.c:1240: warning: ‘bitmap’ may be used uninitialized in this function Move the debug print to the branch that reads the bitmap, and move the variables too so it's more obvious where they are needed. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlagn: check ready in iwlagn_bss_info_changed()Shanyu Zhao2010-12-131-1/+8
| | | | | | | | | | | | | | | | | | | | In function iwlagn_bss_info_changed(), we need to check if the driver is ready before doing real work. Also, the previously put WARN() is removed because the vif is not guaranteed to be valid. uCode restart routine will clear the vif. Signed-off-by: Shanyu Zhao <shanyu.zhao@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlwifi: clear dbg_fixed_rate during initShanyu Zhao2010-12-131-0/+2
| | | | | | | | | | | | | | This prevent bad fixed_rate keeps crashing uCode in an endless loop. Signed-off-by: Shanyu Zhao <shanyu.zhao@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlagn: change led compensation for 6005 and 6030 devicesWey-Yi Guy2010-12-131-13/+13
| | | | | | | | | | | | For both 6005 and 6030 devices, change the led compensation to 57 Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlwifi: jiffies based tx queues watchdogStanislaw Gruszka2010-12-0613-138/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch replace monitor/recover timer by watchdog based on time stamp. New code allow to discover hangs more precisely. Timeout values are currently doubled monitoring period values of previous timer. This have to be tuned based of firmware timing capabilities. Tested on 3945, 4965, 5300, 6300. Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Acked-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | iwl3945: prevent too frequent firmware resetsStanislaw Gruszka2010-12-061-0/+7
| | | | | | | | | | | | | | | | | | Similarly like on iwlagn, initialize reset duration on iwl3945 to prevent too frequent firmware resets. Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Acked-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | iwlagn: name change for bt_ch_announce module parameterWey-Yi Guy2010-12-021-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change the module parameter name to bt_ch_inhibition from bt_ch_announce to better describe the functionality In order to allow Bluetooth to activate a smart AFH mechanism and to maximize its available bandwidth the WiFi will request BT Core to inhibit its activity in channels that interfere with WiFi activity (and vice versa) if bt_ch_inhibition is enabled Set module parameter "bt_ch_inhibition=0" will disable the channel inhibition function Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlwifi: check for STATUS_EXIT_PENDING when send RXON commandWey-Yi Guy2010-12-022-0/+6
| | | | | | | | | | | | | | If driver is on the way down, there is no need to send RXON to uCode, check the condition before continuous the process. Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlagn: remove structure name reference to gen2Wey-Yi Guy2010-12-023-49/+49
| | | | | | | | | | | | Give the corresponding name for .cfg data structure Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlagn: Enable PCI L1 ACTIVE state after uCode has been loadedGrumbach, Emmanuel2010-12-021-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PCI L1 Active needs to be disabled while loading the uCode so that the bus doesn't go to sleep. The enablement of L1 Active should be done after the uCode has sent the ALIVE response. The enablement of L1 Active was missing. Enabling L1 Active allows to save power if the BIOS / bus driver allows it. I measured the power consumption while not associated and idle/associated: L1 Active disabled: 39 mA = 130mW L1 Active enabled: 6 mA = 20 mW Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlagn: fix race condition when reprogram staWey-Yi Guy2010-12-021-0/+13
| | | | | | | | | | | | | | During reprogram stations, do not send link quality command. uCode will crash if receive link quality command for invalid station Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlagn: fix microcode error on 4965Stanislaw Gruszka2010-11-301-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Commit dbbf1755b09eef8ff6dd21c8dafe1606f051ce12 "iwlwifi: use antenna information in EEPROM" caused 4965 device breakage with "Microcode SW error detected. Restarting 0x82000000." message. This patch reverts 4965 part of that commit. Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Acked-by: Johannes Berg <johannes@sipsolutions.net> Acked-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | iwlagn: minor change in bt coex normal LUTWey-Yi Guy2010-11-241-1/+1
| | | | | | | | | | | | Minor changes in LUT Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlagn: use different kill mask when SCO activeWey-Yi Guy2010-11-242-13/+20
| | | | | | | | | | | | | | use different kill_ack_mask and kill_cts_mask when detect SCO is active. Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlagn: Offical name for 100/130 deviceWey-Yi Guy2010-11-242-4/+4
| | | | | | | | | | | | | | | | | | | | Change to offical name for 100 devices: "Intel(R) Centrino(R) Wireless-N 100" Change to offical name for 130 devices: "Intel(R) Centrino(R) Wireless-N 130" Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlagn: Offical name for 6000g2b deviceWey-Yi Guy2010-11-241-6/+6
| | | | | | | | | | | | | | | | Change to offical name for 6000g2b devices: "Intel(R) Centrino(R) Wireless-N 1030" "Intel(R) Centrino(R) Advanced-N 6230" Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlagn: Offical name for 6000g2a deviceWey-Yi Guy2010-11-241-3/+3
| | | | | | | | | | | | | | Change to offical name for 6000g2a devices: "Intel(R) Centrino(R) Advanced-N 6205" Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlagn: Offical name for 6050g2 deviceWey-Yi Guy2010-11-241-1/+1
| | | | | | | | | | | | | | Change to offical name for 6050g2 devices: "Intel(R) Centrino(R) Wireless-N 6150" Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlwifi: use mac80211 AC definesJohannes Berg2010-11-242-14/+20
| | | | | | | | | | | | | | | | | | | | Instead of hardcoding the numbers that must match mac80211, use the constants. Not that this means we could change the constants, but at least this way it's clearer. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlagn: advertise reliable TX statusJohannes Berg2010-11-241-1/+2
| | | | | | | | | | | | | | | | | | | | Our hardware has reliable TX status, but we're not currently advertising that to mac80211. Since the packet loss monitoring will depend on it, advertise it. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlagn: fix station powersave accounting for aggregationJohannes Berg2010-11-241-6/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since aggregation queues are station-specific, the device will not reject packets in them but rather will stop the appropriate aggregation queues when a station goes to sleep. I forgot to account for this in the driver, so if a station went to sleep that had aggregation enabled, traffic would stop indefinitely. Fix this by only accounting frames queued on the normal AC queues for associated station. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlagn: remove powersave warningJohannes Berg2010-11-241-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Through races, a packet may be enqueued for transmission to a station while that station is going to sleep, in which case the warning here triggers. Instead of warning, check the condition -- if this packet is not a PS-poll response then we still enqueue it but it will be rejected by the device since the station is marked as asleep. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlwifi: use antenna information in EEPROMWey-Yi Guy2010-11-245-60/+32
| | | | | | | | | | | | | | | | | | | | The valid tx/rx antenna information is part of EEPROM, so use it to configure the device. For few cases, the EEPROM did not reflect the correct antenna, but it is too late to modify the EEPROM, so overwrite with .cfg parameters Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
* | iwlwifi: remove unused defineWey-Yi Guy2010-11-241-1/+0
| | | | | | | | | | | | was not used, remove it Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>