1. 28 1月, 2016 2 次提交
    • 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
  2. 31 12月, 2015 2 次提交
  3. 17 11月, 2015 1 次提交
  4. 13 11月, 2015 4 次提交
  5. 05 11月, 2015 1 次提交
  6. 29 10月, 2015 4 次提交
  7. 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
  8. 16 10月, 2015 5 次提交
  9. 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
  10. 09 10月, 2015 2 次提交
  11. 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
  12. 27 9月, 2015 1 次提交
  13. 26 8月, 2015 2 次提交
  14. 30 7月, 2015 1 次提交
  15. 24 7月, 2015 1 次提交
  16. 12 7月, 2015 1 次提交
  17. 30 6月, 2015 4 次提交
  18. 16 6月, 2015 1 次提交
    • M
      ath10k: prevent debugfs mmio access crash kernel · aeae5b4c
      Michal Kazior 提交于
      It was possible to force an out of bounds MMIO
      read/write via debugfs. E.g. on QCA988X this could
      be triggered with:
      
       echo 0x2080e0 | tee /sys/kernel/debug/ieee80211/*/ath10k/reg_addr
       cat /sys/kernel/debug/ieee80211/*/ath10k/reg_value
      
       BUG: unable to handle kernel paging request at ffffc90001e080e0
       IP: [<ffffffff8135c860>] ioread32+0x40/0x50
       ...
       Call Trace:
        [<ffffffffa00d0c7f>] ? ath10k_pci_read32+0x4f/0x70 [ath10k_pci]
        [<ffffffffa0080f50>] ath10k_reg_value_read+0x90/0xf0 [ath10k_core]
        [<ffffffff8115c2c1>] ? handle_mm_fault+0xa91/0x1050
        [<ffffffff81189758>] __vfs_read+0x28/0xe0
        [<ffffffff812e4694>] ? security_file_permission+0x84/0xa0
        [<ffffffff81189ce3>] ? rw_verify_area+0x53/0x100
        [<ffffffff81189e1a>] vfs_read+0x8a/0x140
        [<ffffffff8118acb9>] SyS_read+0x49/0xb0
        [<ffffffff8104e39c>] ? trace_do_page_fault+0x3c/0xc0
        [<ffffffff8196596e>] system_call_fastpath+0x12/0x71
      Reported-by: NBen Greear <greearb@candelatech.com>
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      aeae5b4c
  19. 09 6月, 2015 1 次提交
  20. 01 6月, 2015 1 次提交
    • M
      ath10k: fix possible ps sleep crash · 0bcbbe67
      Michal Kazior 提交于
      If probing failed pci sleep timer could remain
      running and trigger after ath10k structures were
      freed causing invalid pointer dereference:
      
       BUG: unable to handle kernel paging request at ffffc90001c80004
       IP: [<ffffffff81354728>] iowrite32+0x38/0x40
       ...
       Call Trace:
        <IRQ>
        [<ffffffffa00da048>] ? __ath10k_pci_sleep+0x48/0x60 [ath10k_pci]
        [<ffffffffa00da44e>] ath10k_pci_ps_timer+0x5e/0x80 [ath10k_pci]
        [<ffffffff810b210e>] call_timer_fn+0x3e/0x120
        [<ffffffffa00da3f0>] ? ath10k_pci_wake+0x150/0x150 [ath10k_pci]
        [<ffffffff810b3d11>] run_timer_softirq+0x201/0x2e0
        [<ffffffff8105d73f>] __do_softirq+0xaf/0x290
        [<ffffffff8105da95>] irq_exit+0x95/0xa0
        [<ffffffff81950406>] smp_apic_timer_interrupt+0x46/0x60
        [<ffffffff8194e77e>] apic_timer_interrupt+0x6e/0x80
      
      Fixes: 77258d40 ("ath10k: enable pci soc powersaving")
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      0bcbbe67
  21. 29 5月, 2015 1 次提交
  22. 22 5月, 2015 1 次提交
    • M
      ath10k: enable pci soc powersaving · 77258d40
      Michal Kazior 提交于
      By using SOC_WAKE register it is possible to bring
      down power consumption of QCA61X4 from 36mA to
      16mA when associated and idle.
      
      Currently the sleep threshold/grace period is at a
      very conservative value of 60ms.
      
      Contrary to QCA61X4 the QCA988X firmware doesn't
      have Rx/beacon filtering available for client mode
      and SWBA events are used for beaconing in AP/IBSS
      so the SoC needs to be woken up at least every
      ~100ms in most cases. This means that QCA988X
      is at a disadvantage and the power consumption
      won't drop as much as for QCA61X4.
      
      Due to putting irq-safe spinlocks on every MMIO
      read/write it is expected this can cause a little
      performance regression on some systems. I haven't
      done any thorough measurements but some of my
      tests don't show any extreme degradation.
      
      The patch removes some explicit pci_wake calls
      that were added in 320e14b8db51aa ("ath10k: fix
      some pci wake/sleep issues"). This is safe because
      all MMIO accesses are now wrapped and the device
      is woken up automatically if necessary.
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      77258d40