1. 04 11月, 2014 1 次提交
  2. 31 10月, 2014 1 次提交
    • M
      ath10k: speed up hw recovery · 7962b0d8
      Michal Kazior 提交于
      In some cases hw recovery was taking an absurdly
      long time due to ath10k waiting for things that
      would never really complete.
      
      Instead of waiting for inevitable timeouts poke
      all completions and wakequeues and check if it's
      still worth waiting.
      
      Reading/writing ar->state requires conf_mutex.
      Since waiters might be holding it introduce a new
      flag CRASH_FLUSH so it's possible to tell waiters
      to abort whatever they were waiting for.
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      7962b0d8
  3. 21 10月, 2014 3 次提交
    • M
      ath10k: use bss_info as txpower source · 7d9d5587
      Michal Kazior 提交于
      This simply changes the source for txpower setup.
      It does not make ath10k use different txpower
      values for different vifs.
      
      This will make it easier to implement chanctx in
      ath10k in the future.
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      7d9d5587
    • K
      ath10k: retrieve calibration data from file · a58227ef
      Kalle Valo 提交于
      A frequent request have been to be able to provide calibration data from a
      file as some of the AP devices store the calibration data on an MTD partition.
      This patchset adds support for that and also makes it easier to add Device Tree
      support later on.
      
      The calibration data is found by using the id string provided by dev_name()
      using this format:
      
      cal-<bus>-<id>.bin
      
      With PCI the id string contains bus, slot and func values. For example for a
      PCI device in bus 2 slot 0, ath10k will try to retrieve a calibration data from
      a file:
      
      /lib/firmware/ath10k/cal-pci-0000:02:00.0.bin
      
      The calibration data sequence is:
      
      1. Check with request_firmware() if there's a calibration file
         ("cal-<bus>-<id>.bin") on the filesystem for this device. If yes, use that. If
         not, goto 2
      
      2. Check if otp.bin is able to successfully load the calibration data
         from OTP. If yes, use that. If not, goto 3.
      
      4. Print an error message that no calibration data found and stop driver
         initialization for this device.
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      a58227ef
    • K
      ath10k: add back enum ath10k_bus · e07db352
      Kalle Valo 提交于
      Commit 3a0861ff ("ath10k: remove ath10k_bus") removed enum ath10k_bus
      because it was not used for anything at the time. But now it's needed for for
      retrieving the right calibration data file so add it back. Only new addition is
      ath10k_bus_str().
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      e07db352
  4. 07 10月, 2014 1 次提交
  5. 01 10月, 2014 2 次提交
  6. 29 9月, 2014 2 次提交
  7. 23 9月, 2014 2 次提交
    • M
      ath10k: deduplicate wmi service ready logic · 5c01aa3d
      Michal Kazior 提交于
      The logic responsible for processing the event is
      no different across different firmware binaries.
      The difference that needs to be dealt with is the
      ABI of data structures.
      
      The intermediate structure uses __le32 to avoid
      extra memory allocations to byteswap
      variable-length substructures (i.e. host mem
      chunks).
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      5c01aa3d
    • M
      ath10k: workaround fw beaconing bug · 64badcb6
      Michal Kazior 提交于
      Some firmware revisions don't wait for beacon tx
      completion before sending another SWBA event. This
      could lead to hardware using old (freed) beacon
      data in some cases, e.g. tx credit starvation
      combined with missed TBTT. This is very very rare.
      
      On non-IOMMU-enabled hosts this could be a
      possible security issue because hw could beacon
      some random data on the air.  On IOMMU-enabled
      hosts DMAR faults would occur in most cases and
      target device would crash.
      
      Since there are no beacon tx completions (implicit
      nor explicit) propagated to host the only
      workaround for this is to allocate a DMA-coherent
      buffer for a lifetime of a vif and use it for all
      beacon tx commands. Worst case for this approach
      is some beacons may become corrupted, e.g. garbled
      IEs or out-of-date TIM bitmap.
      
      Keep the original beacon-related code as-is in
      case future firmware revisions solve this problem
      so that the old path can be easily re-enabled with
      a fw_feature flag.
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      64badcb6
  8. 12 9月, 2014 1 次提交
    • K
      ath10k: add testmode · 43d2a30f
      Kalle Valo 提交于
      Add testmode interface for starting and using UTF firmware which is used to run
      factory tests. This is implemented by adding new state ATH10K_STATE_UTF and user
      space can enable this state with ATH10K_TM_CMD_UTF_START command. To go back to
      normal mode user space can send ATH10K_TM_CMD_UTF_STOP.
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      43d2a30f
  9. 10 9月, 2014 1 次提交
  10. 02 9月, 2014 1 次提交
  11. 25 8月, 2014 2 次提交
  12. 12 8月, 2014 3 次提交
  13. 04 8月, 2014 1 次提交
    • S
      ath10k: add spectral scan feature · 855aed12
      Simon Wunderlich 提交于
      Adds the spectral scan feature for ath10k. The spectral scan is triggered by
      configuring a mode through a debugfs control file. Samples can be gathered via
      another relay debugfs file.
      
      Essentially, to try it out:
      
      ip link set dev wlan0 up
      echo background > /sys/kernel/debug/ieee80211/phy0/ath10k/spectral_scan_ctl
      echo trigger > /sys/kernel/debug/ieee80211/phy0/ath10k/spectral_scan_ctl
      iw dev wlan0 scan
      echo disable > /sys/kernel/debug/ieee80211/phy0/ath10k/spectral_scan_ctl
      cat /sys/kernel/debug/ieee80211/phy0/ath10k/spectral_scan0 > samples
      
      This feature is still experimental. Based on the original RFC patch of
      Sven Eckelmann.
      Signed-off-by: NSimon Wunderlich <sw@simonwunderlich.de>
      Signed-off-by: NMathias Kretschmer <mathias.kretschmer@fokus.fraunhofer.de>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      855aed12
  14. 29 7月, 2014 1 次提交
  15. 14 7月, 2014 1 次提交
  16. 26 5月, 2014 1 次提交
    • M
      ath10k: make core registering async · 6782cb69
      Michal Kazior 提交于
      If ath10k was built into the kernel it could stall
      booting for 120 seconds by default (60 seconds for
      each firmware API variant) waiting for firmware
      files before userspace was ready or filesystems
      mounted.
      
      Fix this by making the core registering
      asynchronous.
      
      This also shoves off about 1 second from boot time
      on most systems since the driver is now mostly
      initialized in a worker and modprobe takes very
      little time to complete.
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      6782cb69
  17. 23 5月, 2014 1 次提交
  18. 11 4月, 2014 1 次提交
    • M
      ath10k: refactor radar detection code · d650097b
      Michal Kazior 提交于
      If 20MHz CAC completed successfully then
      subsequent CAC with wider bandwidth (40Mhz, 80Mhz)
      with identical control frequency did not start
      monitor vdev making it impossible to detect any
      radar pulses during intended CAC.
      
      It also was incorrect to assume ath10k_config() will
      be called after CAC is finished. Theoretically for
      non-HT channels nothing changes between CAC and
      start_ap() (albeit in practice this can be
      different). The incorrect assumption led to CAC
      not being stopped on non-HT chandefs leading to
      all Rx being drooped making it impossible for
      clients to associate.
      
      While at it clean up the code a bit.
      
      kvalo: separate WARN_ON() from the if statement
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      d650097b
  19. 08 4月, 2014 1 次提交
    • M
      ath10k: refactor monitor code · 1bbc0975
      Michal Kazior 提交于
      It was possible to create/delete/start/stop
      monitor vdev from a few places that were not
      exclusively protected against each other. This
      resulted in monitor vdev being stopped/removed by
      one call origin while another one was expecting it
      to continue running.
      
      For example if CAC was started and interface's
      promiscuous mode was toggled monitor vdev was
      removed from the driver meaning no radar would be
      detected. In additional a warning would be printed
      upon CAC completion complaining it tried to stop
      non-running monitor vdev.
      
      The patch simplifies monitor code by removing
      IEEE80211_HW_WANT_MONITOR_VIF (which wasn't really
      ever needed) and improves state tracking. It also
      unifies prints.
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      1bbc0975
  20. 28 3月, 2014 2 次提交
  21. 13 3月, 2014 1 次提交
  22. 28 2月, 2014 4 次提交
  23. 15 2月, 2014 1 次提交
  24. 13 2月, 2014 2 次提交
  25. 24 1月, 2014 2 次提交
  26. 23 1月, 2014 1 次提交
    • K
      ath10k: enable firmware STA quick kickout · 5a13e76e
      Kalle Valo 提交于
      Firmware has a feature to track if the associated STA is not acking the frames.
      When that happens, the firmware sends WMI_PEER_STA_KICKOUT_EVENTID event to the
      host. Enable that to faster detect when a STA has left BSS without sending a
      deauth frame.
      
      Also set huge keepalive timeouts to avoid using the keepalive functionality in
      the firmware.
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      5a13e76e