1. 31 12月, 2015 2 次提交
  2. 17 11月, 2015 1 次提交
  3. 13 11月, 2015 4 次提交
  4. 05 11月, 2015 1 次提交
  5. 29 10月, 2015 4 次提交
  6. 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
  7. 16 10月, 2015 5 次提交
  8. 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
  9. 09 10月, 2015 2 次提交
  10. 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
  11. 27 9月, 2015 1 次提交
  12. 26 8月, 2015 2 次提交
  13. 30 7月, 2015 1 次提交
  14. 24 7月, 2015 1 次提交
  15. 12 7月, 2015 1 次提交
  16. 30 6月, 2015 4 次提交
  17. 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
  18. 09 6月, 2015 1 次提交
  19. 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
  20. 29 5月, 2015 1 次提交
  21. 22 5月, 2015 2 次提交
    • 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
    • J
      ath10k: enable ASPM · 76d870ed
      Janusz Dziedzic 提交于
      It is actually safe to enable ASPM after the
      device is booted up.
      
      This reduces power drain of QCA61X4 when driver is
      simply loaded (no interface is up) from 31mA to
      14mA. QCA988X wasn't measured but doesn't seem to
      regress in any other way.
      Signed-off-by: NJanusz Dziedzic <janusz.dziedzic@tieto.com>
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      76d870ed
  22. 22 4月, 2015 1 次提交