1. 08 12月, 2010 3 次提交
  2. 01 12月, 2010 1 次提交
  3. 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
  4. 18 11月, 2010 3 次提交
  5. 16 11月, 2010 5 次提交
  6. 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
  7. 09 11月, 2010 3 次提交
  8. 28 10月, 2010 2 次提交
  9. 26 10月, 2010 2 次提交
  10. 16 10月, 2010 3 次提交
  11. 14 10月, 2010 1 次提交
  12. 12 10月, 2010 2 次提交
  13. 07 10月, 2010 3 次提交
  14. 06 10月, 2010 4 次提交
  15. 25 9月, 2010 1 次提交
  16. 21 9月, 2010 1 次提交
  17. 17 9月, 2010 2 次提交
    • L
      ath9k: fix enabling ANI / tx monitor after bg scan · 48a6a468
      Luis R. Rodriguez 提交于
      ath9k's entire logic with SC_OP_SCANNING is incorrect due to the
      way mac80211 currently implements the scan complete callback and
      we handle it in ath9k. This patch removes the flag completely in
      preference for the SC_OP_OFFCHANNEL which is really what we wanted.
      
      The scanning flag was used to ensure we reset ANI to the old values
      when we go back to the home channel, but if we are offchannel we
      use some defaults. The flag was also used to re-enable the TX monitor.
      
      Without this patch we simply never re-enabled ANI and the TX monitor
      after going offchannel. This means that after one background
      scan we are prone to noise issues and if we had a TX hang we would
      not recover. To get this to work properly we must enable ANI after
      we have configured the beacon timers, otherwise hardware acts really
      oddly.
      
      This patch has stable fixes which apply down to [2.6.36+], there
      *may* be a to fix this on older kernels but requires a bit of
      work since this patch relies on the new mac80211 flag
      IEEE80211_CONF_OFFCHANNEL which was introduced as of 2.6.36.
      
      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>
      48a6a468
    • L
      ath9k: fix regression on beacon loss after bgscan · 52b8ac92
      Luis R. Rodriguez 提交于
      When we return to the home channel we were never reseting our beacon
      timers, this was casued by the fact that the scanning flag was still
      on even after we returned to our home channel. There are also other
      reasons why we would get a reset and if we are not off channel
      we always need to resynch our beacon timers, because a reset will
      clear them.
      
      This bug is a regression introduced on 2.6.36. The order of the
      changes are as follows:
      
      5ee08656 - Sat Jul 31 - ath9k: prevent calibration during off-channel activity
      a0daa0e7 - Tue Jul 27 - Revert "mac80211: fix sw scan bracketing"
      543708be - Fri Jun 18 - mac80211: fix sw scan bracketing
      
      mcgrof@tux ~/linux-2.6-allstable (git::master)$ git describe \
              --contains 5ee08656
      v2.6.36-rc1~43^2~34^2~22
      
      mcgrof@tux ~/linux-2.6-allstable (git::master)$ git describe \
              --contains a0daa0e7
      v2.6.36-rc1~571^2~64^2~13
      
      mcgrof@tux ~/linux-2.6-allstable (git::master)$ git describe \
              --contains 543708be
      v2.6.36-rc1~571^2~107^2~187
      
      So 5ee08656 would have worked if a0daa0e7 was not committed but
      it was so this means 5ee08656 was broken since it assumed that
      when we were in the channel change routine the scan flag would
      be lifted. As it turns out the scan flag will be set when we
      are already on the home channel.
      
      For more details refer to:
      
      http://code.google.com/p/chromium-os/issues/detail?id=5715
      
      These issues will need to be considered for our solution on
      reshifting the scan complete callback location on mac80211 on
      current development kernel work.
      
      This patch has stable fixes which apply down to [2.6.36+]
      
      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>
      52b8ac92