1. 15 6月, 2010 12 次提交
    • L
      ath9k_hw: update 5 GHz tx gain tables for femless and high power PA · 1cc5c4b5
      Luis R. Rodriguez 提交于
      This updates the initvals for AR9003 to adjust the 5 GHz tx gain
      tables for femless and high power PA.
      
      References:
      
      	Osprey 2.0 header file ver 72
      	Osprey 2.2 header file ver 20
      
      Checksums:
      
      $ ./initvals -f ar9003-2p0
      0x00000000c2bfa7d5        ar9300_2p0_radio_postamble
      0x00000000ada2b114        ar9300Modes_lowest_ob_db_tx_gain_table_2p0
      0x00000000e0bc2c84        ar9300Modes_fast_clock_2p0
      0x00000000056eaf74        ar9300_2p0_radio_core
      0x0000000000000000        ar9300Common_rx_gain_table_merlin_2p0
      0x0000000078658fb5        ar9300_2p0_mac_postamble
      0x0000000023235333        ar9300_2p0_soc_postamble
      0x0000000054d41904        ar9200_merlin_2p0_radio_core
      0x00000000748572cf        ar9300_2p0_baseband_postamble
      0x000000009aa5a0a4        ar9300_2p0_baseband_core
      0x000000003dffa526        ar9300Modes_high_power_tx_gain_table_2p0
      0x000000001cfda724        ar9300Modes_high_ob_db_tx_gain_table_2p0
      0x0000000011302700        ar9300Common_rx_gain_table_2p0
      0x00000000e3eab114        ar9300Modes_low_ob_db_tx_gain_table_2p0
      0x00000000c9d66d40        ar9300_2p0_mac_core
      0x000000001e1d0800        ar9300Common_wo_xlna_rx_gain_table_2p0
      0x00000000a0c54980        ar9300_2p0_soc_preamble
      0x00000000292e2544        ar9300PciePhy_pll_on_clkreq_disable_L1_2p0
      0x000000002d3e2544        ar9300PciePhy_clkreq_enable_L1_2p0
      0x00000000293e2544        ar9300PciePhy_clkreq_disable_L1_2p0
      
      $ ./initvals -f ar9003-2p2
      0x00000000c2bfa7d5        ar9300_2p2_radio_postamble
      0x00000000ada2b114        ar9300Modes_lowest_ob_db_tx_gain_table_2p2
      0x00000000e0bc2c84        ar9300Modes_fast_clock_2p2
      0x00000000056eaf74        ar9300_2p2_radio_core
      0x0000000000000000        ar9300Common_rx_gain_table_merlin_2p2
      0x0000000078658fb5        ar9300_2p2_mac_postamble
      0x0000000023235333        ar9300_2p2_soc_postamble
      0x0000000054d41904        ar9200_merlin_2p2_radio_core
      0x000000008475a084        ar9300_2p2_baseband_postamble
      0x000000009aaafd90        ar9300_2p2_baseband_core
      0x000000003dffa526        ar9300Modes_high_power_tx_gain_table_2p2
      0x000000001cfda724        ar9300Modes_high_ob_db_tx_gain_table_2p2
      0x0000000011302700        ar9300Common_rx_gain_table_2p2
      0x00000000a9a2b114        ar9300Modes_low_ob_db_tx_gain_table_2p2
      0x00000000a9d66d40        ar9300_2p2_mac_core
      0x000000001e1d0800        ar9300Common_wo_xlna_rx_gain_table_2p2
      0x00000000a0c531c8        ar9300_2p2_soc_preamble
      0x00000000292e2544        ar9300PciePhy_pll_on_clkreq_disable_L1_2p2
      0x000000002d3e2544        ar9300PciePhy_clkreq_enable_L1_2p2
      0x00000000293e2544        ar9300PciePhy_clkreq_disable_L1_2p2
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      1cc5c4b5
    • L
      ath9k_hw: reduce delay on programming INI on AR9003 · 644c78c9
      Luis R. Rodriguez 提交于
      All AR9003 devices are PCI-E only, the extra delay here
      is not required and only reduces the delay for loading
      the initial register values by at least 14ms.
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      644c78c9
    • L
      ath9k_hw: enable ANI for AR9003 · 03c72518
      Luis R. Rodriguez 提交于
      AR9003 has been tested with the new ANI implementation
      and so ANI can now be enabled for that family.
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      03c72518
    • 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
    • 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: clear MIB interrupt causes when skipping ANI adjustments · 6e97f0fb
      Luis R. Rodriguez 提交于
      We get an MIB interrupt when we hit certain PHY error counter
      thresholds. If ANI is disabled but the MIB interrupt is enabled
      we'll keep around the old MIB interrupt causes.
      
      Since ath9k disables the MIB interrupt when ANI is disabled
      this is not a fix, but more of a sanity fix in case we ever
      need the MIB interrupt enabled but disabling ANI.
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      6e97f0fb
    • L
      ath9k_hw: fix clock rate calculations for ANI · 37e5bf65
      Luis R. Rodriguez 提交于
      The clock rate was assumed to be static but it actually
      changes depending on the mode of operation, correct this
      to help improve the calcuation of the listenTime for ANI.
      This change will help adjust ANI more accurately on different
      PHY thresholds.
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      37e5bf65
    • 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
    • J
      mac80211: allow drivers to sleep in ampdu_action · 85ad181e
      Johannes Berg 提交于
      Allow drivers to sleep, and indicate this in
      the documentation. ath9k has some locking I
      don't understand, so keep it safe and disable
      BHs in it, all other drivers look fine with
      the context change.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      85ad181e
    • J
      mac80211: remove non-irqsafe aggregation callbacks · 5d22c89b
      Johannes Berg 提交于
      The non-irqsafe aggregation start/stop done
      callbacks are currently only used by ath9k_htc,
      and can cause callbacks into the driver again.
      This might lead to locking issues, which will
      only get worse as we modify locking. To avoid
      trouble, remove the non-irqsafe versions and
      change ath9k_htc to use those instead.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      5d22c89b
  2. 08 6月, 2010 1 次提交
    • P
      ath: Fix uninitialized variable warnings · a5fdbcad
      Prarit Bhargava 提交于
      Fixes 'make -j24 CONFIG_DEBUG_SECTION_MISMATCH=y' warning:
      
      drivers/net/wireless/ath/ath9k/eeprom_4k.c: In function ‘ath9k_hw_get_4k_gain_boundaries_pdadcs.clone.1’:
      drivers/net/wireless/ath/ath9k/eeprom_4k.c:311: error: ‘minPwrT4’ may be used uninitialized in this function
      drivers/net/wireless/ath/ath9k/eeprom_9287.c: In function ‘ath9k_hw_get_AR9287_gain_boundaries_pdadcs’:
      drivers/net/wireless/ath/ath9k/eeprom_9287.c:302: error: ‘minPwrT4’ may be used uninitialized in this function
      drivers/net/wireless/ath/ath9k/eeprom_def.c: In function ‘ath9k_hw_get_def_gain_boundaries_pdadcs.clone.0’:
      drivers/net/wireless/ath/ath9k/eeprom_def.c:679: error: ‘minPwrT4’ may be used uninitialized in this function
      Signed-off-by: NPrarit Bhargava <prarit@redhat.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      a5fdbcad
  3. 05 6月, 2010 11 次提交
  4. 04 6月, 2010 16 次提交