1. 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
  2. 04 3月, 2016 1 次提交
  3. 28 1月, 2016 4 次提交
    • R
      ath10k: add basic skeleton to support ahb · 0b523ced
      Raja Mani 提交于
      qca4019 uses ahb instead of pci where it slightly differs in device
      enumeration, clock control, reset control, etc. Good thing is that
      ahb also uses copy engine for the data transaction. So, the most of
      the stuff implemented in pci.c/ce.c are reusable in ahb case too.
      
      Device enumeration in ahb case comes through platform driver/device
      model. All resource details like irq, memory map, clocks, etc for
      qca4019 can be fetched from of_node of platform device.
      
      Simply flow would look like,
      
       device tree => platform device (kernel) => platform driver (ath10k)
      
      Device tree entry will have all qca4019 resource details and the same
      info will be passed to kernel. Kernel will prepare new platform device
      for that entry and expose DT info to of_node in platform device.
      Later, ath10k would register platform driver with unique compatible name
      and then kernels binds to corresponding compatible entry & calls ath10k
      ahb probe functions. From there onwards, ath10k will take control of it
      and move forward.
      
      New bool flag CONFIG_ATH10K_AHB is added in Kconfig to conditionally
      enable ahb support in ath10k. On enabling this flag, ath10k_pci.ko
      will have ahb support. This patch adds only basic skeleton and few
      macros to support ahb in the context of qca4019.
      Signed-off-by: NRaja Mani <rmani@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      0b523ced
    • R
      ath10k: pull reusable code from pci probe and remove for ahb · 90188f80
      Raja Mani 提交于
      Some of the code present in ath10k_pci_{probe|remove} are reusable
      in ahb case too. To avoid code duplication, move reusable code to
      new functions. Later, those new functions can be called from ahb
      module's probe and exit functions.
      Signed-off-by: NRaja Mani <rmani@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      90188f80
    • R
      ath10k: make ath10k_pci_read32/write32() ops more generic · 4ddb3299
      Raja Mani 提交于
      ath10k_pci_read32/write32() does work more specific to
      PCI by ensuring pci wake/sleep for every read and write.
      There is a plan to use most of stuff available in pci.c
      (irq stuff, copy engine, etc) for AHB case. Such kind
      of pci wake/sleep for every read/write is not required
      in AHB case (qca4019). All those reusable areas in pci.c
      and ce.c calls ath10k_pci_read32/write32() for low level
      read and write.
      
      In fact, ath10k_pci_read32/write32() should do what it does
      today for PCI case. But for AHB, it has to do differently.
      To make ath10k_pci_read32/write32() more generic, new function
      pointers are added in ar_pci for the function which does
      operation more close to the bus. Later, corresponding bus
      specific read and write function will be mapped to that.
      
      ath10k_pci_read32/write32() are changed to call directly
      those function pointers without worrying which bus underlying
      to it. Also, the function to get number of bank is changed
      in the same way.
      Signed-off-by: NRaja Mani <rmani@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      4ddb3299
    • R
      ath10k: make some of ath10k_pci_* func reusable · f52f5171
      Raja Mani 提交于
      Some of static functions present in pci.c file are reusable
      in ahb (qca4019) case. Remove static word for those reusable
      functions and have those function prototype declaration in
      pci.h file. So that, pci.h header file can be included in
      ahb module and reused. There is no functionality changes done
      in this patch.
      Signed-off-by: NRaja Mani <rmani@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      f52f5171
  4. 31 12月, 2015 2 次提交
  5. 17 11月, 2015 1 次提交
  6. 13 11月, 2015 4 次提交
  7. 05 11月, 2015 1 次提交
  8. 29 10月, 2015 4 次提交
  9. 19 10月, 2015 1 次提交
    • A
      ath10k: disable PCI PS for QCA988X and QCA99X0 · 1aaf8efb
      Anilkumar Kolli 提交于
      This patch disables PCI PS for QCA988X and QCA99X0, Since PCI PS is
      validated for QCA6174, let it be enabled only for QCA6174. It would be
      better to execute PCI PS related functions only for the supported devices.
      
      PCI time out issue is observed with QCA99X0 on x86 platform, We will
      disable PCI PS for QCA988X and QCA99X0 until PCI PS is properly implemented.
      
      Taking and releasing ps_lock is causing higher CPU consumption. Michal Kazior
      suggested ps_lock overhead to be reworked so that ath10k_pci_wake/sleep
      functions are called less often, i.e. move the powersave logic up (only during
      irq handling, tx path, submitting fw commands) but that's a bigger change and
      can be implemented later.
      Signed-off-by: NAnilkumar Kolli <akolli@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      1aaf8efb
  10. 16 10月, 2015 5 次提交
  11. 14 10月, 2015 1 次提交
    • M
      ath10k: add board 2 API support · 0a51b343
      Manikanta Pubbisetty 提交于
      QCA6174 needs different board files based on board type. To make it easier to
      distribute multiple board files and automatically choose correct board file
      create a simple TLV file format following the same principles as with FW IEs.
      The file is named board-2.bin and contain multiple board files. Each board file
      then can have multiple names.
      
      ath10k searches for file board-N.bin (where N is the interface version number
      for the board file, just like we for firmware files) in /lib/firmware/*, for
      example for qca99x0 it will try to find it here:
      
      /lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin
      
      If ath10k doesn't find board-2.bin then it will fallback to the old board.bin file.
      
      This patch adds a simple name scheme using pci device id which for now will be
      used by qca6174:
      
      bus=%s,vendor=%04x,device=%04x,subsystem-vendor=%04x,subsystem-device=%04x
      
      This removes the old method of having subsystem ids in ar->spec_board_id and
      using that in the board file name.
      Signed-off-by: NManikanta Pubbisetty <c_mpubbi@qti.qualcomm.com>
      [kvalo@qca.qualcomm.com: simplified the file format, rewrote commit log, other smaller changes]
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      0a51b343
  12. 09 10月, 2015 2 次提交
  13. 06 10月, 2015 2 次提交
    • K
      ath10k: fix whitespace usage · 9a14969f
      Kalle Valo 提交于
      checkpatch found:
      
      drivers/net/wireless/ath/ath10k/core.c:574: Blank lines aren't necessary before a close brace '}'
      drivers/net/wireless/ath/ath10k/mac.c:4067: Missing a blank line after declarations
      drivers/net/wireless/ath/ath10k/mac.c:4083: Missing a blank line after declarations
      drivers/net/wireless/ath/ath10k/mac.c:4084: spaces required around that '>>=' (ctx:WxV)
      drivers/net/wireless/ath/ath10k/pci.c:1507: Missing a blank line after declarations
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      9a14969f
    • K
      ath10k: indentation fixes · 617b0f4d
      Kalle Valo 提交于
      checkpatch found:
      
      drivers/net/wireless/ath/ath10k/core.c:513: Alignment should match open parenthesis
      drivers/net/wireless/ath/ath10k/core.c:1266: code indent should use tabs where possible
      drivers/net/wireless/ath/ath10k/core.c:1267: code indent should use tabs where possible
      drivers/net/wireless/ath/ath10k/core.c:1268: code indent should use tabs where possible
      drivers/net/wireless/ath/ath10k/core.c:1269: code indent should use tabs where possible
      drivers/net/wireless/ath/ath10k/mac.c:4659: Alignment should match open parenthesis
      drivers/net/wireless/ath/ath10k/mac.c:6271: Alignment should match open parenthesis
      drivers/net/wireless/ath/ath10k/pci.c:2260: Alignment should match open parenthesis
      drivers/net/wireless/ath/ath10k/wmi.c:3510: Alignment should match open parenthesis
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      617b0f4d
  14. 27 9月, 2015 1 次提交
  15. 26 8月, 2015 2 次提交
  16. 30 7月, 2015 1 次提交
  17. 24 7月, 2015 1 次提交
  18. 12 7月, 2015 1 次提交
  19. 30 6月, 2015 4 次提交