1. 23 12月, 2010 1 次提交
    • L
      ath9k: fix aphy / wiphy idle mismatch · afe68d0a
      Luis R. Rodriguez 提交于
      ath9k supports its own set of virtual wiphys, and it uses
      the mac80211 idle notifications to know when a device needs
      to be idle or not. We recently changed ath9k to force idle
      on driver stop() and on resume but forgot to take into account
      ath9k's own virtual wiphy idle states. These are used internally
      by ath9k to check if the device's radio should be powered down
      on each idle call. Without this change its possible that the
      device could have been forced off but the virtual wiphy idle
      was left on.
      
      Cc: stable@kernel.org
      Cc: Paul Stewart <pstew@google.com>
      Cc: Amod Bodas <amod.bodas@atheros.com>
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      afe68d0a
  2. 21 12月, 2010 1 次提交
  3. 17 12月, 2010 1 次提交
  4. 16 12月, 2010 2 次提交
  5. 14 12月, 2010 6 次提交
  6. 09 12月, 2010 1 次提交
  7. 08 12月, 2010 5 次提交
  8. 01 12月, 2010 1 次提交
  9. 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
  10. 18 11月, 2010 3 次提交
  11. 16 11月, 2010 5 次提交
  12. 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
  13. 09 11月, 2010 3 次提交
  14. 28 10月, 2010 2 次提交
  15. 26 10月, 2010 2 次提交
  16. 16 10月, 2010 3 次提交