1. 21 12月, 2010 1 次提交
  2. 17 12月, 2010 1 次提交
    • B
      ath5k: Fix survey · f15a4bb2
      Bruno Randolf 提交于
      The old survey implementation was broken and returned nonsense data.
      
      Clear cycle counters and survey data on reset. Since the cycle counters easily
      overflow it's better to keep a local version of collected survey data (in ms
      resolution, instead of clockrate) and update this every time survey is
      retrieved. If survey is retrieved often enough to avoid cycle counter overflows
      this works fine, otherwise we could update survey more often, like ath9k does.
      Still only the survey for the current channel is kept.
      Signed-off-by: NBruno Randolf <br1@einfach.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f15a4bb2
  3. 09 12月, 2010 3 次提交
  4. 08 12月, 2010 3 次提交
  5. 07 12月, 2010 4 次提交
  6. 03 12月, 2010 5 次提交
  7. 01 12月, 2010 6 次提交
  8. 19 11月, 2010 1 次提交
  9. 17 11月, 2010 2 次提交
  10. 16 11月, 2010 1 次提交
  11. 10 11月, 2010 1 次提交
  12. 26 10月, 2010 1 次提交
    • B
      ath5k: Properly initialize ath_common->cc_lock. · 9192f715
      Ben Greear 提交于
      Otherwise, lockdep splats, at the least:
      
      INFO: trying to register non-static key.
      the code is fine but needs lockdep annotation.
      turning off the locking correctness validator.
      Pid: 0, comm: swapper Not tainted 2.6.36-rc8-wl+ #32
      Call Trace:
       [<c075d940>] ? printk+0xf/0x17
       [<c045507a>] register_lock_class+0x5a/0x29e
       [<c0456af5>] __lock_acquire+0xa2/0xb8c
       [<c0455be2>] ? mark_lock+0x1e/0x1de
       [<c041a540>] ? acpi_get_override_irq+0x85/0x8c
       [<c0455536>] ? trace_hardirqs_off+0xb/0xd
       [<c0457639>] lock_acquire+0x5a/0x78
       [<f8126835>] ? ath5k_ani_calibration+0x24/0x52b [ath5k]
       [<c075f6ed>] _raw_spin_lock_bh+0x20/0x2f
       [<f8126835>] ? ath5k_ani_calibration+0x24/0x52b [ath5k]
       [<f8126835>] ath5k_ani_calibration+0x24/0x52b [ath5k]
       [<c0438f99>] ? tasklet_action+0x3b/0xc6
       [<f8123c2b>] ath5k_tasklet_ani+0x18/0x22 [ath5k]
       [<c0438fd1>] tasklet_action+0x73/0xc6
       [<c043945f>] __do_softirq+0x86/0x111
       [<c0439520>] do_softirq+0x36/0x5a
       [<c0439659>] irq_exit+0x35/0x69
       [<c0403fb9>] do_IRQ+0x86/0x9a
       [<c04034ee>] common_interrupt+0x2e/0x40
       [<c045007b>] ? do_adjtimex+0x223/0x55e
       [<c0408245>] ? mwait_idle+0x5c/0x6c
       [<c040227f>] cpu_idle+0x4e/0x6b
       [<c074b6e9>] rest_init+0x8d/0x92
       [<c09758ea>] start_kernel+0x320/0x325
       [<c09750d0>] i386_start_kernel+0xd0/0xd7
      Signed-off-by: NBen Greear <greearb@candelatech.com>
      Acked-by: NBruno Randolf <br1@einfach.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      9192f715
  13. 14 10月, 2010 1 次提交
  14. 13 10月, 2010 1 次提交
  15. 12 10月, 2010 1 次提交
  16. 06 10月, 2010 3 次提交
  17. 29 9月, 2010 2 次提交
  18. 21 9月, 2010 3 次提交
    • B
      ath5k: Add tx queue configuration function · e0b1cc52
      Bruno Randolf 提交于
      Add the mac80211 callback function to configure the tx queue properties like
      cw_min, cw_max and aifs.
      Signed-off-by: NBruno Randolf <br1@einfach.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e0b1cc52
    • 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
    • B
      ath5k: Keep last descriptor in queue · 23413296
      Bruno Randolf 提交于
      If we return a TX descriptor to the pool of available descriptors, while a
      queues TXDP still points to it we could potentially run into all sorts of
      troube.
      
      It has been suggested that there is hardware which can set the descriptors
      done bit before it reads ds_link and moves on to the next descriptor. While the
      documentation says this is not true for newer chipsets (the descriptor contents
      are copied to some internal memory), we don't know about older hardware.
      
      To be safe, we always keep the last descriptor in the queue, and avoid dangling
      TXDP pointers. Unfortunately this does not fully resolve the problem - queues
      still get stuck!
      
      This is similar to what ath9k does.
      Signed-off-by: NBruno Randolf <br1@einfach.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      23413296