1. 29 10月, 2015 1 次提交
  2. 16 10月, 2015 2 次提交
  3. 09 10月, 2015 1 次提交
    • R
      ath10k: optimize ce_lock on post rx buffer processing · ab4e3db0
      Rajkumar Manoharan 提交于
      After processing received packets from copy engine, host will allocate
      new buffer and queue them back to copy engine ring for further
      packet reception. On post rx processing path, skb allocation and
      dma mapping are unnecessarily handled within ce_lock. This is affecting
      peak throughput and also causing more CPU consumption. Optimize this
      by acquiring ce_lock only when accessing copy engine ring and moving
      skb allocation out of ce_lock.
      
      In AP148 platform with QCA99x0 in conducted environment, UDP uplink peak
      throughput is improved from ~1320 Mbps to ~1450 Mbps and TCP uplink peak
      throughput is increased from ~1240 Mbps (70% host CPU load) to ~1300 Mbps
      (71% CPU load). Similarly ~40Mbps improvement is observed in downlink
      path.
      Signed-off-by: NRajkumar Manoharan <rmanohar@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      ab4e3db0
  4. 30 6月, 2015 1 次提交
  5. 27 1月, 2015 1 次提交
    • M
      ath10k: add support for qca6174 · d63955b3
      Michal Kazior 提交于
      The QCA6174 in combination with new wmi-tlv firmware is capable of
      multi-channel, beamforming, tdls and other features.
      
      This patch just makes it possible to boot these devices and do some basic stuff
      like connect to an AP without encryption. Some things may not work or may be
      unreliable. New features will be implemented later. This will be addressed
      eventually with future patches.
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      d63955b3
  6. 08 12月, 2014 1 次提交
  7. 31 10月, 2014 2 次提交
  8. 23 10月, 2014 1 次提交
  9. 26 9月, 2014 2 次提交
    • K
      ath10k: add diag_read() to hif ops · eef25405
      Kalle Valo 提交于
      diag_read() is used for reading from firmware memory via the diagnose window.
      First user will be cal_data debugfs file.
      
      To serialise diagnostic window access and make it safe to use while firmware is
      running take ce_lock both in ath10k_pci_diag_write_mem() and
      ath10k_pci_diag_read_mem(). Because of that all the CE calls had to be changed
      to _nolock variants.
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      eef25405
    • K
      ath10k: don't enable interrupts for the diagnostic window · d5d6805b
      Kalle Valo 提交于
      The diagnostic window (CE7) uses polling and is not initiliased to retrieve
      interrupts so disable interrupts altogether for CE7. Otherwise ath10k crashes
      when using the diagnostic window while the firmware is running due to NULL
      dereference and polling reads timeout.
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      d5d6805b
  10. 18 9月, 2014 1 次提交
  11. 27 8月, 2014 1 次提交
  12. 25 8月, 2014 2 次提交
  13. 12 8月, 2014 1 次提交
  14. 15 7月, 2014 1 次提交
  15. 27 5月, 2014 1 次提交
  16. 28 3月, 2014 2 次提交
  17. 28 2月, 2014 2 次提交
    • M
      ath10k: bypass htc for htt tx path · a16942e6
      Michal Kazior 提交于
      Going through full htc tx path for htt tx is a
      waste of resources. By skipping it it's possible
      to easily submit scatter-gather to the pci hif for
      reduced host cpu load and improved performance.
      
      The new approach uses dma pool to store the
      following metadata for each tx request:
       * msdu fragment list
       * htc header
       * htt tx command
      
      The htt tx command contains a msdu prefetch.
      Instead of copying it original mapped msdu address
      is used to submit a second scatter-gather item to
      hif to make a complete htt tx command.
      
      The htt tx command itself hands over dma mapped
      pointers to msdus and completion of the command
      itself doesn't mean the frame has been sent and
      can be unmapped/freed. This is why htc tx
      completion is skipped for htt tx as all tx related
      resources are freed upon htt tx completion
      indication event (which also implicitly means htt
      tx command itself was completed).
      
      Since now each htt tx request effectively consists
      of 2 copy engine items CE_HTT_H2T_MSG_SRC_NENTRIES
      is updated to allow maximum of
      TARGET_10X_NUM_MSDU_DESC msdus being queued. This
      keeps the tx path resource management simple.
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      a16942e6
    • M
      ath10k: replace send_head() with tx_sg() · 726346fc
      Michal Kazior 提交于
      PCI is capable of handling scatter-gather lists.
      This can be used to avoid copying memory.
      
      Change the name of the callback while at to
      reflect its purpose.
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      726346fc
  18. 27 11月, 2013 1 次提交
    • M
      ath10k: defer irq registration until hif start() · 5d1aa946
      Michal Kazior 提交于
      It's impossible to rely on disable_irq() and/or CE
      interrupt masking with legacy shared interrupts.
      Other devices sharing the same irq line may assert
      it while ath10k is doing something that requires
      no interrupts.
      
      Irq handlers are now registered after all
      preparations are complete so spurious/foreign
      interrupts won't do any harm. The handlers are
      unregistered when no interrupts are required (i.e.
      during driver teardown).
      
      This also removes the ability to receive FW early
      indication (since interrupts are not registered
      until early boot is complete). This is not mission
      critical (it's more of a hint that early boot
      failed due to unexpected FW crash) and will be
      re-added in a follow up patch.
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      5d1aa946
  19. 13 11月, 2013 5 次提交
  20. 21 10月, 2013 1 次提交
  21. 07 10月, 2013 2 次提交
  22. 13 9月, 2013 1 次提交
  23. 12 9月, 2013 1 次提交
  24. 08 9月, 2013 1 次提交
    • M
      ath10k: prevent CE from looping indefinitely · 5440ce25
      Michal Kazior 提交于
      The double while() could end up running forever.
      Inner while() would complete very fast. However
      the completion processing could take enough time
      for more completions to flow in. In that case the
      outer while() would not terminate and run again,
      and again. This could happen especially on a slow
      host system.
      
      This could lead to a system freeze during heavy
      traffic. Note: this doesn't solve all known
      starvation issues yet.
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      5440ce25
  25. 03 9月, 2013 3 次提交
  26. 01 9月, 2013 2 次提交