summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/iwlwifi
AgeCommit message (Collapse)AuthorFilesLines
2012-05-18iwlwifi: dont pull too much payload in skb headEric Dumazet1-1/+6
As iwlwifi use fat skbs, it should not pull too much data in skb->head, and particularly no tcp data payload, or splice() is slower, and TCP coalescing is disabled. Copying payload to userland also involves at least two copies (part from header, part from fragment) Each layer will pull its header from the fragment as needed. (on 64bit arches, skb_tailroom(skb) at this point is 192 bytes) With this patch applied, I have a major reduction of collapsed/pruned TCP packets, a nice increase of TCPRcvCoalesce counter, and overall better Internet User experience. Small packets are still using a fragless skb, so that page can be reused by the driver. Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Johannes Berg <johannes.berg@intel.com> Cc: Wey-Yi Guy <wey-yi.w.guy@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-15Merge branch 'master' of ↵David S. Miller9-114/+125
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next
2012-05-11drivers/net: Convert compare_ether_addr to ether_addr_equalJoe Perches3-9/+9
Use the new bool function ether_addr_equal to add some clarity and reduce the likelihood for misuse of compare_ether_addr for sorting. Done via cocci script: $ cat compare_ether_addr.cocci @@ expression a,b; @@ - !compare_ether_addr(a, b) + ether_addr_equal(a, b) @@ expression a,b; @@ - compare_ether_addr(a, b) + !ether_addr_equal(a, b) @@ expression a,b; @@ - !ether_addr_equal(a, b) == 0 + ether_addr_equal(a, b) @@ expression a,b; @@ - !ether_addr_equal(a, b) != 0 + !ether_addr_equal(a, b) @@ expression a,b; @@ - ether_addr_equal(a, b) == 0 + !ether_addr_equal(a, b) @@ expression a,b; @@ - ether_addr_equal(a, b) != 0 + ether_addr_equal(a, b) @@ expression a,b; @@ - !!ether_addr_equal(a, b) + ether_addr_equal(a, b) Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-09iwlwifi: fix-up some merge damage from commit 0d6c4a2John W. Linville1-1/+2
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2012-05-09iwlwifi: use 6000G2B for 6030 device seriesWey-Yi Guy1-1/+1
"iwlwifi: use correct released ucode version" change the ucode api ok from 6000G2 to 6000G2B, but it shall belong to 6030 device series, not the 6005 device series. Fix it Cc: stable@vger.kernel.org #3.3+ Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2012-05-09iwlwifi: use correct released ucode versionMeenakshi Venkataraman1-1/+1
Report correctly the latest released version of the iwlwifi firmware for all iwlwifi-supported devices. Cc: stable@vger.kernel.org #3.3+ Signed-off-by: Meenakshi Venkataraman <meenakshi.venkataraman@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2012-05-09iwlwifi: remove the iwl_shared referenceWey-Yi Guy1-3/+3
Change-Id: I10e42e0cc7dd91047f093ea2c5a55d65c004ada6 Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Reviewed-on: http://git-mwg.jer.intel.com/gerrit/1939 Tested-by: Jenkins Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2012-05-09iwlwifi: modify #ifdef to avoid sparse complainWey-Yi Guy2-19/+18
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-05-09iwlwifi: don't init trans->reg_lock from the op_modeEmmanuel Grumbach2-1/+1
This doesn't make any sense. Init it from the transport instead. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-05-09iwlwifi: add option to disable 5GHz bandStanislaw Gruszka3-0/+9
There are various problems happened on 5GHz band not observed on 2.4 GHz (microcode errors, queue stuck, etc... ) . Also roaming between 5GHz AP and 2GHz does not work very well. To workaround the problems add option to disable 5GHz support. This will help on environments where APs are dual-band, and devices will not try to associate on band where issues happen. Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-05-09iwlwifi: use IWL_* instead of dev_printk when possibleEmmanuel Grumbach2-10/+9
Also remove a debug print when allocation error occurred. The kernel will complain anyway. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-05-09iwlwifi: add loose coex lutWey-Yi Guy1-2/+21
Add the Loose coex LUT and will use later for better bt coex tpt Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-05-09iwlwifi: change kill mask based on reduce power stateWey-Yi Guy2-9/+20
In bt coex, consider reduce tx power as part of ack/cts kill mask Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-05-09iwlwifi: send reduce tx power info in commandWey-Yi Guy2-1/+3
Add the reduce tx power information in bt coex host command Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-05-09iwlwifi: small define changeWey-Yi Guy1-1/+3
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-05-09iwlwifi: add reduced tx power threshold defineWey-Yi Guy1-0/+3
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-05-09iwlwifi: add checking for the condition to reduce tx powerWey-Yi Guy2-4/+39
When bluetooth coex is active and certain condition matched, driver need to decide should the tx power been reduce or not. Adding the logic to manage it. Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-05-09iwlwifi: add BT reduced tx power flagWey-Yi Guy1-2/+2
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-05-09iwlwifi: remove unused macrosWey-Yi Guy1-69/+0
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-05-08Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/netDavid S. Miller11-37/+96
Conflicts: drivers/net/ethernet/intel/e1000e/param.c drivers/net/wireless/iwlwifi/iwl-agn-rx.c drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c drivers/net/wireless/iwlwifi/iwl-trans.h Resolved the iwlwifi conflict with mainline using 3-way diff posted by John Linville and Stephen Rothwell. In 'net' we added a bug fix to make iwlwifi report a more accurate skb->truesize but this conflicted with RX path changes that happened meanwhile in net-next. In e1000e a conflict arose in the validation code for settings of adapter->itr. 'net-next' had more sophisticated logic so that logic was used. Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-03iwlwifi: fix skb truesize underestimationEric Dumazet3-8/+17
By default, iwlwifi uses order-1 pages (8 KB) to store incoming frames, but doesnt say so in skb->truesize. This makes very possible to exhaust kernel memory since these skb evade normal socket memory accounting. As struct ieee80211_hdr is going to be pulled before calling IP stack, there is no need to use dev_alloc_skb() to reserve NET_SKB_PAD bytes. alloc_skb() is ok in this driver, allowing more tailroom. Pull beginning of frame in skb header, in the hope we can reuse order-1 pages in the driver immediately for small frames and reduce their truesize to the minimum (linear skbs) Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Cc: Wey-Yi Guy <wey-yi.w.guy@intel.com> Cc: "John W. Linville" <linville@tuxdriver.com> Cc: Neal Cardwell <ncardwell@google.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2012-04-27iwlwifi: use 6000G2B for 6030 device seriesWey-Yi Guy1-2/+2
"iwlwifi: use correct released ucode version" change the ucode api ok from 6000G2 to 6000G2B, but it shall belong to 6030 device series, not the 6005 device series. Fix it Cc: stable@vger.kernel.org #3.3+ Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2012-04-26Merge branch 'master' of ↵John W. Linville49-1660/+953
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem Conflicts: drivers/net/wireless/iwlwifi/iwl-testmode.c
2012-04-24iwlwifi: use correct released ucode versionMeenakshi Venkataraman4-18/+27
Report correctly the latest released version of the iwlwifi firmware for all iwlwifi-supported devices. Cc: stable@vger.kernel.org #3.3+ Signed-off-by: Meenakshi Venkataraman <meenakshi.venkataraman@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2012-04-24iwlwifi: fix hardware queue programmingJohannes Berg2-8/+43
Newer devices have 20 (5000 series) or 30 (6000 series) hardware queues, rather than the 16 that 4965 had. This was added to the driver a long time ago, but improperly: the queue registers for the higher queues aren't just continuations of the registers for the first 16 queues, they are in other places. Therefore, the hardware would lock up when trying to activate queue 16 or above and the device would have to be restarted. Thanks goes to Emmanuel who identified this and told me how the queue programming should be done. Note that we don't use queues 20 and higher today and doing so needs more work than this. Cc: stable@vger.kernel.org Signed-off-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>
2012-04-24iwlwifi: use new mac80211 queue schemeJohannes Berg4-74/+66
Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: clean up module parametersJohannes Berg17-124/+134
For now at least, all module parameters should be with the core functionality, so move them there, while at it rename to iwlwifi_mod_params. Also rename iwl-shared.h to iwl-modparams.h to reflect the real contents. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: revert workaround to restore 1000 rx throughputDon Fry1-1/+0
A workaround in commit c0486b7ccc5 resulted in a 40% drop in receive throughput in order to fix a transmit problem. The transmit problem no longer occurs, so restore the receive throughput. Signed-off-by: Don Fry <donald.h.fry@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: use direct calls for transport freeJohannes Berg4-28/+10
Since the transport allocates and frees itself in the transport specific code, there's no need for virtual functions for it. Remove the free method and call the correct functions directly. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: clean up some hw file includesJohannes Berg4-4/+8
We can't get rid of everything yet due to the BT definitions that I'm not quite sure yet how to handle, but we can get rid of most unneeded includes. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: move OTP definesJohannes Berg2-11/+11
Since the PCI core shouldn't include the iwl-eeprom.h header file, move the OTP definitions into iwl-agn-hw.h which can be included. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: move antenna definitions to configJohannes Berg2-9/+11
Since they're used in the config, they should be declared in iwl-config.h. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: move eeprom versions to HW filesJohannes Berg5-42/+29
The hardware files belong to the core PCI functionality, but the eeprom header file mixes higher-level functionality and the defines, so move out the specific defines and put them into the appropriate HW files instead. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: move watchdog definitions to configJohannes Berg2-6/+6
Since they're used in the config, they should be declared in iwl-config.h. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: move PLCP defines to configJohannes Berg2-11/+12
Since they're used in the config, they should be declared in iwl-config.h. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: move driver defines to iwl-drv.hJohannes Berg4-5/+9
These defines will have to be shared between modules, but they seem better placed in iwl-drv.h than iwl-shared.h. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: remove duplicate iwlagn_mod_params declarationJohannes Berg1-1/+0
We only need one declaration, not multiple. Keep the one in iwl-shared.h, which will probably be renamed to iwl-modparams.h at some point in the future. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: remove TX/RX frame statisticsJohannes Berg23-417/+1
Keeping statistics per frame type really isn't very useful, and needs a huge amount of code so remove it. Since that is the only thing in iwl-core.{c,h} now, those files can be killed. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: remove traffic logJohannes Berg7-253/+5
This is superseded by tracing and no longer needed. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: move iwl_cmd_echo_testJohannes Berg3-18/+17
The function can be static with the only user. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: move TIME_UNITJohannes Berg2-2/+1
We're getting rid of iwl-core.h, move TIME_UNIT out. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: remove bt_siso_mode declarationJohannes Berg1-5/+0
That variable doesn't exist anywhere. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: include net/mac80211.h to avoid compiler errorWey-Yi Guy1-0/+1
without the include, kernel compiling will fail, but not compat. this patch need to be merge with iwlwifi-clean-up-iwl-shared.h-includes.patch Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: clean up iwl-shared.h includesJohannes Berg11-13/+13
That file is now holding just a few defines and the module parameters, so it shouldn't include anything. Make sure the right users include the right files instead. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: move iwl_have_debug_levelJohannes Berg2-5/+6
This function belongs into the debugging framework. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: move debugfs registration function declarationsJohannes Berg2-15/+13
They clearly belong into iwl-agn.h as they have no relation to the (generic) debug logging framework. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: remove debugfs logspamJohannes Berg2-56/+20
There really is no point in printing very verbose error messages when somebody tries to access a debugfs file before it is ready. Or even worse, printing verbose messages when memory allocation fails which *already* prints a huge warning. Remove all IWL_ERR messages from debugfs. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: properly set basic ratesJohannes Berg4-53/+94
This fixes a long-standing bug: iwlwifi always assumes that the CCK ACK rates are 1 and 2 MBps and the OFDM ACK rates are 6, 12 and 24 MBps. Fix this problem by using the basic rates the AP (or in AP case hostapd) told us to use and add the necessary mandatory rates to the mix. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: Added debugfs calib disabled writeDavid Spinadel1-2/+23
Added the option to disable calibration via debugfs. Signed-off-by: David Spinadel <david.spinadel@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2012-04-24iwlwifi: provide proper API to disable all interruptsEmmanuel Grumbach4-17/+35
Since the op_mode may go away, the transport needs to be able to be told not to update the op_mode at all (even for RF kill). Provide this API and use it in the proper places. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>