1. 25 8月, 2011 1 次提交
    • R
      ath9k: Fix rx overrun interrupt storm · 0682c9b5
      Rajkumar Manoharan 提交于
      Whenever RXEOL is received, both RXORN and RXEOL got cleared
      to avoid rx overrun interrupt storm. This was handled only for
      edma chips. The same scenario was also observered with AR9280,
      doing frequent channel type switch b/w HT20/40 with bidi traffic
      that is causing failure to stop rx dma. This patch clears
      the RXEOL & RXORN interrupts for all chips.
      
      ath: DMA failed to stop in 10 ms AR_CR=0x00000024 AR_DIAG_SW=0x42000020
      DMADBG_7=0x000062c0
      ath: Could not stop RX, we could be confusing the DMA engine when we
      start RX up
      ------------[ cut here ]------------
      WARNING: at drivers/net/wireless/ath/ath9k/recv.c:532
      ath_stoprecv+0x110/0x120 [ath9k]()
      Call Trace:
       [<ffffffff8104a55a>] warn_slowpath_common+0x7a/0xb0
       [<ffffffff8104a5a5>] warn_slowpath_null+0x15/0x20
       [<ffffffffa0560380>] ath_stoprecv+0x110/0x120 [ath9k]
       [<ffffffffa055e6fa>] ath_reset+0x6a/0x200 [ath9k]
      Signed-off-by: NRajkumar Manoharan <rmanohar@qca.qualcomm.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      0682c9b5
  2. 23 8月, 2011 2 次提交
  3. 10 8月, 2011 2 次提交
  4. 09 8月, 2011 1 次提交
  5. 28 6月, 2011 1 次提交
    • R
      ath9k: Fix locking issue during tx completion · f6b4e4d4
      Rajkumar Manoharan 提交于
      The received tx status of aggregated frame without BlockAck may
      cause deaf state in AR5416 cards. So the driver does a reset to
      recover. When this happens, we release the pcu_lock before doing
      a reset as ath_rest acquires pcu_lock. This is ugly and also not
      atomic. Fixing this addresses the TX DMA failure also.
      
      ath_tx_complete_aggr can be called from different paths which
      takes different variants of spin_lock. This patch also addresses
      the following warning.
      
      WARNING: at kernel/timer.c:1011 del_timer_sync+0x4e/0x50()
      Call Trace:
       <IRQ>  [<ffffffff8104be3a>] warn_slowpath_common+0x7a/0xb0
       [<ffffffff8104be85>] warn_slowpath_null+0x15/0x20
       [<ffffffff8105915e>] del_timer_sync+0x4e/0x50
       [<ffffffffa03726be>] ath_reset+0x3e/0x210 [ath9k]
       [<ffffffff8135cdaf>] ? _raw_spin_unlock_bh+0x1f/0x30
       [<ffffffffa037760a>] ath_tx_complete_aggr.isra.26+0x54a/0xa40 [ath9k]
      Signed-off-by: NRajkumar Manoharan <rmanohar@qca.qualcomm.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f6b4e4d4
  6. 18 6月, 2011 2 次提交
  7. 02 6月, 2011 7 次提交
  8. 27 5月, 2011 1 次提交
  9. 20 5月, 2011 2 次提交
  10. 17 5月, 2011 1 次提交
  11. 12 5月, 2011 2 次提交
  12. 11 5月, 2011 4 次提交
  13. 06 5月, 2011 2 次提交
  14. 27 4月, 2011 1 次提交
  15. 26 4月, 2011 3 次提交
  16. 20 4月, 2011 2 次提交
    • F
      ath9k: assign keycache slots to unencrypted stations · 93ae2dd2
      Felix Fietkau 提交于
      Frame filtering relies on having a valid destination index (keycache slot),
      to keep track of the destination. Assigning a keycache slot (configured
      to unencrypted, with no key data attached) improves powersave handling in
      AP mode with no encryption.
      The dummy keycache entry for a station is cleared, when a real key gets
      added.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      93ae2dd2
    • F
      ath9k: fix powersave frame filtering/buffering in AP mode · 5519541d
      Felix Fietkau 提交于
      This patch fixes a long standing issue of pending packets in the queue being
      sent (and retransmitted many times) to sleeping stations.
      This was made worse by aggregation through driver-internal retransmitting
      of A-MDPU subframes.
      Previously the hardware tx filter was cleared unconditionally for every
      single packet - with this patch it uses the IEEE80211_TX_CTL_CLEAR_PS_FILT
      for unaggregated frames.
      A sta_notify driver op is added to stop aggregation for stations when they
      enter powersave mode. Subframes stay buffered inside the driver, to ensure
      that the BlockAck window keeps a sane state.
      Since the driver uses software aggregation, the clearing of the tx filter
      needs to be handled by the driver instead of mac80211 for aggregated frames.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      5519541d
  17. 13 4月, 2011 2 次提交
  18. 09 4月, 2011 1 次提交
  19. 08 4月, 2011 3 次提交