summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'iwlwifi-fixes/master' into iwlwifi-nextEmmanuel Grumbach2014-05-069-155/+212
|\
| * iwlwifi: mvm: rs - s/CPTCFG/CONFIGEmmanuel Grumbach2014-05-061-1/+1
| | | | | | | | | | | | | | | | My bad - I forgot to update this when sending the patch upstream. Fixes: 87d5e4155c00 ("iwlwifi: mvm: rs: reinit rs if no tx for a long time") Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
| * iwlwifi: mvm: BT Coex - fix validity flags during initEmmanuel Grumbach2014-05-061-3/+3
| | | | | | | | | | | | | | | | | | The commit below introduced a bug in the validity bits in init. Due to that, all the Coex mechanism stopped sending kills to the BT side. Fix that. Fixes: b9fae2d54c9f ("iwlwifi: mvm: BT Coex add support for Co-running block") Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
| * iwlwifi: mvm: several fixes in scanAlexander Bondar2014-04-132-45/+16
| | | | | | | | | | | | | | | | | | | | The firmware doesn't handle properly the fragmented scan. Stop using it. While at it change max_out_time and suspend_time units from usec to TUs as expected by firmware API. Signed-off-by: Alexander Bondar <alexander.bondar@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
| * iwlwifi: mvm: BT Coex - fix Look Up TableEmmanuel Grumbach2014-04-131-6/+6
| | | | | | | | | | | | | | | | A few entries were wrong and this caused throughput issues. Cc: <stable@vger.kernel.org> [3.13+] Fixes: dac94da8dba3 ("iwlwifi: mvm: new BT Coex API") Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
| * iwlwifi: mvm: rs: clear per rate stats when aggregation changesEyal Shapira2014-04-131-6/+8
| | | | | | | | | | | | | | | | | | | | | | The per rate stats should be cleared when aggregation state changes to avoid making rate scale decisions based on throughput figures which were collected prior to the aggregation state change and are now stale. While at it make sure any clearing of the per rate stats will get logged. Cc: <stable@vger.kernel.org> [3.14] Signed-off-by: Eyal Shapira <eyalx.shapira@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
| * iwlwifi: mvm: avoid searching unnecessary columnsEyal Shapira2014-04-131-6/+6
| | | | | | | | | | | | | | | | | | Don't search columns which are unlikely to succeed as previous columns searched with less aggressive modulation failed. Cc: <stable@vger.kernel.org> [3.14] Signed-off-by: Eyal Shapira <eyalx.shapira@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
| * iwlwifi: mvm: rs: fallback to legacy Tx columnsEyal Shapira2014-04-131-2/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow switching back to legacy Tx columns so we'll stop doing HT/VHT in case we're far from the AP. Stop active aggregation when making a deciding to stay in a legacy column. Despite having low legacy rates in the LQ table lower entries it doesn't help much in case we're doing aggregations as the aggregation was being transmitted in the initial rate of the table. This should help traffic stalls when far from the AP. Cc: <stable@vger.kernel.org> [3.14] Signed-off-by: Eyal Shapira <eyalx.shapira@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
| * iwlwifi: mvm: rs: reinit rs if no tx for a long timeEyal Shapira2014-04-132-1/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After being idle for a long time (>5sec) the rs statistics will be stale so we prefer to reset rs and start from legacy rates again. This gives better results when the attenuation increased signficantly (e.g. we got further from the AP) and after a while we start Tx Note that the first Tx after the idle period will still go out in the old modulation and rate but this seemed a simpler approach compared to adding a timer or modifying mac80211 for this. The negative impact is negligble as we'll recover quickly. Cc: <stable@vger.kernel.org> [3.14] Signed-off-by: Eyal Shapira <eyalx.shapira@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
| * iwlwifi: mvm: rs: fix and cleanup rs_get_rate_actionEyal Shapira2014-04-132-68/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | Change the down/upscale decision logic a bit to be based on different success ratio thresholds. This fixes the implementation compared to the rate scale algorithm which was planned to yield optimal results. Also fix a case where a lower rate wasn't explored despite being a potential for better throughput. While at it rewrite rs_get_rate_action to be more clear and clean. Cc: <stable@vger.kernel.org> [3.14] Signed-off-by: Eyal Shapira <eyalx.shapira@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
| * iwlwifi: mvm: rs: use correct max expected throughput figuresEyal Shapira2014-04-132-16/+51
| | | | | | | | | | | | | | | | | | | | The selection of the max expected throughput for a column didn't take into account the maximal allowed rate for the current peer. This can cause unnecessary switches during the search cycle to columns which have no chance of beating the current throughput. Signed-off-by: Eyal Shapira <eyalx.shapira@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
| * iwlwifi: add MODULE_FIRMWARE for 7265Emmanuel Grumbach2014-04-131-0/+1
| | | | | | | | | | | | | | It was missing. Cc: <stable@vger.kernel.org> [3.13+] Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
| * iwlwifi: 7000: bump API to 9Emmanuel Grumbach2014-04-131-2/+2
| | | | | | | | | | | | | | This will allow to load the new firmware. Cc: <stable@vger.kernel.org> [3.14] Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
| * iwlwifi: add new 7265 HW IDsOren Givon2014-04-131-0/+2
| | | | | | | | | | | | | | | | Add 2 new HW IDs for the 7265 series. Cc: <stable@vger.kernel.org> [3.13+] Signed-off-by: Oren Givon <oren.givon@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
| * iwlwifi: mvm: BT Coex - send the new LUT upon antenna coupling changeEmmanuel Grumbach2014-04-131-1/+5
| | | | | | | | | | | | | | | | I forgot to send the new Look Up Table to the firmware and I also forgot to free the command which is kzalloc'ed. This code is relevant for 7265 device only. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
| * iwlwifi: mvm: rs: fix mimo delimiter in LQ cmdEyal Shapira2014-04-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | mimo_delim was always set to 0 instead of pointing to the first SISO entry after MIMO rates. This can cause keep transmitting in MIMO even when we shouldn't. For example when the peer is requesting static SMPS. Cc: <stable@vger.kernel.org> [3.14] Signed-off-by: Eyal Shapira <eyalx.shapira@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
| * iwlwifi: mvm: delay enabling smart FIFO until after beacon RXJohannes Berg2014-04-132-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we have no beacon data before association, delay smart FIFO enablement until after we have this data. Not doing so can cause association failures in extremely silent environments (usually only a shielded box/room) as beacon RX is not sent to the host immediately, and then the association time event ends without the host receiving any beacon even though it was on the air - it's just stuck on the FIFO. Cc: <stable@vger.kernel.org> [3.14] Fixes: 1f3b0ff8ecce ("iwlwifi: mvm: Add Smart FIFO support") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: don't disable SCD chain extension on newer devicesEmmanuel Grumbach2014-04-136-1/+11
| | | | | | | | | | | | | | | | | | | | | | 7000 device series have a fix for this hardware feature. Stop disabling it, and get an improvement in Tx throughput. This feature allows the scheduler to fetch more frames on the fly while an A-MPDU is being built - which means that we can get larger A-MPDU. This, of course, give an improvement in the Tx throughput. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: Re-factor enabling uAPSD logicAvri Altman2014-04-131-18/+25
| | | | | | | | | | | | | | | | | | The driver can enable uAPSD and specify some of its related parameters. This patch organizes this logic in a separate function. Signed-off-by: Avri Altman <avri.altman@intel.com> Reviewed-by: Alexander Bondar <alexander.bondar@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: replace leading spaces by tabsEmmanuel Grumbach2014-04-131-3/+3
| | | | | | | | | | | | | | Somehow I added spaces instead of tabs to a few lines in debugfs.c. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: don't use d3 fw if d0i3 is usedEliad Peller2014-04-135-3/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bail out from the suspend/resume callbacks if d0i3 is used. declare support for ANY wowlan trigger (i.e. normal operation). On resume, we shouldn't execute the d0i3 exit flow (which might disconnect stations, etc.) until mac80211 was resumed. Add new flags to indicate we are in suspend, and call the pending exit work on resume. Since the resume flow can take some time, add a new EXIT_WORK reference type to prevent going back to d0i3 at this stage. Signed-off-by: Eliad Peller <eliadx.peller@intel.com> Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: 7000: bump firmware API version to 9Emmanuel Grumbach2014-04-131-4/+4
| | | | | | | | | | | | Also warn if an older firmware is loaded. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: Add support for Energy based scan (EBS)Haim Dreyfuss2014-04-136-6/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch enables Energy Based Scan (EBS) - intended to detect energy on 5 GHz band channels. Passive scan on this band takes up to 2.64 sec assuming 110mSec per-channel * 24 channels. EBS is designed to detect energy on channels with intensive Wifi activity as well as those where only beacons are transmitted. EBS completes sampling all channels within shortest beacon frame transmission time. Total EBS duration is about 100 msec (typical beacon interval). Detecting Wifi activity on 5 GHz band channels can significantly reduce scan duration thus saving time and power. EBS failure reported by FW disables EBS for current connection. It is re-enabled upon new connection attempt on any WLAN interface. Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com> Signed-off-by: Alexander Bondar <alexander.bondar@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: BT Coex - send priority tables from iwl_send_bt_init_confEmmanuel Grumbach2014-04-133-7/+6
| | | | | | | | | | | | | | | | | | Calling iwl_send_bt_init_conf for INIT firmware is not a problem, and calling iwl_send_bt_prio_tbl from iwl_send_bt_init_conf allows us to prepare for new API. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: BT Coex - minor API changeEmmanuel Grumbach2014-04-132-16/+24
| | | | | | | | | | | | | | | | | | | | | | The BT Coex API underwent a minor backward compatible API change. We now need to set an invalid value in the override fields. While at it, add kerneldoc comments on the fields in the command. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: BT Coex - don't use comma operatorEmmanuel Grumbach2014-04-131-4/+4
| | | | | | | | | | | | | | | | This is really not needed. This is a remainder from a C99 initialiser. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: remove IWL_UCODE_TLV_FLAGS_DEVICE_PS_CMD flagEmmanuel Grumbach2014-04-135-31/+2
| | | | | | | | | | | | | | All the supported firmwares have this flag set. Reviewed-by: Alexander Bondar <alexander.bondar@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: remove IWL_UCODE_TLV_FLAGS_STA_KEY_CMD flagEmmanuel Grumbach2014-04-133-177/+32
| | | | | | | | | | | | All the supported firmwares have this flag set. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: remove IWL_UCODE_TLV_FLAGS_UAPSD_SUPPORT flagEmmanuel Grumbach2014-04-132-6/+6
| | | | | | | | | | | | All the supported firmwares have this flag set. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: remove IWL_UCODE_TLV_FLAGS_SCHED_SCAN flagEmmanuel Grumbach2014-04-132-10/+5
| | | | | | | | | | | | All the supported firmwares have this flag set. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: remove IWL_UCODE_TLV_FLAGS_D3_CONTINUITY_API flagEmmanuel Grumbach2014-04-134-70/+24
| | | | | | | | | | | | | | All the supported firmwares have this flag set. Reviewed-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: remove IWL_UCODE_TLV_FLAGS_BF_UPDATED flagEmmanuel Grumbach2014-04-133-6/+2
| | | | | | | | | | | | | | All the supported firmwares have this flag set. Reviewed-by: Alexander Bondar <alexander.bondar@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: remove IWL_UCODE_TLV_FLAGS_TIME_EVENT_API_V2 flagEmmanuel Grumbach2014-04-133-114/+12
| | | | | | | | | | | | All the supported firmwares have this flag set. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: remove IWL_UCODE_TLV_FLAGS_RX_ENERGY_API flagEmmanuel Grumbach2014-04-132-41/+1
| | | | | | | | | | | | All the supported firmwares have this flag set. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: remove IWL_UCODE_TLV_FLAGS_PM_CMD_SUPPORT flagEmmanuel Grumbach2014-04-135-31/+1
| | | | | | | | | | | | | | All the supported firmwares have this flag set. Reviewed-by: Alexander Bondar <alexander.bondar@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: remove IWL_UCODE_TLV_FLAGS_NEWBT_COEX TLV flagEmmanuel Grumbach2014-04-132-10/+0
| | | | | | | | | | | | All the supported firmwares have this flag set. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: deprecate -7 firmwareEmmanuel Grumbach2014-04-134-14/+5
| | | | | | | | | | | | | | | | | | | | This firmware is not supported any more. A few code paths specific to old firmware can be removed. We can now assume that a few TLV flags are always set since we won't load firmware that didn't support the corresponding features. This will be done in a separate patch. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: replace BUG_ON by WARN_ON in scan.cEmmanuel Grumbach2014-04-132-1/+7
| | | | | | | | | | | | | | | | | | | | While the scan_cmd should really be allocated in init (and we do fail init in case the allocation failed), it doesn't mean we should lock up the machine if something really bad happened. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: add per rate tx statsEyal Shapira2014-04-132-4/+111
| | | | | | | | | | | | | | | | | | | | Collect accumulated stats of tx attempts and successes per rate and column for debugging purposes. These stats can be read via debugfs file drv_tx_stats and can also be reset by writing to this file. Signed-off-by: Eyal Shapira <eyalx.shapira@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: Use RCU_INIT_POINTER(x, NULL)Monam Agarwal2014-04-131-4/+4
| | | | | | | | | | | | | | | | | | | | | | rcu_assign_pointer() ensures that the initialization of a structure is carried out before storing a pointer to that structure. However, in the case that NULL is assigned there's no structure to initialize so using RCU_INIT_POINTER instead is safe and more efficient. Signed-off-by: Monam Agarwal <monamagarwal123@gmail.com> [rewrite commit log] Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: don't enable bcast filtering on P2P clientEmmanuel Grumbach2014-04-131-0/+4
| | | | | | | | | | | | | | The firmware doesn't support broadcast filtering on P2P client. Trying to enable it makes the firmware assert. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: Fix tx-backoff when NIC exit thermal throttlingEytan Lifshitz2014-04-131-3/+4
| | | | | | | | | | | | | | | | | | When NIC is exiting from thermal throttling state (i.e. after heating and then cooling down), tx-backoff values are assigned to be zero, instead of being restored to the minimal value. Fixed. Signed-off-by: Eytan Lifshitz <eytan.lifshitz@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: Fix warning message when exit thermal throttlingEytan Lifshitz2014-04-131-1/+2
| | | | | | | | | | | | | | | | | | When NIC exit thermal throttling while having minimal tx-backoff restriction, the warning message that indicate about that state won't show up. Fixed. Signed-off-by: Eytan Lifshitz <eytan.lifshitz@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: dump Rx FIFO when the firmware assertsEmmanuel Grumbach2014-04-136-8/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The Rx FIFO includes valuable data - dump it when the FW asserts. Also - free the SRAM and Rx FIFO when we create the file, and don't collect new SRAM / Rx FIFO if the previous file hasn't been collected through debugfs yet. Also - add a comment to saying that the ASSERT output should not be modified since we have automatic scripts that monitor this output. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: pcie: WARN upon traffic while flushing TX queuesEmmanuel Grumbach2014-04-131-2/+14
| | | | | | | | | | | | | | | | This must not happen - otherwise we might keep flushing forever. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: allow to wait for a subset of the queuesEmmanuel Grumbach2014-04-134-8/+12
| | | | | | | | | | | | | | | | This will be used later to flush / wait for queues that are related to a specific vif. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: don't set AP STA to EINVALEmmanuel Grumbach2014-04-131-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that mac80211 calls pre_rcu_remove and we set the fw_id_to_mac_id pointer to -ENOENT before the station is removed, we don't need to set fw_id_to_mac_id to -EINVAL when the station is really removed. Leave fw_id_to_mac_id to be -ENOENT which will let the drain worker (iwl_mvm_sta_drained_wk) know that this station is not to be drained. We don't need to drain this station since it is our AP in managed mode and we flush all its frames synchronously anyway. Setting the AP station to -EINVAL could lead to confusion since internal stations are also reserved with -EINVAL, this confusion showed up in the logs as: Drained sta 0, but it is internal? Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: propagate the beamforming status from firmwareEmmanuel Grumbach2014-04-131-0/+2
| | | | | | | | | | | | | | | | The firmware tells us if an Rx packet was beamformed or not. Propagate this data to mac80211's rx_status.vht_flags. The main user of this data is the radiotap header. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: remove redundant empty lineEmmanuel Grumbach2014-04-131-1/+0
| | | | | | | | Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: move CPU1_CPU2_SEPARATOR_SECTION to iwl-fw.hEran Harary2014-04-132-1/+1
| | | | | | | | | | | | | | | | This define is related to the firmware packaging and is needed by more than one transport. Signed-off-by: Eran Harary <eran.harary@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
OpenPOWER on IntegriCloud