1. 11 1月, 2012 1 次提交
  2. 09 8月, 2011 1 次提交
    • F
      ath9k_hw: calculate a much better approximation of channel noise · f23fba49
      Felix Fietkau 提交于
      Currently ath9k presents the internal calibrated noise floor as channel
      noise measurement, however this results in highly chip specific values
      that are only useful as relative measurements but do not resemble any
      real channel noise values.
      
      In order to give a much better approximation of the real channel noise,
      add the difference between the measured noise floor and the nominal
      chip specific noise floor to the default minimum channel noise value,
      which is currently used to calculate the signal strength from the RSSI
      value. This may not be 100% accurate, but it's much better than what's
      there before.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f23fba49
  3. 20 5月, 2011 1 次提交
  4. 11 5月, 2011 1 次提交
  5. 07 10月, 2010 1 次提交
    • F
      ath9k_hw: clean up calibration flags · 6497827f
      Felix Fietkau 提交于
      The calibration actual calibration flags are only used by the per chip family
      source files, so it makes more sense to define them in those files instead
      of globally. That way the code has to test for less flags.
      
      Also instead of using a separate callback for testing whether a particular
      calibration type is supported, simply adjust ah->supp_cals in the calibration
      init which is called right after the hardware reset, before any of the
      calibrations are run.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      6497827f
  6. 06 10月, 2010 1 次提交
  7. 17 8月, 2010 1 次提交
    • 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
  8. 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
  9. 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
  10. 03 7月, 2010 1 次提交
  11. 17 4月, 2010 3 次提交
  12. 08 10月, 2009 1 次提交
  13. 23 9月, 2009 1 次提交
  14. 29 8月, 2009 1 次提交
  15. 25 7月, 2009 1 次提交
    • S
      ath9k: Manipulate and report the correct RSSI · a59b5a5e
      Senthil Balasubramanian 提交于
      RSSI reported by the RX descriptor requires little manipulation.
      Manipulate and report the correct RSSI to the stack. This will
      fix the improper signal levels reported by iwconfig iw dev wlanX
      station dump. Also the Link Quality reported seems to be varying
      (falls to zero also sometimes) when iperf is run from STA to AP.
      
      Also use the default noise floor for now as the one reported
      during the caliberation seems to be wrong.
      
      The Signal and Link Quality before this patch (taken while TX is
      in progress from STA to AP)
      
      09:59:13.285428037 Link Quality=29/70  Signal level=-81 dBm
      09:59:13.410660084 Link Quality=20/70  Signal level=-90 dBm
      09:59:13.586864392 Link Quality=21/70  Signal level=-89 dBm
      09:59:13.710296281 Link Quality=21/70  Signal level=-89 dBm
      09:59:13.821683064 Link Quality=25/70  Signal level=-85 dBm
      09:59:13.933402989 Link Quality=24/70  Signal level=-86 dBm
      09:59:14.045839276 Link Quality=26/70  Signal level=-84 dBm
      09:59:14.193926673 Link Quality=23/70  Signal level=-87 dBm
      09:59:14.306230262 Link Quality=31/70  Signal level=-79 dBm
      09:59:14.419459667 Link Quality=26/70  Signal level=-84 dBm
      09:59:14.530711167 Link Quality=37/70  Signal level=-73 dBm
      09:59:14.642593962 Link Quality=29/70  Signal level=-81 dBm
      09:59:14.754361169 Link Quality=21/70  Signal level=-89 dBm
      09:59:14.866217355 Link Quality=21/70  Signal level=-89 dBm
      09:59:14.976963623 Link Quality=28/70  Signal level=-82 dBm
      09:59:15.089149809 Link Quality=26/70  Signal level=-84 dBm
      09:59:15.205039887 Link Quality=27/70  Signal level=-83 dBm
      09:59:15.316368003 Link Quality=23/70  Signal level=-87 dBm
      09:59:15.427684036 Link Quality=36/70  Signal level=-74 dBm
      09:59:15.539756380 Link Quality=21/70  Signal level=-89 dBm
      09:59:15.650549093 Link Quality=22/70  Signal level=-88 dBm
      09:59:15.761171672 Link Quality=32/70  Signal level=-78 dBm
      09:59:15.872793750 Link Quality=23/70  Signal level=-87 dBm
      09:59:15.984421694 Link Quality=22/70  Signal level=-88 dBm
      09:59:16.097315093 Link Quality=21/70  Signal level=-89 dBm
      
      The link quality and signal level after this patch (take while
      TX is in progress from STA to AP)
      
      17:21:25.627848091 Link Quality=65/70  Signal level=-45 dBm
      17:21:25.762805607 Link Quality=65/70  Signal level=-45 dBm
      17:21:25.875521888 Link Quality=66/70  Signal level=-44 dBm
      17:21:25.987468448 Link Quality=66/70  Signal level=-44 dBm
      17:21:26.100628151 Link Quality=66/70  Signal level=-44 dBm
      17:21:26.213129671 Link Quality=66/70  Signal level=-44 dBm
      17:21:26.324923070 Link Quality=65/70  Signal level=-45 dBm
      17:21:26.436831357 Link Quality=65/70  Signal level=-45 dBm
      17:21:26.610356973 Link Quality=65/70  Signal level=-45 dBm
      17:21:26.723340047 Link Quality=65/70  Signal level=-45 dBm
      17:21:26.835715293 Link Quality=64/70  Signal level=-46 dBm
      17:21:26.949542748 Link Quality=64/70  Signal level=-46 dBm
      17:21:27.062261613 Link Quality=65/70  Signal level=-45 dBm
      17:21:27.174511563 Link Quality=64/70  Signal level=-46 dBm
      17:21:27.287616232 Link Quality=64/70  Signal level=-46 dBm
      17:21:27.400598119 Link Quality=64/70  Signal level=-46 dBm
      17:21:27.511381404 Link Quality=64/70  Signal level=-46 dBm
      17:21:27.624530421 Link Quality=65/70  Signal level=-45 dBm
      17:21:27.737807109 Link Quality=64/70  Signal level=-46 dBm
      17:21:27.850861352 Link Quality=65/70  Signal level=-45 dBm
      17:21:27.963369436 Link Quality=64/70  Signal level=-46 dBm
      17:21:28.076582289 Link Quality=64/70  Signal level=-46 dBm
      Signed-off-by: NSenthil Balasubramanian <senthilkumar@atheros.com>
      Signed-off-by: NVasanthakumar Thiagarajan <vasanth@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      a59b5a5e
  16. 23 4月, 2009 3 次提交
  17. 28 3月, 2009 1 次提交
  18. 28 2月, 2009 1 次提交
  19. 14 2月, 2009 3 次提交