1. 01 12月, 2010 1 次提交
    • N
      ath5k: Reset cleanup and generic cleanup · 9320b5c4
      Nick Kossifidis 提交于
       * No functional changes
      
       * Clean up reset:
       Introduce init functions for each unit and call them instead
       of having everything inside ath5k_hw_reset (it's just c/p for
       now so nothing changes except calling order -I tested it with
       various cards and it's ok-)
      
       * Further cleanups:
       ofdm_timings belongs to phy.c
       rate_duration belongs to pcu.c
       clock functions are general and belong to reset.c (more to follow)
      
       * Reorder functions for better organization:
       We start with helpers and other functions follow in categories,
       init functions are last
      Signed-off-by: NNick Kossifidis <mickflemm@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      9320b5c4
  2. 21 9月, 2010 1 次提交
    • B
      ath5k: Simplify cw_min/max and AIFS configuration · de8af455
      Bruno Randolf 提交于
      Get rid of overly complicated cw_min/max and AIFS configuration:
      
      * Validate values in ath5k_hw_set_tx_queueprops(), so we can use them directly
        without further checks or computation in ath5k_hw_reset_tx_queue().
      
      * Simplifiy by using AR5K_TUNE_AIFS|CWMIN|CWMAX variables directly since we
        don't support XR or B channels. That way we can also remove
        AR5K_TXQ_USEDEFAULT and the confusing logic around it.
      
      * Update data types: AIFS is u8, CW's are u16.
      
      * Remove now unneeded variables in ath5k_hw.
      Signed-off-by: NBruno Randolf <br1@einfach.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      de8af455
  3. 03 6月, 2010 1 次提交
  4. 16 3月, 2010 1 次提交
  5. 10 3月, 2010 1 次提交
  6. 23 1月, 2010 1 次提交
  7. 13 1月, 2010 2 次提交
    • L
      ath5k: Reimplement clock rate to usec conversion · 3578e6eb
      Lukáš Turek 提交于
      The original code was correct in 802.11a mode only, 802.11b/g uses
      different clock rates. The new code uses values taken from FreeBSD HAL
      and should be correct for all modes including turbo modes.
      
      The former rate calculation was used by slope coefficient calculation
      function ath5k_hw_write_ofdm_timings. However, this function requires
      the 802.11a values even in 802.11g mode. Thus the use of
      ath5k_hw_htoclock was replaced by hardcoded values. Possibly the slope
      coefficient calculation is not related to clock rate at all.
      Signed-off-by: NLukas Turek <8an@praha12.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      3578e6eb
    • L
      ath5k: Fix functions for getting/setting slot time · e1aa369e
      Lukáš Turek 提交于
      Functions ath5k_hw_get_slot_time and ath5k_hw_set_slot_time were
      converting microseconds to clocks only for AR5210, although it's needed
      for all supported devices. The conversion was moved outside the
      hardware-specific branches.
      
      The original code also limited minimum slot time to 9, while turbo modes
      use 6, this was fixed too.
      Signed-off-by: NLukas Turek <8an@praha12.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e1aa369e
  8. 14 8月, 2009 1 次提交
  9. 11 7月, 2009 1 次提交
  10. 07 5月, 2009 1 次提交
    • N
      ath5k: Beaconing fixes · 428cbd4f
      Nick Kossifidis 提交于
      * Write next beacon timer even on AP mode since without this we get
       no beacons + ath9k does it too.  Docs say that we must write 0 on
       this register on AP mode to start TSF increment, we do both to be
       on the safe side.
      
       * Fix num_tx_pending function, we never read the register :P that's
       why we got all those "beacon queue 7 didn't stop messages".
      
       * Put full prioriy on beacon queue, lock all queues with lower
       priority using the arblock and also bypass any arblock by seting
       the arblock ignore flag.
      
       * For the CAB queue (do we need this thing ?, it seems crap) since
       it's supposed to fire up after each beacon (we don't use it on driver
       part, ath9k/MadWiFi does), don't make it DBA gated but instead make
       it fire after each beacon by using the beacon sent gated flag.
      
       * Increase bmiss threshold to 10, that's what we used on MadWiFi for
       a long time. Also when we have pending frames on the beacon queue (we
       got a beacon that didn't make it on the air) it's more likely that
       the beacon queue never started, probably due to faulty DBA setting,
       so change that "beacon queue didn't stop" message.
      
       Tested this with AP mode and IBSS mode and seems to work fine ;-)
      Signed-off-by: NNick Kossifidis <mickflemm@gmail.com>
      Signed-off-by: NBob Copeland <me@bobcopeland.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      428cbd4f
  11. 23 4月, 2009 1 次提交
  12. 30 1月, 2009 1 次提交
  13. 01 11月, 2008 1 次提交
    • N
      ath5k: Update interrupt masking code · 4c674c60
      Nick Kossifidis 提交于
      *Properly get/set all available ISR/IMR values and review common/uncommon bits
      *Better handling of per-txq interrupts (we can now resolve what q is generating
       each interrupt -this will help in debuging wme later)
      *Some minor updates from legacy-hal
      *Properly handle RXNOFRM and TXNOFRM interrupt masking (even when we don't set
       them on IMR they keep showing up, so we disable them by zeroing AR5K_RXNOFRM
       and AR5K_TXNOFRM registers). This doesn't exist on legacy-hal but i've tested
       it on various cards and it works fine.
      
      Changes-Licensed-under: ISC
      Signed-Off-by: NNick Kossifidis <mickflemm@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      4c674c60
  14. 01 10月, 2008 1 次提交
  15. 06 9月, 2008 1 次提交
    • N
      ath5k: HW code cleanup · c6e387a2
      Nick Kossifidis 提交于
       * No code changes...
      
       * Split hw.c to multiple files for better maintenance and add some documentation on each file
         code is going to grow soon (eeprom.c for example is going to get much stuff currently developed
         on ath_info) so it's better this way.
      
       * Rename following functions to maintain naming scheme:
      
           ah_setup_xtx_desc -> ah_setup_mrr_tx_desc
           (Because xtx doesn't say much, it's actually
           a multi-rate-retry tx descriptor)
      
           ath5k_hw_put_tx/rx_buf - > ath5k_hw_set_tx/rxdp
           ath5k_hw_get_tx/rx_buf -> ath5k_hw_get_tx/rxdp
           (We don't put any "buf" we set descriptor pointers on hw)
      
           ath5k_hw_tx_start -> ath5k_hw_start_tx_dma
           ath5k_hw_start_rx -> ath5k_hw_start_rx_dma
           ath5k_hw_stop_pcu_recv -> ath5k_hw_stop_rx_pcu
           (It's easier this way to identify them, we also
           have ath5k_hw_start_rx_pcu which completes the
           set)
      
           ath5k_hw_set_intr -> ath5k_hw_set_imr
           (As in get_isr we set imr here, not "intr")
      
        * Move ath5k_hw_setup_rx_desc on ah->ah_setup_rx_desc so we can
          include support for different rx descriptors in the future
      
        * Further cleanups so that checkpatch doesn't complain
          (only some > 80 col warnings for eeprom.h and reg.h as usual
          due to comments)
      
        Tested on 5211 and 5213 cards and works ok.
      
      Changes-licensed-under: ISC
      Signed-off-by: NNick Kossifidis <mickflemm@gmail.com>
      Acked-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      c6e387a2