1. 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
  2. 05 8月, 2010 3 次提交
    • F
      ath9k_hw: fix a noise floor calibration related race condition · 4254bc1c
      Felix Fietkau 提交于
      On AR5008-AR9002, other forms of calibration must not be started while
      the noise floor calibration is running, as this can create invalid
      readings which were sometimes not even recoverable by any further
      calibration attempts.
      
      This patch also ensures that the result of noise floor measurements
      are processed faster and also allows the result of the initial
      calibration on reset to make it into the NF history buffer
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      4254bc1c
    • F
      ath9k_hw: clean up per-channel calibration data · 20bd2a09
      Felix Fietkau 提交于
      The noise floor history buffer is currently not kept per channel, which
      can lead to problems when changing channels from a clean channel to a
      noisy one. Also when switching from HT20 to HT40, the noise floor
      history buffer is full of measurements, but none of them contain data
      for the extension channel, which it needs quite a bit of time to recover
      from.
      
      This patch puts all the per-channel calibration data into a single data
      structure, and gives the the driver control over whether that is used
      per-channel or even not used for some channels.
      
      For ath9k_htc, I decided to keep this per-channel in order to avoid
      creating regressions.
      
      For ath9k, the data is kept only for the operating channel, which saves
      some space. ath9k_hw takes care of wiping old data when the operating
      channel or its channel flags change.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      20bd2a09
    • F
      ath9k_hw: clean up and fix initial noise floor calibration · 00c86590
      Felix Fietkau 提交于
      On AR9003 the initial noise floor calibration is currently triggered
      at the end of the reset without allowing the hardware to update the
      baseband settings. This could potentially make scans in noisy
      environments a bit more unreliable, so use the same calibration
      sequence that is used on AR9002.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Acked-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      00c86590
  3. 27 7月, 2010 2 次提交
  4. 13 7月, 2010 1 次提交
    • F
      ath9k: merge noisefloor load implementations · bbacee13
      Felix Fietkau 提交于
      AR5008+ and AR9003 currently use two separate implementations of the
      ath9k_hw_loadnf function. There are three main differences:
      
       - PHY registers for AR9003 are different
       - AR9003 always uses 3 chains, earlier versions are more selective
       - The AR9003 variant contains a fix for NF load timeouts
      
      This patch merges the two implementations into one, storing the
      register array in the ath_hw struct. The fix for NF load timeouts is
      not just relevant for AR9003, but also important for earlier hardware,
      so it's better to just keep one common implementation.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      bbacee13
  5. 03 7月, 2010 2 次提交
  6. 14 5月, 2010 1 次提交
    • J
      drivers/net: Remove unnecessary returns from void function()s · a4b77097
      Joe Perches 提交于
      This patch removes from drivers/net/ all the unnecessary
      return; statements that precede the last closing brace of
      void functions.
      
      It does not remove the returns that are immediately
      preceded by a label as gcc doesn't like that.
      
      It also does not remove null void functions with return.
      
      Done via:
      $ grep -rP --include=*.[ch] -l "return;\n}" net/ | \
        xargs perl -i -e 'local $/ ; while (<>) { s/\n[ \t\n]+return;\n}/\n}/g; print; }'
      
      with some cleanups by hand.
      
      Compile tested x86 allmodconfig only.
      Signed-off-by: NJoe Perches <joe@perches.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a4b77097
  7. 17 4月, 2010 12 次提交
  8. 08 4月, 2010 1 次提交
  9. 24 3月, 2010 3 次提交
  10. 31 10月, 2009 1 次提交
  11. 28 10月, 2009 2 次提交
  12. 08 10月, 2009 7 次提交
  13. 23 9月, 2009 3 次提交