1. 20 Aug, 2009 40 commits
    • Vasanthakumar Thiagarajan's avatar
      ath9k: Fix bug in retrieving average beacon rssi · ff360416
      Vasanthakumar Thiagarajan authored
      Currently the beacon rssi that LPF gives is divided and rounded
      up by ATH_RSSI_EP_MULTIPLIER twice. This will leave the incorrect rssi
      in ANI. Having correct rssi in ANI fixes the connection stability at
      < 30dB rssi range. This patch removes the unncessary computation of average
      rssi over already valid average rssi. Also removes the redundant macros to
      find average rssi.
      Signed-off-by: default avatarVasanthakumar Thiagarajan <vasanth@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      ff360416
    • gregor kowski's avatar
      b43: add hardware tkip · 035d0243
      gregor kowski authored
      This add hardware tkip for b43.
      Signed-off-by: default avatarGregor Kowski <gregor.kowski@gmail.com>
      Acked-by: default avatarMichael Buesch <mb@bu3sch.de>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      035d0243
    • Johannes Berg's avatar
      mac80211: fix register_hw error path · 11ba964d
      Johannes Berg authored
      "cfg80211: fix alignment problem in scan request"
      introduced a bug into the error path, because now
      we allocate the entire scan request and not just
      the channel list (the channel list is allocated
      together with the scan request) -- on errors we
      thus also need to free the entire scan request.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      11ba964d
    • Gábor Stefanik's avatar
      b43: LP-PHY: Implement spec updates and remove resolved FIXMEs · 5904d206
      Gábor Stefanik authored
      Larry has started re-checking all current routines against a new
      version of the Broadcom MIPS driver. This patch implements the first
      round of changes he documented on the specs wiki.
      
      Also remove a few FIXMEs regarding missing initial values for variables
      with dynamic initial values where reading the values has been implemented.
      Signed-off-by: default avatarGábor Stefanik <netrolller.3d@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      5904d206
    • Zhu Yi's avatar
      cfg80211: allow cfg80211_connect_result with bssid == NULL · 16a832e7
      Zhu Yi authored
      In case of connection failure, the bssid info is not a must have.
      Signed-off-by: default avatarZhu Yi <yi.zhu@intel.com>
      Acked-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      16a832e7
    • David Kilroy's avatar
      30fab9e0
    • David Kilroy's avatar
      cfg80211: fix leaks of wdev->conn->ie · 415ad1ef
      David Kilroy authored
      This only occurs in the following error situations:
       - driver calls connect_result with failure
       - error scheduling authentication on connect
       - error initiating scan (to get BSSID and channel) on
         connect
       - userspace calls disconnect while in the SCANNING or
         SCAN_AGAIN states
      Signed-off-by: default avatarDavid Kilroy <kilroyd@googlemail.com>
      Reviewed-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      415ad1ef
    • Christian Lamparter's avatar
      ar9170: refactor configure_filter · eeef4185
      Christian Lamparter authored
      Thanks to "mac80211: allow configure_filter callback to sleep",
      we no longer have to defer the work to the workqueue.
      Signed-off-by: default avatarChristian Lamparter <chunkeey@web.de>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      eeef4185
    • Gábor Stefanik's avatar
      b43: LP-PHY: Two small spec updates · 5791ce18
      Gábor Stefanik authored
      The specs are beginning to support rev3 LP-PHYs - implement one of
      the changes needed for rev3 support.
      Also, in the new MIPS driver, the "Japan TX filter" was renamed to
      "analog TX filter init" - however, calling it "init" is confusing,
      so name it "set analog filter", with a comment for easier future
      identification.
      Signed-off-by: default avatarGábor Stefanik <netrolller.3d@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      5791ce18
    • Ivo van Doorn's avatar
      rt2x00: bss_info_changed() callback is allowed to sleep · d904dc17
      Ivo van Doorn authored
      The bss_info_changed() callback function no longer needs
      to be atomic. Remove the scheduled work structure and
      call into the driver directly.
      
      Additionaly this makes the DRIVER_REQUIRE_SCHEDULED
      flag redundant so it can be removed.
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      d904dc17
    • Ivo van Doorn's avatar
      rt2x00: configure_filter() callback is allowed to sleep · afa62042
      Ivo van Doorn authored
      The configure_filter() callback function no longer needs
      to be atomic. Remove the scheduled work structure and
      call into the driver configure_filter() directly.
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      afa62042
    • Johannes Berg's avatar
      cfg80211: fix dangling scan request checking · ad002395
      Johannes Berg authored
      My patch "cfg80211: fix deadlock" broke the code it
      was supposed to fix, the scan request checking. But
      it's not trivial to put it back the way it was, since
      the original patch had a deadlock.
      
      Now do it in a completely new way: queue the check
      off to a work struct, where we can freely lock. But
      that has some more complications, like needing to
      wait for it to be done before the wiphy/rdev can be
      destroyed, so some code is required to handle that.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      ad002395
    • Reinette Chatre's avatar
      ipw2x00: fix sparse warnings · 21f8a73f
      Reinette Chatre authored
      This fixes:
      
        CHECK   drivers/net/wireless/ipw2x00/ipw2100.c
      drivers/net/wireless/ipw2x00/ipw2100.c:7888:22: warning: symbol 'mode' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2100.c:188:12: originally declared here
      drivers/net/wireless/ipw2x00/ipw2100.c:7952:18: warning: symbol 'mode' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2100.c:188:12: originally declared here
      drivers/net/wireless/ipw2x00/ipw2100.c:8000:18: warning: symbol 'mode' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2100.c:188:12: originally declared here
      drivers/net/wireless/ipw2x00/ipw2100.c:8268:27: warning: symbol '_min1' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2100.c:8268:27: originally declared here
      drivers/net/wireless/ipw2x00/ipw2100.c:8268:27: warning: symbol '_min1' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2100.c:8268:27: originally declared here
      drivers/net/wireless/ipw2x00/ipw2100.c:8268:27: warning: symbol '_min2' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2100.c:8268:27: originally declared here
        CC [M]  drivers/net/wireless/ipw2x00/ipw2100.o
        CHECK   drivers/net/wireless/ipw2x00/ipw2200.c
      drivers/net/wireless/ipw2x00/ipw2200.c:847:13: warning: symbol 'led' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:92:12: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:891:13: warning: symbol 'led' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:92:12: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:935:13: warning: symbol 'led' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:92:12: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:980:13: warning: symbol 'led' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:92:12: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:1016:13: warning: symbol 'led' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:92:12: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:1051:13: warning: symbol 'led' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:92:12: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:1823:13: warning: symbol 'channel' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:86:12: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min1' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min1' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min1' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min1' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min2' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min1' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min1' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min2' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min1' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min2' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min2' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min1' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min1' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min1' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min2' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min1' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min2' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min2' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min1' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min1' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min2' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min1' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min2' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min2' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: warning: symbol '_min2' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:4268:19: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:6228:28: warning: symbol 'channel' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:86:12: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:6369:20: warning: symbol 'channel' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:86:12: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:6857:12: warning: symbol 'mode' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:87:12: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:7964:13: warning: symbol 'channel' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:86:12: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:8720:12: warning: symbol 'channel' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:86:12: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:9662:13: warning: symbol 'mode' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:87:12: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:9720:13: warning: symbol 'mode' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:87:12: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:9826:13: warning: symbol 'mode' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:87:12: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:10318:21: warning: symbol 'remaining_bytes' shadows an earlier one
      drivers/net/wireless/ipw2x00/ipw2200.c:10184:13: originally declared here
      drivers/net/wireless/ipw2x00/ipw2200.c:8338:45: warning: cast to restricted __le16
      drivers/net/wireless/ipw2x00/ipw2200.c:4414:21: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/ipw2x00/ipw2200.c:4414:21:    expected restricted __le16 [usertype] size
      drivers/net/wireless/ipw2x00/ipw2200.c:4414:21:    got unsigned short [unsigned] [usertype] <noident>
      drivers/net/wireless/ipw2x00/ipw2200.c:6105:33: warning: incorrect type in initializer (different base types)
      drivers/net/wireless/ipw2x00/ipw2200.c:6105:33:    expected restricted __le16 [usertype] tx_rates
      drivers/net/wireless/ipw2x00/ipw2200.c:6105:33:    got unsigned short [unsigned] [usertype] rates_mask
      drivers/net/wireless/ipw2x00/ipw2200.c:6124:29: warning: bad assignment (>>=) to restricted __le16
      drivers/net/wireless/ipw2x00/ipw2200.c:6130:31: warning: restricted __le16 degrades to integer
      drivers/net/wireless/ipw2x00/ipw2200.c:6140:23: warning: restricted __le16 degrades to integer
      drivers/net/wireless/ipw2x00/ipw2200.c:6149:54: warning: restricted __le16 degrades to integer
      drivers/net/wireless/ipw2x00/ipw2200.c:6151:37: warning: invalid assignment: &=
      drivers/net/wireless/ipw2x00/ipw2200.c:6151:37:    left side has type restricted __le16
      drivers/net/wireless/ipw2x00/ipw2200.c:6151:37:    right side has type int
      drivers/net/wireless/ipw2x00/ipw2200.c:6154:54: warning: restricted __le16 degrades to integer
      drivers/net/wireless/ipw2x00/ipw2200.c:6156:37: warning: invalid assignment: &=
      drivers/net/wireless/ipw2x00/ipw2200.c:6156:37:    left side has type restricted __le16
      drivers/net/wireless/ipw2x00/ipw2200.c:6156:37:    right side has type int
      drivers/net/wireless/ipw2x00/ipw2200.c:6159:55: warning: restricted __le16 degrades to integer
      drivers/net/wireless/ipw2x00/ipw2200.c:6161:37: warning: invalid assignment: &=
      drivers/net/wireless/ipw2x00/ipw2200.c:6161:37:    left side has type restricted __le16
      drivers/net/wireless/ipw2x00/ipw2200.c:6161:37:    right side has type int
      drivers/net/wireless/ipw2x00/ipw2200.c:6164:29: warning: invalid assignment: |=
      drivers/net/wireless/ipw2x00/ipw2200.c:6164:29:    left side has type restricted __le16
      drivers/net/wireless/ipw2x00/ipw2200.c:6164:29:    right side has type unsigned short
      drivers/net/wireless/ipw2x00/ipw2200.c:7853:29: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/ipw2x00/ipw2200.c:7853:29:    expected signed char [signed] [usertype] [explicitly-signed] rt_dbmnoise
      drivers/net/wireless/ipw2x00/ipw2200.c:7853:29:    got restricted __le16 [usertype] noise
      drivers/net/wireless/ipw2x00/ipw2200.c:7967:25: warning: incorrect type in initializer (different base types)
      drivers/net/wireless/ipw2x00/ipw2200.c:7967:25:    expected signed char [signed] [usertype] [explicitly-signed] noise
      drivers/net/wireless/ipw2x00/ipw2200.c:7967:25:    got restricted __le16 [usertype] noise
      Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
      Cc: Zhu Yi <yi.zhu@intel.com>
      Acked-by: default avatarZhu Yi <yi.zhu@intel.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      21f8a73f
    • Daniel Walker's avatar
      mac80211: New stat counters for multicast and unicast forwarded frames · c8a61a7d
      Daniel Walker authored
      This expands on the current fwded_frames stat counter which should be equal to
      the total of these two new counters.  The new counters are called "fwded_mcast"
      and "fwded_unicast".
      Signed-off-by: default avatarDaniel Walker <dwalker@fifo99.com>
      Signed-off-by: default avatarJavier Cardona <javier@cozybit.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      c8a61a7d
    • John W. Linville's avatar
      wl1271: remove print_mac usage · e5539bcb
      John W. Linville authored
      CC [M]  drivers/net/wireless/wl12xx/wl1271_main.o
      drivers/net/wireless/wl12xx/wl1271_main.c: In function ‘wl1271_op_add_interface’:
      drivers/net/wireless/wl12xx/wl1271_main.c:611: warning: ‘print_mac’ is deprecated (declared at include/linux/if_ether.h:142)
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      e5539bcb
    • John W. Linville's avatar
      rc80211_pid_algo.c: remove unused variable declaration · 29508d12
      John W. Linville authored
      CC [M]  net/mac80211/rc80211_pid_algo.o
      net/mac80211/rc80211_pid_algo.c: In function ‘rate_control_pid_rate_init’:
      net/mac80211/rc80211_pid_algo.c:304: warning: unused variable ‘si’
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      29508d12
    • Luis R. Rodriguez's avatar
      ath: move regulatory info into shared common structure · 608b88cb
      Luis R. Rodriguez authored
      This moves the shared regulatory structure into the
      common structure. We will use this ongoing for common
      data.
      Signed-off-by: default avatarLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      608b88cb
    • Sujith's avatar
      ath9k: Fix TX poll cancelling · 4c483817
      Sujith authored
      In ath9k_stop(), tx_complete_work was being cancelled twice.
      This patch fixes it. Also, locking sc->mutex should be done
      at the beginning.
      Signed-off-by: default avatarSujith <Sujith.Manoharan@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      4c483817
    • Bob Copeland's avatar
      wl1251: halt the embedded CPU before loading firmware · bcd64e0c
      Bob Copeland authored
      After initial power-up, the embedded cpu is usually halted.  However,
      if we down the interface and only do a soft reset before bringing
      the interface back up, it will still be running and the firmware
      loading code will bail out.  This change halts the CPU before loading
      the firmware, enabling a second call to wl1251_boot() to succeed
      without a hard reset.
      Signed-off-by: default avatarBob Copeland <me@bobcopeland.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      bcd64e0c
    • Javier Cardona's avatar
      mac80211: Decouple fail_avg stats used by mesh from rate control algorithm. · bfc32e6a
      Javier Cardona authored
      Mesh uses the tx failure average to compute the (m)path metric.  This used to
      be done inside the rate control module.  This patch breaks the dependency
      between the mesh stack and the rate control algorithm.  Mesh will now work
      independently of the chosen rate control algorithm.
      
      The mesh stack keeps a moving average of the average transmission losses for
      each mesh peer station.  If the fail average exceeds a certain threshold, the
      peer link is marked as broken.
      Signed-off-by: default avatarJavier Cardona <javier@cozybit.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      bfc32e6a
    • Benoit PAPILLAULT's avatar
      rt2x00: Add support for retry rates · 92ed48e5
      Benoit PAPILLAULT authored
      rt2800pci can handle different retry rates,
      it will always step 1 rate down after a failed
      transmission so creating the retry rate list
      for mac80211 is quite simple.
      Signed-off-by: default avatarBenoit PAPILLAULT <benoit.papillault@free.fr>
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      92ed48e5
    • Ivo van Doorn's avatar
      rt2x00: Fix MCS register intialization · cd80b684
      Ivo van Doorn authored
      According to the original Ralink driver,
      LG_FBK_CFG0_OFDMMCS2FBK should be initialized to 9 rather then 3.
      
      Based on a patch for rt2800pci from Benoit
      Signed-off-by: default avatarBenoit PAPILLAULT <benoit.papillault@free.fr>
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      cd80b684
    • Ivo van Doorn's avatar
      rt2x00: wireless CLI ID and packet ID must not be 0 · 534aff02
      Ivo van Doorn authored
      In the TX descriptor the Packet ID must not be 0,
      so add 1 to the ID. The wireless CLI ID is not allowed
      to be 0 either, but also must be initialized with the
      wcid value rather then keyid.
      
      Based on a patch for rt2800pci from Benoit
      Signed-off-by: default avatarBenoit PAPILLAULT <benoit.papillault@free.fr>
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      534aff02
    • Ivo van Doorn's avatar
      rt2x00: Set SKBDESC_L2_PADDED in RX path · 0fefe0fd
      Ivo van Doorn authored
      When the RX descriptor indicates the frame was L2 padded,
      the SKBDESC_L2_PADDED flag should be set to make sure the
      L2 padding is removed before it is send to mac80211.
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      0fefe0fd
    • Ivo van Doorn's avatar
      rt2x00: Add new RF chip defines · 05a32730
      Ivo van Doorn authored
      Add new defines for RF chipsets which can be found
      by the driver. We don't have to check for these
      chips specifically yet, but it is better to have
      the defines in now.
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      05a32730
    • Ivo van Doorn's avatar
      rt2x00: Fix for rt2800usb for SHARED_KEY_TABLE initializations · 1738c9e4
      Ivo van Doorn authored
      Fixed comments about SHARED_KEY_TABLE_BASE and SHARED_KEY_MODE_BASE.
      Fixed initialization loop for SHARED_KEY_MODE_ENTRY.
      
      Based on a patch for rt2800pci from Benoit.
      Signed-off-by: default avatarBenoit PAPILLAULT <benoit.papillault@free.fr>
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      1738c9e4
    • Ivo van Doorn's avatar
      rt2x00: Fix RFKILL polling · 73077c85
      Ivo van Doorn authored
      The rfkill_poll callback function in the drivers check a bit
      to see if the RFKILL key has been pressed. However when the
      bit is set it means the radio is active and the device can be
      used.
      
      The wiphy_rfkill_set_hw_state() function expects the inversed,
      so '1' must be send when the radio must be disabled.
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      73077c85
    • Gábor Stefanik's avatar
      b43: LP-PHY: Fix setting TX power control mode during RC calibration · 5f1c07d9
      Gábor Stefanik authored
      Call set_tx_power_control with a LPPHY_TXPCTL rather than an
      LPPHY_TX_PWR_CTL_CMD_MODE.
      Signed-off-by: default avatarGábor Stefanik <netrolller.3d@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      5f1c07d9
    • Gábor Stefanik's avatar
      b43: LP-PHY: Fix reading old mode in the set TX power control routine · 12d4bba0
      Gábor Stefanik authored
      Check the mode the hardware is in, not the mode we used the last time.
      Signed-off-by: default avatarGábor Stefanik <netrolller.3d@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      12d4bba0
    • Bob Copeland's avatar
      wl1251: correct definitions for 0th bit defines · 1de6f73c
      Bob Copeland authored
      ACX_SLV_SOFT_RESET_BIT and ACX_REG_EEPROM_START_BIT are both defined
      as "1" in the vendor driver code, but they were defined to be BIT(1)
      ("2") here.
      
      The SOFT_RESET typo ensures that wl1251_boot_soft_reset() doesn't;
      as a result the device hangs when trying to reprogram the PLL
      registers while running.
      Signed-off-by: default avatarBob Copeland <me@bobcopeland.com>
      Acked-by: default avatarKalle Valo <kalle.valo@nokia.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      1de6f73c
    • Johannes Berg's avatar
      mac80211: remove deprecated API · f424afa1
      Johannes Berg authored
      All but two drivers have now stopped using the two
      deprecated members radio_enabled and beacon_int,
      so it's about time to remove them for good.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Acked-by: default avatarKalle Valo <kalle.valo@iki.fi>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      f424afa1
    • Johannes Berg's avatar
      mac80211: allow configure_filter callback to sleep · 3ac64bee
      Johannes Berg authored
      Over time, a whole bunch of drivers have come up
      with their own scheme to delay the configure_filter
      operation to a workqueue. To be able to simplify
      things, allow configure_filter to sleep, and add
      a new prepare_multicast callback that drivers that
      need the multicast address list implement. This new
      callback must be atomic, but most drivers either
      don't care or just calculate a hash which can be
      done atomically and then uploaded to the hardware
      non-atomically.
      
      A cursory look suggests that at76c50x-usb, ar9170,
      mwl8k (which is actually very broken now), rt2x00,
      wl1251, wl1271 and zd1211 should make use of this
      new capability.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      3ac64bee
    • Johannes Berg's avatar
      cfg80211: report userspace SME connected event properly · ea416a79
      Johannes Berg authored
      Instead of hacking the event reporting into the
      __cfg80211_connect_result() function which is also
      invoked by others, set up things correctly and then
      invoke that function, so that it can do more sanity
      checking.
      
      Also, it is currently not possible to get a ROAMED
      event from the userspace SME anyway since we send
      out a DISCONNECTED event when it disassociates and
      then a new CONNECTED event on the next association.
      
      Thanks to Zhu Yi for pointing out that the code is
      somewhat convoluted and doesn't warn when it should.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      ea416a79
    • Gábor Stefanik's avatar
      b43: LP-PHY: Remove BROKEN from B43_PHY_LP · 86b2892a
      Gábor Stefanik authored
      Larry has reported success getting scan data with an LP-PHY device,
      so it's probably time to release LP-PHY support for testing.
      
      Also disable 802.11a support for now, as 802.11a currently causes
      the driver to panic on startup (NULL pointer dereference).
      Signed-off-by: default avatarGábor Stefanik <netrolller.3d@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      86b2892a
    • Gábor Stefanik's avatar
      b43: LP-PHY: Update B2062 radio init with recent spec changes · 7e4d8529
      Gábor Stefanik authored
      The spec for initializing the B2062 radio have changed recently,
      update the code to match the changes.
      Signed-off-by: default avatarGábor Stefanik <netrolller.3d@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      7e4d8529
    • Gábor Stefanik's avatar
      b43: LP-PHY: Fix a bug in the B2062 channel tune path · ed07c4b3
      Gábor Stefanik authored
      I missed the "+16" part of the instruction in the specs.
      Signed-off-by: default avatarGábor Stefanik <netrolller.3d@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      ed07c4b3
    • Gábor Stefanik's avatar
      b43: LP-PHY: Update code for spec fixes, and fix a few typos · 5269102e
      Gábor Stefanik authored
      A few typos have been discovered in both the specs and the code.
      This patch fixes them.
      
      Also use lpphy_op_switch_channel consistently, and make all users
      of it print its return value for easier debugging.
      Signed-off-by: default avatarGábor Stefanik <netrolller.3d@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      5269102e
    • Gábor Stefanik's avatar
      b43: LP-PHY: Fix a spec error in the B2062 channel switch routine · 055114a3
      Gábor Stefanik authored
      The channel switch routine had a whole instruction missing. Add it.
      Signed-off-by: default avatarGábor Stefanik <netrolller.3d@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      055114a3
    • Johannes Berg's avatar
      cfg80211: fix deadlock · 0ff6ce7b
      Johannes Berg authored
      When removing an interface with nl80211, cfg80211 will
      deadlock in the netdev notifier because we're already
      holding rdev->mtx and try to acquire it again to verify
      the scan has been done.
      
      This bug was introduced by my patch
      "cfg80211: check for and abort dangling scan requests".
      
      To fix this, move the dangling scan request check into
      wiphy_unregister(). This will not be able to catch all
      cases right away, but if the scan problem happens with
      a manual ifdown or so it will be possible to remedy it
      by removing the module/device.
      
      Additionally, add comments about the deadlock scenario.
      Reported-by: default avatarChristian Lamparter <chunkeey@web.de>
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Tested-by: default avatarChristian Lamparter <chunkeey@web.de>
      Tested-by: default avatarKalle Valo <kalle.valo@iki.fi>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      0ff6ce7b
    • Gábor Stefanik's avatar
      b43: LP-PHY: Update baseband init for recent spec changes · 96909e97
      Gábor Stefanik authored
      The spec had some nasty typos, and a large part of the rev0/1 BB
      init procedure was also missing. Fix these.
      
      Also make the init-time channel switch debuggable.
      
      (The change from -EINVAL to -EIO is simply to make it possible
      to distinguish the PLL charge pump error from a channel-not-found
      error.)
      Signed-off-by: default avatarGábor Stefanik <netrolller.3d@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      96909e97