1. 15 6月, 2010 5 次提交
    • F
      ath9k: fix extending the rx timestamp with the hardware TSF · a6d2055b
      Felix Fietkau 提交于
      AR5416 and all newer chipsets use a 32 bit rx timestamp, so there
      is no need to keep the 15 bit timestamp extending logic around.
      
      This patch removes ath9k_hw_extend_tsf (replaced by a call to
      ath9k_hw_gettsf64), and reduces the frequency of TSF reads, which
      can improve performance in some cases.
      
      This change also has the side effect of making rx timestamps
      more accurate.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      a6d2055b
    • L
      ath9k: add new ANI implementation for AR9003 · e36b27af
      Luis R. Rodriguez 提交于
      This adds support for ANI for AR9003. The implementation for
      ANI for AR9003 is slightly different than the one used for
      the older chipset families. It can technically be used for
      the older families as well but this is not yet fully tested
      so we only enable the new ANI for the AR5008, AR9001 and AR9002
      families with a module parameter, force_new_ani.
      
      The old ANI implementation is left intact.
      
      Details of the new ANI implemention:
      
        * ANI adjustment logic is now table driven so that each ANI level
          setting is parameterized. This makes adjustments much more
          deterministic than the old procedure based logic and allows
          adjustments to be made incrementally to several parameters per
          level.
      
        * ANI register settings are now relative to INI values; so ANI
          param zero level == INI value. Appropriate floor and ceiling
          values are obeyed when adjustments are combined with INI values.
      
        * ANI processing is done once per second rather that every 100ms.
          The poll interval is now a set upon hardware initialization and
          can be picked up by the core driver.
      
        * OFDM error and CCK error processing are made in a round robin
          fashion rather than allowing all OFDM adjustments to be made
          before CCK adjustments.
      
        * ANI adjusts MRC CCK off in the presence of high CCK errors
      
        * When adjusting spur immunity (SI) and OFDM weak signal detection,
          ANI now sets register values for the extension channel too
      
        * When adjusting FIR step (ST), ANI now sets register for FIR step
          low too
      
        * FIR step adjustments now allow for an extra level of immunity for
          extremely noisy environments
      
        * The old Noise immunity setting (NI), which changes coarse low, size
          desired, etc have been removed. Changing these settings could affect
          up RIFS RX as well.
      
        * CCK weak signal adjustment is no longer used
      
        * ANI no longer enables phy error interrupts; in all cases phy hw
          counting registers are used instead
      
        * The phy error count (overflow) interrupts are also no longer used
          for ANI adjustments. All ANI adjustments are made via the polling
          routine and no adjustments are possible in the ISR context anymore
      
        * A history settings buffer is now correctly used for each channel;
          channel settings are initialized with the defaults but later
          changes are restored when returning back to that channel
      
        * When scanning, ANI is disabled settings are returned to (INI) defaults.
      
        * OFDM phy error thresholds are now 400 & 1000 (errors/second units) for
          low/high water marks, providing increased stability/hysteresis when
          changing levels.
      
        * Similarly CCK phy error thresholds are now 300 & 600 (errors/second)
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e36b27af
    • L
      ath9k_hw: inform ANI calibration when scanning · 40346b66
      Luis R. Rodriguez 提交于
      The new ANI implementation will use this to skip ANI
      calibration upon a scan. This cannot be ported to the
      older ANI implementation unless default ANI values from
      the ANI are also used upon a scan. This is essentially
      what one of the things thenew ANI does.
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      40346b66
    • L
      ath9k_hw: allow for spliting up ANI operations by family · ac0bb767
      Luis R. Rodriguez 提交于
      The AR9003 hardware family will use a slightly modified ANI
      implementation which has not yet been tested on the other hardware
      families. To allow for this new ANI implementation a few ANI
      calls need to be abstracted away. This patch just allows for
      each hardware family to declare their own ANI ops and annotates
      the current ANI implementation as old.
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      ac0bb767
    • L
      ath9k_hw: move clock definitions from hw.c to hw.h · 73377256
      Luis R. Rodriguez 提交于
      These will be used by the ANI code next.
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      73377256
  2. 04 6月, 2010 1 次提交
  3. 03 6月, 2010 4 次提交
  4. 28 4月, 2010 4 次提交
  5. 20 4月, 2010 1 次提交
  6. 17 4月, 2010 25 次提交