1. 28 6月, 2011 1 次提交
    • E
      iwlagn: fix *_UCODE_API_MAX output in the firmware field · 8fcbd4dc
      Evgeni Golov 提交于
      Currently (3.0-rc2), modinfo iwlagn shows:
          firmware:       iwlwifi-5150-IWL5150_UCODE_API_MAX.ucode
          firmware:       iwlwifi-5000-IWL5000_UCODE_API_MAX.ucode
          firmware:       iwlwifi-6000g2b-IWL6000G2_UCODE_API_MAX.ucode
          firmware:       iwlwifi-6000g2a-IWL6000G2_UCODE_API_MAX.ucode
          firmware:       iwlwifi-6050-IWL6050_UCODE_API_MAX.ucode
          firmware:       iwlwifi-6000-IWL6000_UCODE_API_MAX.ucode
          firmware:       iwlwifi-100-IWL100_UCODE_API_MAX.ucode
          firmware:       iwlwifi-1000-IWL1000_UCODE_API_MAX.ucode
          firmware:       iwlwifi-105-IWL105_UCODE_API_MAX.ucode
          firmware:       iwlwifi-2030-IWL2030_UCODE_API_MAX.ucode
          firmware:       iwlwifi-2000-IWL2000_UCODE_API_MAX.ucode
      
      which is obviously wrong, the user should not see the *_UCODE_API_MAX
      macros but the actual ucode API versions here.
      
      The problem are the
          #define *_MODULE_FIRMWARE(api) *_FW_PRE #api ".ucode"
      which do not expand api correctly (because this is a macro itself).
      
      Fixed by using __stringify() from linux/stringify.h.
      
      Further information about macro stringification can be found here:
          http://gcc.gnu.org/onlinedocs/cpp/Stringification.htmlSigned-off-by: NEvgeni Golov <sargentd@die-welt.net>
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8fcbd4dc
  2. 27 6月, 2011 2 次提交
  3. 25 6月, 2011 2 次提交
  4. 09 6月, 2011 1 次提交
  5. 07 6月, 2011 1 次提交
    • S
      iwlagn: use cts-to-self protection on 5000 adapters series · 42b70a5f
      Stanislaw Gruszka 提交于
      This patch fixes 802.11n stability and performance regression we have
      since 2.6.35. It boost performance on my 5GHz N-only network from about
      5MB/s to 8MB/s. Similar percentage boost can be observed on 2.4 GHz.
      
      These are test results of 5x downloading of approximately 700MB iso
      image:
      
      vanilla: 5.27 5.22 4.94 4.47 5.31 ; avr 5.0420 std 0.35110
      patched: 8.07 7.95 8.06 7.99 7.96 ; avr 8.0060 std 0.055946
      
      This was achieved with NetworkManager configured to do not perform
      periodical scans, by configuring constant BSSID. With periodical scans,
      after some time, performance downgrade to unpatched driver level, like
      in example below:
      
      patched: 7.40 7.61 4.28 4.37 4.80 avr 5.6920 std 1.6683
      
      However patch still make better here, since similar test on unpatched
      driver make link disconnects with below messages after some time:
      
      wlan1: authenticate with 00:23:69:35:d1:3f (try 1)
      wlan1: authenticate with 00:23:69:35:d1:3f (try 2)
      wlan1: authenticate with 00:23:69:35:d1:3f (try 3)
      wlan1: authentication with 00:23:69:35:d1:3f timed out
      
      On 2.6.35 kernel patch helps against connection hangs with messages:
      
      iwlagn 0000:20:00.0: queue 10 stuck 3 time. Fw reload.
      iwlagn 0000:20:00.0: On demand firmware reload
      iwlagn 0000:20:00.0: Stopping AGG while state not ON or starting
      
      Cc: stable@kernel.org # 2.6.35+
      Signed-off-by: NStanislaw Gruszka <sgruszka@redhat.com>
      Acked-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      42b70a5f
  6. 04 6月, 2011 1 次提交
    • S
      iwlagn: fix channel switch locking · 6f213ff1
      Stanislaw Gruszka 提交于
      We use priv->mutex to avoid race conditions between iwl_chswitch_done()
      and iwlagn_mac_channel_switch(), when marking channel switch in
      progress. But iwl_chswitch_done() can be called in atomic context
      from iwl_rx_csa() or with mutex already taken from iwlagn_commit_rxon().
      
      These bugs were introduced by:
      
      commit 79d07325
      Author: Wey-Yi Guy <wey-yi.w.guy@intel.com>
      Date:   Thu May 6 08:54:11 2010 -0700
      
          iwlwifi: support channel switch offload in driver
      
      To fix remove mutex from iwl_chswitch_done() and use atomic bitops for
      marking channel switch pending.
      
      Also remove iwl2030_hw_channel_switch() since 2000 series adapters are
      2.4GHz only devices.
      
      Cc: stable@kernel.org # 2.6.36+
      Signed-off-by: NStanislaw Gruszka <sgruszka@redhat.com>
      Acked-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      6f213ff1
  7. 01 6月, 2011 1 次提交
  8. 25 5月, 2011 1 次提交
  9. 20 5月, 2011 1 次提交
  10. 17 5月, 2011 1 次提交
    • S
      iwlwifi: Silence DEBUG_STRICT_USER_COPY_CHECKS=y warning · 805d7d23
      Stephen Boyd 提交于
      Enabling DEBUG_STRICT_USER_COPY_CHECKS causes the following
      warning:
      
      In file included from arch/x86/include/asm/uaccess.h:573,
                       from include/net/checksum.h:25,
                       from include/linux/skbuff.h:28,
                       from drivers/net/wireless/iwlwifi/iwl-agn-rs.c:28:
      In function 'copy_from_user',
          inlined from 'rs_sta_dbgfs_scale_table_write' at
          drivers/net/wireless/iwlwifi/iwl-agn-rs.c:3099:
      arch/x86/include/asm/uaccess_64.h:65:
      warning: call to 'copy_from_user_overflow' declared with
      attribute warning: copy_from_user() buffer size is not provably
      correct
      
      presumably due to buf_size being signed causing GCC to fail to
      see that buf_size can't become negative.
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      805d7d23
  11. 14 5月, 2011 13 次提交
  12. 11 5月, 2011 2 次提交
  13. 07 5月, 2011 7 次提交
    • J
      iwlagn: check DMA mapping errors · 2c46f72e
      Johannes Berg 提交于
      DMA mappings can fail, but the current code
      doesn't check for that. Add checking, which
      requires some restructuring for proper error
      paths.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      2c46f72e
    • J
      iwlagn: remove bytecount indirection · 94b00658
      Johannes Berg 提交于
      All AGN devices need the bytecount table, so
      remove the indirection and make the functions
      static again.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      94b00658
    • J
      iwlagn: dont update bytecount table for command queue · ccb6c1c0
      Johannes Berg 提交于
      The device doesn't use the bytecount table for the
      command queue, only for aggregation queues to make
      aggregation decisions. So don't update it for the
      command queue (and we even updated it with wrong
      values).
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      ccb6c1c0
    • J
      iwlagn: remove unused variable · 4c2cde3b
      Johannes Berg 提交于
      The variable 'len' here is set but never used.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      4c2cde3b
    • J
      iwlagn: remove frame pre-allocation · 8a98d49e
      Johannes Berg 提交于
      The frame pre-allocation is quite a bit of complex
      code, all to avoid a single allocation. Remove it
      and consolidate the beacon sending code.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      8a98d49e
    • J
      iwlagn: remove get_hcmd_size indirection · 46975f78
      Johannes Berg 提交于
      There's no need for this, all commands are the right size.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      46975f78
    • C
      iwlwifi: support the svtool messages interactions through nl80211 test mode · 4613e72d
      Cindy H. Kao 提交于
      This patch adds the feature to support the test mode operation through
      the generic netlink channel NL80211_CMD_TESTMODE between intel
      wireless device iwlwifi and the user space application svtool.
      
      The main purpose is to create a transportation layer between the iwlwifi
      device and the user space application so that the interaction between the
      user space application svtool and the iwlwifi device in the kernel space is
      in a way of generic netlink messaging.
      
      The detail specific functions are:
      
      1. The function iwl_testmode_cmd() is added to digest the svtool test command
         from the user space application. The svtool test commands are categorized  to
         three types : commands to be processed by the device ucode, commands to access
         the registers, and commands to be processed at the driver level(such as reload
         the ucode). iwl_testmode_cmd() dispatches the commands the corresponding handlers
         and reply to user space regarding the command execution status. Extra data is
         returned to the user space application if there's any.
      
      2. The function iwl_testmode_ucode_rx_pkt() is added to multicast all the spontaneous
         messages from the iwlwifi device to the user space. Regardless the message types,
         whenever there is a valid spontaneous message received by the iwlwifi ISR,
         iwl_testmode_ucode_rx_pkt() is invoked to multicast the message content to user
         space. The message content is not attacked and the message parsing is left to
         the user space application.
      
      Implementation guidelines:
      
      1. The generic netlink messaging for iwliwif test mode is through  NL80211_CMD_TESTMODE
         channel, therefore, the codes need to follow the regulations set by cfg80211.ko
         to get the actual device instance ieee80211_ops via cfg80211.ko, so that the iwlwifi
         device is indicated with ieee80211_ops and can be actually accessed.
      
         Therefore, a callback iwl_testmode_cmd() is added to the structure
         iwlagn_hw_ops in iwl-agn.c.
      
      2. It intends to utilize those low level device access APIs from iwlwifi device driver
         (ie. iwlagn.ko) rather than creating it's own set of device access functions.
         For example, iwl_send_cmd(), iwl_read32(), iwl_write8(), and iwl_write32() are reused.
      
      3. The main functions are maintained in new files instead of spreading all over the
         existing iwlwifi driver files.
      
         The new files added are :
      
         drivers/net/wireless/iwlwifi/iwl-sv-open.c
              - to handle the user space test mode application command
                and reply the respective command status to the user space application.
              - to multicast the spontaneous messages from device to user space.
      
         drivers/net/wireless/iwlwifi/iwl-testmode.h
              - the commonly referenced definitions for the TLVs used in
                the generic netlink messages
      Signed-off-by: NCindy H. Kao <cindy.h.kao@intel.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      4613e72d
  14. 01 5月, 2011 1 次提交
  15. 30 4月, 2011 5 次提交