1. 29 1月, 2011 1 次提交
    • R
      ath9k: Fix power save usage count imbalance on deinit · c7c18060
      Rajkumar Manoharan 提交于
      While unloading the driver, the ps_usecount is incremented
      before configuring gpio registers in deinit_device.
      But it is failed to restore the ps_usecount after that.
      The problem is that the chip is forcibly moved to FULL SLEEP
      by radio_disable when mac80211 is reporting as idle
      though ps_usecount is not zero.
      
      This patch retores ps_usecount properly and ensures that
      the chip is always moved to full sleep only if ps usage
      count is zero which also helps in debugging deadbeef on
      multivif case. And also fixes the following warning.
      
      ath: DMA failed to stop in 10 ms AR_CR=0xdeadbeef AR_DIAG_SW=0xdeadbeef
      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:536
      ath_stoprecv+0xf4/0x100 [ath9k]()
      
      Cc: stable@kernel.org
      Cc: Paul Stewart <pstew@google.com>
      Signed-off-by: NRajkumar Manoharan <rmanoharan@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      c7c18060
  2. 28 1月, 2011 1 次提交
  3. 22 1月, 2011 1 次提交
  4. 06 1月, 2011 1 次提交
  5. 05 1月, 2011 2 次提交
  6. 23 12月, 2010 2 次提交
  7. 21 12月, 2010 1 次提交
  8. 17 12月, 2010 1 次提交
  9. 16 12月, 2010 2 次提交
  10. 14 12月, 2010 6 次提交
  11. 09 12月, 2010 1 次提交
  12. 08 12月, 2010 5 次提交
  13. 01 12月, 2010 1 次提交
  14. 30 11月, 2010 2 次提交
    • R
      ath9k: Disable SWBA interrupt on remove_interface · 46047784
      Rajkumar Manoharan 提交于
      while removing beaconing mode interface, SWBA interrupt
      was never disabled when there are no other beaconing interfaces.
      
      Cc: stable@kernel.org
      Signed-off-by: NRajkumar Manoharan <rmanoharan@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      46047784
    • G
      ath9k: use per-device struct for pm_qos_* operations · 98c316e3
      Gabor Juhos 提交于
      The ath9k driver uses a shared pm_qos_request_list structure for all
      devices. This causes the following warning if more than one device is
      present in the system:
      
      WARNING: at kernel/pm_qos_params.c:234 ath9k_init_device+0x5e8/0x6b0()
      pm_qos_add_request() called for already added request
      Modules linked in:
      Call Trace:
      [<802b1cdc>] dump_stack+0x8/0x34
      [<8007dd90>] warn_slowpath_common+0x78/0xa4
      [<8007de44>] warn_slowpath_fmt+0x2c/0x38
      [<801b0828>] ath9k_init_device+0x5e8/0x6b0
      [<801bc508>] ath_pci_probe+0x2dc/0x39c
      [<80176254>] pci_device_probe+0x64/0xa4
      [<8019471c>] driver_probe_device+0xbc/0x188
      [<80194854>] __driver_attach+0x6c/0xa4
      [<80193e20>] bus_for_each_dev+0x60/0xb0
      [<80193580>] bus_add_driver+0xcc/0x268
      [<80194c08>] driver_register+0xe0/0x198
      [<801764e0>] __pci_register_driver+0x50/0xe0
      [<80365f48>] ath9k_init+0x3c/0x6c
      [<8006050c>] do_one_initcall+0xfc/0x1d8
      [<80355340>] kernel_init+0xd4/0x174
      [<800639a4>] kernel_thread_helper+0x10/0x18
      
      ---[ end trace 5345fc6f870564a6 ]---
      
      This patch fixes that warning by using a separate pm_qos_request_list
      sructure for each device.
      Signed-off-by: NGabor Juhos <juhosg@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      98c316e3
  15. 18 11月, 2010 3 次提交
  16. 16 11月, 2010 5 次提交
  17. 10 11月, 2010 2 次提交
    • F
      ath9k: optimize/fix ANI RSSI processing · 9fa23e17
      Felix Fietkau 提交于
      ANI needs the RSSI average only in station mode, and only for tracking
      the signal strength of beacons of the AP that it is connected to.
      Adjust the code to track on the beacon RSSI, and store the average of that
      in the ath_wiphy struct.
      With these changes, we can get rid of this extra station lookup in the
      rx path, which saves precious CPU cycles.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      9fa23e17
    • F
      ath9k_hw: optimize interrupt mask changes · 4df3071e
      Felix Fietkau 提交于
      OProfile showed that ath9k was spending way too much time in
      ath9k_hw_set_interrupts. Since most of the interrupt mask changes only
      need to globally enable/disable interrupts, it makes sense to split
      this part into separate functions, replacing all calls to
      ath9k_hw_set_interrupts(ah, 0) with ath9k_hw_disable_interrupts(ah).
      
      ath9k_hw_set_interrupts(ah, ah->imask) only gets changed to
      ath9k_hw_enable_interrupts(ah), whenever ah->imask was not changed
      since the point where interrupts were disabled.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      4df3071e
  18. 09 11月, 2010 3 次提交