1. 12 7月, 2011 1 次提交
  2. 13 4月, 2011 6 次提交
  3. 31 3月, 2011 1 次提交
  4. 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
  5. 17 6月, 2010 8 次提交
  6. 03 6月, 2010 1 次提交
  7. 08 4月, 2010 1 次提交
    • B
      ath5k: Adaptive Noise Immunity (ANI) Implementation · 2111ac0d
      Bruno Randolf 提交于
      This is an Adaptive Noise Imunity (ANI) implementation for ath5k. I have looked
      at both ath9k and HAL sources (they are nearly the same), and even though i
      have implemented some things differently, the basic algorithm is practically
      the same, for now. I hope that this can serve as a clean start to improve the
      algorithm later.
      
      This also adds a possibility to manually control ANI settings, right now only
      thru a debugfs file:
        * set lowest sensitivity (=highest noise immunity):
      	echo sens-low > /sys/kernel/debug/ath5k/phy0/ani
        * set highest sensitivity (=lowest noise immunity):
      	echo sens-high > /sys/kernel/debug/ath5k/phy0/ani
        * automatically control immunity (default):
      	echo ani-on > /sys/kernel/debug/ath5k/phy0/ani
        * to see the parameters in use and watch them change:
      	cat /sys/kernel/debug/ath5k/phy0/ani
      
      Manually setting sensitivity will turn the automatic control off. You can also
      control each of the five immunity parameters (noise immunity, spur immunity,
      firstep, ofdm weak signal detection, cck weak signal detection) manually thru
      the debugfs file.
      
      This is tested on AR5414 and nearly doubles the thruput in a noisy 2GHz band.
      Signed-off-by: NBruno Randolf <br1@einfach.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      2111ac0d
  8. 11 3月, 2010 3 次提交
    • A
      ath5k: fixing retries in ath5k_hw_setup_4word_tx_desc · e9f08381
      Andrew Blaich 提交于
      The rate control algorithm, default is Minstrel for ath5k, determines
      the number of retries to use for each rate.  However, there exists in
      ath5k_hw_setup_4word_tx_desc (which is called for AR5212 like devices)
      a set number of retries defined by AR5K_TUNE_HWTXTRIES.  The set
      number of tries is added to the tx_tries0 variable setup by the rate
      control algorithm.  This changes the number of retries the rate
      control algorithm considers necessary.  By removing the
      AR5K_TUNE_HWTXTRIES from the retry calculation the rate control
      algorithm is given control over the number of retries.
      Signed-off-by: NAndrew Blaich <ablaich@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e9f08381
    • B
      ath5k: remove ah_magic · ff5d96ce
      Bruno Randolf 提交于
      it's never used. probably a leftover from the old OpenHAL days...
      Signed-off-by: NBruno Randolf <br1@einfach.org>
      Acked-by: NNick Kossifidis <mickflemm@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      ff5d96ce
    • B
      ath5k: Fix TX/RX padding for all frames · 8127fbdc
      Benoit Papillault 提交于
      Currently, the padding position is based on
      ieee80211_get_hdrlen_from_skb(). This is not correct since the HW does
      padding on RX (and expect the same padding to be present on TX) at the
      following position :
      
      - management : 24 + 6 if 4-addr format
      - control    : 24 + 6 if 4-addr format
      - data       : 24 + 6 if 4-addr format + 2 if QoS
      - invalid    : 24 + 6 if 4-addr format
      
      whereas ieee80211_get_hdrlen_from_skb() is :
      
      - management : 24
      - control    : 16 except for ACK/CTS where it is 10
      - data       : 24 + 6 if 4-addr format + 2 if QoS + 2 if QoS & order
      - invalid    : 24
      
      So, correct frames are not affected : management frames do not use
      4-addr format, control frames have no body and invalid frames are ...
      not valid by definition. However, in order to use monitor interface for
      debugging purpose, one must be able to send/receive any frames, be it
      correct or not. Such frames are affected by incorrect padding.
      
      Moreover, since padding is added on TX, we need to remove it before
      calling ieee80211_tx_status. This affect TX packets received by monitor
      interfaces.
      
      It has been tested between an ath5k based card (AR5212) and an ar9170usb
      based card (netgear WNDA3100) using a frame generator and a monitor
      interface for each card.
      
      v2: Added ath5k_add_padding / ath5k_remove_padding
      Signed-off-by: NBenoit Papillault <benoit.papillault@free.fr>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8127fbdc
  9. 23 4月, 2009 1 次提交
  10. 28 3月, 2009 1 次提交
  11. 20 12月, 2008 1 次提交
  12. 07 11月, 2008 1 次提交
    • B
      ath5k: correct handling of rx status fields · c7930339
      Bob Copeland 提交于
      ath5k_rx_status fields rs_antenna and rs_more are u8s, but we
      were setting them with bitwise ANDs of 32-bit values.
      
      As a consequence, jumbo frames would not be discarded as intended.
      Then, because the hw rate value of such frames is zero, and, since
      "ath5k: rates cleanup", we do not fall back to the basic rate, such
      packets would trigger the following WARN_ON:
      
      ------------[ cut here ]------------
      WARNING: at net/mac80211/rx.c:2192 __ieee80211_rx+0x4d/0x57e [mac80211]()
      Modules linked in: ath5k af_packet sha256_generic aes_i586 aes_generic cbc loop i915 drm binfmt_misc acpi_cpufreq fan container nls_utf8 hfsplus dm_crypt dm_mod kvm_intel kvm fuse sbp2 snd_hda_intel snd_pcm_oss snd_pcm snd_mixer_oss snd_seq_dummy snd_seq_oss arc4 joydev hid_apple ecb snd_seq_midi snd_rawmidi snd_seq_midi_event snd_seq snd_timer snd_seq_device usbhid appletouch mac80211 sky2 snd ehci_hcd ohci1394 bitrev crc32 sr_mod cdrom rtc sg uhci_hcd snd_page_alloc cfg80211 ieee1394 thermal ac battery processor button evdev unix [last unloaded: ath5k]
      Pid: 0, comm: swapper Tainted: G        W  2.6.28-rc2-wl #14
      Call Trace:
       [<c0123d1e>] warn_on_slowpath+0x41/0x5b
       [<c012005d>] ? sched_debug_show+0x31e/0x9c6
       [<c012489f>] ? vprintk+0x369/0x389
       [<c0309539>] ? _spin_unlock_irqrestore+0x54/0x58
       [<c011cd8f>] ? try_to_wake_up+0x14f/0x15a
       [<f81918cb>] __ieee80211_rx+0x4d/0x57e [mac80211]
       [<f828872a>] ath5k_tasklet_rx+0x5a1/0x5e4 [ath5k]
       [<c013b9cd>] ? clockevents_program_event+0xd4/0xe3
       [<c01283a9>] tasklet_action+0x94/0xfd
       [<c0127d19>] __do_softirq+0x8c/0x13e
       [<c0127e04>] do_softirq+0x39/0x55
       [<c0128082>] irq_exit+0x46/0x85
       [<c010576c>] do_IRQ+0x9a/0xb2
       [<c010461c>] common_interrupt+0x28/0x30
       [<f80e934a>] ? acpi_idle_enter_bm+0x2ad/0x31b [processor]
       [<c02976bf>] cpuidle_idle_call+0x65/0x9a
       [<c010262c>] cpu_idle+0x76/0xa6
       [<c02fb402>] rest_init+0x62/0x64
      Signed-off-by: NBob Copeland <me@bobcopeland.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      c7930339
  13. 07 10月, 2008 1 次提交
  14. 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