1. 29 1月, 2011 1 次提交
  2. 28 1月, 2011 1 次提交
    • F
      ath9k: fix misplaced debug code · 8d8d3fdc
      Felix Fietkau 提交于
      The commit 'ath9k: Add more information to debugfs xmit file.' added more
      debug counters to ath9k and also added some lines of code to ath9k_hw.
      
      Since ath9k_hw is also used by ath9k_htc, its code must not depend on ath9k
      data structures. In this case it was not fatal, but it's still wrong, so
      the code needs to be moved back to ath9k.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Cc: Ben Greear <greearb@candelatech.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8d8d3fdc
  3. 27 1月, 2011 1 次提交
  4. 22 1月, 2011 5 次提交
  5. 20 1月, 2011 5 次提交
  6. 21 12月, 2010 1 次提交
    • F
      ath9k: fix queue depth check for forming new aggregates · 4b3ba66a
      Felix Fietkau 提交于
      To improve aggregation length, there should not be more than two fully formed
      A-MPDU frames in the hardware queue. To ensure this, the code checks the tx
      queue length before forming new A-MPDUs. This can reduce the throughput (or
      maybe even starve out A-MPDU traffic) when too many non-aggregated frames are
      in the queue.
      Fix this by keeping track of pending A-MPDU frames (even when they're sent out
      as single frames), but exclude rate control probing frames to improve
      performance.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      4b3ba66a
  7. 14 12月, 2010 1 次提交
  8. 09 12月, 2010 1 次提交
  9. 08 12月, 2010 3 次提交
  10. 01 12月, 2010 1 次提交
  11. 30 11月, 2010 1 次提交
  12. 23 11月, 2010 1 次提交
  13. 18 11月, 2010 13 次提交
  14. 17 11月, 2010 4 次提交
  15. 16 11月, 2010 1 次提交
    • F
      ath9k: rework tx queue selection and fix queue stopping/waking · 066dae93
      Felix Fietkau 提交于
      The current ath9k tx queue handling code showed a few issues that could
      lead to locking issues, tx stalls due to stopped queues, and maybe even
      DMA issues.
      
      The main source of these issues is that in some places the queue is
      selected via skb queue mapping in places where this mapping may no
      longer be valid. One such place is when data frames are transmitted via
      the CAB queue (for powersave buffered frames). This is made even worse
      by a lookup WMM AC values from the assigned tx queue (which is
      undefined for the CAB queue).
      
      This messed up the pending frame counting, which in turn caused issues
      with queues getting stopped, but not woken again.
      
      To fix these issues, this patch removes an unnecessary abstraction
      separating a driver internal queue number from the skb queue number
      (not to be confused with the hardware queue number).
      
      It seems that this abstraction may have been necessary because of tx
      queue preinitialization from the initvals. This patch avoids breakage
      here by pushing the software <-> hardware queue mapping to the function
      that assigns the tx queues and redefining the WMM AC definitions to
      match the numbers used by mac80211 (also affects ath9k_htc).
      
      To ensure consistency wrt. pending frame count tracking, these counters
      are moved to the ath_txq struct, updated with the txq lock held, but
      only where the tx queue selected by the skb queue map actually matches
      the tx queue used by the driver for the frame.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Reported-by: NBjörn Smedman <bjorn.smedman@venatech.se>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      066dae93