1. 16 10月, 2010 2 次提交
  2. 17 8月, 2010 2 次提交
    • F
      ath9k: use AP beacon miss as a trigger for fast recalibration · 70cf1533
      Felix Fietkau 提交于
      When beacons get stuck in AP mode, the most likely cause is interference.
      Such interference can often go on for a while, and too many consecutive
      beacon misses can lead to connected clients getting dropped.
      
      Since connected clients might not be subjected to the same interference
      if that happens to be very local, the AP should try to deal with it as
      good as it can. One way to do this is to trigger an NF calibration with
      automatic baseband update right after the beacon miss. In my tests with
      very strong interference, this allowed the AP to continue transmitting
      beacons after only 2-3 misses, which allows a normal client to stay
      connected.
      
      With some of the newer - really sensitive - chips, the maximum noise
      floor limit is very low, which can be problematic during very strong
      interference. To avoid an endless loop of stuck beacons -> nfcal ->
      periodic calibration -> stuck beacons, the beacon miss event also sets
      a flag, which allows the calibration code to bypass the chip specific
      maximum NF value. This flag is automatically cleared, as soon as the
      first NF median goes back below the limits for all chains.
      
      In my tests, this allowed an ath9k AP to survive very strong interference
      (measured NF: -68, or sometimes even higher) without losing connectivity
      to its clients. Even under these conditions, I was able to transmit
      several mbits/s through the interface.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      70cf1533
    • F
      ath9k: add a separate debug level for stuck beacons · 6252fcb9
      Felix Fietkau 提交于
      Stuck beacons are a useful indicator for debugging various PHY
      issues such as calibration. Putting them on the same debug level
      as the other beacon stuff makes it hard to spot them in huge amounts
      of spam.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      6252fcb9
  3. 15 6月, 2010 1 次提交
  4. 25 5月, 2010 2 次提交
  5. 17 4月, 2010 2 次提交
  6. 07 4月, 2010 1 次提交
  7. 20 2月, 2010 1 次提交
    • F
      ath9k: fix beacon timer restart after a card reset · d8728ee9
      Felix Fietkau 提交于
      In AP mode, ath_beacon_config_ap only restarts the timer if a TSF
      restart is requested. Apparently this was added, because this function
      unconditionally sets the flag for TSF reset.
      
      The problem with this is, that ath9k_hw_reset() clobbers the timer
      registers (specified in the initvals), thus effectively disabling the
      SWBA interrupt whenever a card reset without TSF reset is issued
      (happens in a few places in the code).
      
      This patch fixes ath_beacon_config_ap to only issue the TSF reset flag
      when necessary, but reinitialize the timer unconditionally. Tests show,
      that this is enough to keep the SWBA interrupt going after a call to
      ath_reset()
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Cc: stable@kernel.org
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      d8728ee9
  8. 17 2月, 2010 1 次提交
  9. 09 2月, 2010 1 次提交
  10. 16 1月, 2010 1 次提交
  11. 29 11月, 2009 2 次提交
  12. 08 10月, 2009 5 次提交
  13. 11 7月, 2009 1 次提交
  14. 04 6月, 2009 2 次提交
    • J
      ath9k: Add sanity check for beacon_int in adhoc/mesh case · 546256fb
      Jouni Malinen 提交于
      It looks like mac80211 can request the driver to start beaconing with
      a beacon interval of zero in some cases (at least for mesh point). This
      does not sound correct and something may need to be fixed in
      mac80211. However, taken into account the unpleasantness of getting
      stuck in an infinite busy loop with rtnl_lock held, let's add a quick
      workaround in the driver to avoid the worst symptom while someone more
      familiar with the mesh implementation can figure out what should be done
      with mac80211 as far as beacon interval configuration is concerned.
      Signed-off-by: NJouni Malinen <jouni.malinen@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      546256fb
    • J
      ath9k: Reset SC_OP_TSF_RESET flag after stuck beacon · b74444f8
      Jeff Hansen 提交于
      I have a TrendNet 652-BRP running OpenWRT + ath9k very well.  The only
      problem is that the beacon gets stuck maybe once a day.  After
      Vasanthakumar Thiagarajan's "ath9k: cleanup beacon parameters
      configuration" patch, ath9k would nearly re-configure the beacons after it
      detected the stuck beacon, and did a reset.  But it would fail the
      SC_OP_TSF_RESET check in ath_beacon_config_ap.  This patch gets the beacon
      fully reconfigured after the reset.
      Signed-off-by: NJeff Hansen <x@jeffhansen.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      b74444f8
  15. 23 5月, 2009 1 次提交
    • J
      ath9k: Optimize TBTT/DTIM calculation for timers · 267a9012
      Jouni Malinen 提交于
      The previous version used a simple loop to go through all Beacon
      frames when determining the next TBTT and DTIM count. This is not too
      bad for the case where the setup happens before timesync (i.e., very
      small TSF), but this can become very heavy operation if a short Beacon
      interval is used and the current TSF is large.
      
      In preparation for a patch to update timer setup based on Beacon
      timestamp, optimize this routine to take fixed time regardless of the
      actual TSF value.
      Signed-off-by: NJouni Malinen <jouni.malinen@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      267a9012
  16. 21 5月, 2009 2 次提交
  17. 07 5月, 2009 2 次提交
    • L
      ath9k: make private driver rate tables const · 4f0fc7c3
      Luis R. Rodriguez 提交于
      On x86 this allows us to do the following small savings:
      shave off 23 % off of the module's data, and
      shave off 6  % off of the module's text.
      
      We save 456 bytes, for those counting.
      
      $ size ath9k.ko
         text    data     bss     dec     hex filename
       250794    3628    1600  256022   3e816 ath9k.ko
      $ size ath9k-old.ko
         text    data     bss     dec     hex filename
       239114   15308    1600  256022   3e816 ath9k-old.ko
      
      $ du -b ath9k.ko
      4034244 ath9k.ko
      $ du -b ath9k-old.ko
      4033788 ath9k-old.ko
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      4f0fc7c3
    • J
      mac80211: clean up beacon interval settings · 57c4d7b4
      Johannes Berg 提交于
      We currently have two beacon interval configuration knobs:
      hw.conf.beacon_int and vif.bss_info.beacon_int. This is
      rather confusing, even though the former is used when we
      beacon ourselves and the latter when we are associated to
      an AP.
      
      This just deprecates the hw.conf.beacon_int setting in favour
      of always using vif.bss_info.beacon_int. Since it touches all
      the beaconing IBSS code anyway, we can also add support for
      the cfg80211 IBSS beacon interval configuration easily.
      
      NOTE: The hw.conf.beacon_int setting is retained for now due
            to drivers still using it -- I couldn't untangle all
            drivers, some are updated in this patch.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      57c4d7b4
  18. 23 4月, 2009 3 次提交
  19. 28 3月, 2009 3 次提交
  20. 06 3月, 2009 5 次提交