1. 16 1月, 2018 1 次提交
    • K
      ath10k: fix recently introduced checkpatch warnings · a3e712b7
      Kalle Valo 提交于
      Checkpatch found these issues:
      
      drivers/net/wireless/ath/ath10k/ce.h:324: Please use a blank line after function/struct/union/enum declarations
      drivers/net/wireless/ath/ath10k/core.c:1321: Please don't use multiple blank lines
      drivers/net/wireless/ath/ath10k/htt.h:1859: Please use a blank line after function/struct/union/enum declarations
      Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
      a3e712b7
  2. 27 12月, 2017 3 次提交
  3. 06 7月, 2017 1 次提交
  4. 16 6月, 2017 1 次提交
  5. 19 1月, 2017 1 次提交
    • M
      ath10k: dump Copy Engine registers during firmware crash · c75c398b
      Mohammed Shafi Shajakhan 提交于
      Dump Copy Engine source and destination ring addresses.
      This is useful information to debug firmware crashes, assertes or hangs over long run
      assessing the Copy Engine Register status. This also enables dumping CE
      register status in debugfs Crash Dump file.
      
      Screenshot:
      
      ath10k_pci 0000:02:00.0: simulating hard firmware crash
      ath10k_pci 0000:02:00.0: firmware crashed! (uuid 84901ff5-d33c-456e-93ee-0165dea643cf)
      ath10k_pci 0000:02:00.0: qca988x hw2.0 target 0x4100016c chip_id 0x043202ff sub 0000:0000
      ath10k_pci 0000:02:00.0: kconfig debug 1 debugfs 1 tracing 1 dfs 1 testmode 1
      ath10k_pci 0000:02:00.0: firmware ver 10.2.4.70.59-2 api 5 features no-p2p,raw-mode,mfp,allows-mesh-bcast crc32 4159f498
      ath10k_pci 0000:02:00.0: board_file api 1 bmi_id N/A crc32 bebc7c08
      ath10k_pci 0000:02:00.0: htt-ver 2.1 wmi-op 5 htt-op 2 cal otp max-sta 128 raw 0 hwcrypto 1
      ath10k_pci 0000:02:00.0: firmware register dump:
      ath10k_pci 0000:02:00.0: [00]: 0x4100016C 0x00000000 0x009A0F2A 0x00000000
      ath10k_pci 0000:02:00.0: [04]: 0x00000000 0x00000000 0x00000000 0x00000000
      ath10k_pci 0000:02:00.0: [08]: 0x00000000 0x00000000 0x00000000 0x00000000
      ath10k_pci 0000:02:00.0: [12]: 0x00000000 0x00000000 0x00000000 0x00000000
      ath10k_pci 0000:02:00.0: [16]: 0x00000000 0x00000000 0x00000000 0x009A0F2A
      ath10k_pci 0000:02:00.0: [20]: 0x00000000 0x00401930 0x00000000 0x00000000
      ath10k_pci 0000:02:00.0: [24]: 0x00000000 0x00000000 0x00000000 0x00000000
      ath10k_pci 0000:02:00.0: [28]: 0x00000000 0x00000000 0x00000000 0x00000000
      ath10k_pci 0000:02:00.0: [32]: 0x00000000 0x00000000 0x00000000 0x00000000
      ath10k_pci 0000:02:00.0: [36]: 0x00000000 0x00000000 0x00000000 0x00000000
      ath10k_pci 0000:02:00.0: [40]: 0x00000000 0x00000000 0x00000000 0x00000000
      ath10k_pci 0000:02:00.0: [44]: 0x00000000 0x00000000 0x00000000 0x00000000
      ath10k_pci 0000:02:00.0: [48]: 0x00000000 0x00000000 0x00000000 0x00000000
      ath10k_pci 0000:02:00.0: [52]: 0x00000000 0x00000000 0x00000000 0x00000000
      ath10k_pci 0000:02:00.0: [56]: 0x00000000 0x00000000 0x00000000 0x00000000
      ath10k_pci 0000:02:00.0: Copy Engine register dump:
      ath10k_pci 0000:02:00.0: [00]: 0x00057400   7   7   3   3
      ath10k_pci 0000:02:00.0: [01]: 0x00057800  18  18  85  86
      ath10k_pci 0000:02:00.0: [02]: 0x00057c00  49  49  48  49
      ath10k_pci 0000:02:00.0: [03]: 0x00058000  16  16  17  16
      ath10k_pci 0000:02:00.0: [04]: 0x00058400   4   4  44   4
      ath10k_pci 0000:02:00.0: [05]: 0x00058800  12  12  11  12
      ath10k_pci 0000:02:00.0: [06]: 0x00058c00   3   3   3   3
      ath10k_pci 0000:02:00.0: [07]: 0x00059000   0   0   0   0
      ieee80211 phy0: Hardware restart was requested
      ath10k_pci 0000:02:00.0: device successfully recovered
      Signed-off-by: NMohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
      [kvalo@qca.qualcomm.com: simplify the implementation]
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      c75c398b
  6. 14 4月, 2016 1 次提交
  7. 04 4月, 2016 2 次提交
    • R
      ath10k: reuse copy engine 5 (htt rx) descriptors · 128abd09
      Rajkumar Manoharan 提交于
      Whenever htt rx indication i.e target to host messages are received
      on rx copy engine (CE5), the message will be freed after processing
      the response. Then CE 5 will be refilled with new descriptors at
      post rx processing. This memory alloc and free operations can be avoided
      by reusing the same descriptors.
      
      During CE pipe allocation, full ring is not initialized i.e n-1 entries
      are filled up. So for CE 5 full ring should be filled up to reuse
      descriptors. Moreover CE 5 write index will be updated in single shot
      instead of incremental access. This could avoid multiple pci_write and
      ce_ring access. From experiments, It improves CPU usage by ~3% in IPQ4019
      platform.
      Signed-off-by: NRajkumar Manoharan <rmanohar@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      128abd09
    • R
      ath10k: cleanup copy engine receive next completion · 24d9ef5e
      Rajkumar Manoharan 提交于
      The physical address necessary to unmap DMA ('bufferp') is stored
      in ath10k_skb_cb as 'paddr'. For diag register read and write
      operations, 'paddr' is stored in transfer context. ath10k doesn't rely
      on the meta/transfer_id. So the unused output arguments {bufferp, nbytesp
      and transfer_idp} are removed from CE recv_next completion.
      Signed-off-by: NRajkumar Manoharan <rmanohar@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      24d9ef5e
  8. 06 3月, 2016 1 次提交
  9. 29 10月, 2015 2 次提交
  10. 16 10月, 2015 2 次提交
  11. 30 6月, 2015 3 次提交
  12. 15 2月, 2015 1 次提交
  13. 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
  14. 23 10月, 2014 1 次提交
  15. 26 9月, 2014 1 次提交
    • 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
  16. 18 9月, 2014 2 次提交
  17. 25 8月, 2014 2 次提交
  18. 27 5月, 2014 1 次提交
  19. 28 3月, 2014 1 次提交
  20. 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
  21. 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
  22. 13 11月, 2013 2 次提交
  23. 07 10月, 2013 2 次提交
  24. 13 9月, 2013 1 次提交
  25. 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
  26. 01 9月, 2013 3 次提交