1. 30 11月, 2015 2 次提交
  2. 13 11月, 2015 1 次提交
    • V
      ath10k: fix peer assoc complete WMI command for 10.4 · b54e16f1
      Vasanthakumar Thiagarajan 提交于
      There is an extra 4-byte member when compared to WMI 10.2 added to
      assoc complete command in WMI 10.4. This new member is used for 160Mhz
      related configuration. This WMI command mismatch between host and
      firmware does not cause any real issues because this new member is not
      used in 10.4 firmwares so far (10.4.1.00030-1). This difference in WMI
      command interface brings in a new wmi_ops for 10.4 gen_peer_assoc().
      No noticeable functionality differences with this change can be seen
      with the current 10.4 firmwares, but the WMI interface has to be
      fixed to work with future 10.4 firmwares which may be using this new
      member.
      Signed-off-by: NVasanthakumar Thiagarajan <vthiagar@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      b54e16f1
  3. 05 11月, 2015 4 次提交
  4. 29 10月, 2015 2 次提交
  5. 19 10月, 2015 1 次提交
  6. 06 10月, 2015 2 次提交
    • M
      ath10k: implement debugfs interface for Transmit Power Control stats · 29542666
      Maharaja Kennadyrajan 提交于
      The Transmit Power Control (TPC) dump will show the power control values for
      each rate which makes it easier to debug calibration problems.
      
      Example usage:
      
      # cat /sys/kernel/debug/ieee80211/phy0/ath10k/tpc_stats
      TPC config for channel  5180  mode  10
      
      CTL             = 0x10 Reg. Domain              = 58
      Antenna Gain    = 1    Reg. Max Antenna Gain    = 0
      Power Limit     = 34   Reg. Max Power           = 34
      Num tx chains   = 3    Num supported rates      = 155
      
      **********CDD POWER TABLE*******
      
      No.  Preamble Rate_code tpc_valu1 tpc_value2 tpc_value3
      0       CCK     0x40       0            0       0
      1       CCk     0x41       0            0       0
      
      [...]
      
      154     HTCUP   0x 0       24           0       0
      **********STBC POWER TABLE******
      No.  Preamble Rate_code tpc_valu1 tpc_value2 tpc_value3
      0       CCK     0x40       0            0       0
      
      [...]
      
      154     HTCUP   0x 0       24           24      0
      **********TXBF POWER TABLE******
      
      is used to dump the tx power control stats.
      Signed-off-by: NMaharaja Kennadyrajan <c_mkenna@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      29542666
    • K
      ath10k: add a_sle32_to_cpu() · 3b8fc902
      Kalle Valo 提交于
      Copy a_sle32_to_cpu() from ath6kl so that we can easily handle signed __le32
      values. This is needed in struct wmi_pdev_tpc_config_event.
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      3b8fc902
  7. 09 9月, 2015 1 次提交
    • V
      ath10k: fix DMA alloc failure for target requested memory chunks · a925a376
      Vasanthakumar Thiagarajan 提交于
      During long hours of stress testing like AP interface up/down along
      with continuous ping flood from a station doing connect/disconnect,
      it is observed that the system is not able to allocate DMA consistent
      memory of size > 512KB chunks as requested by firmware in WMI_SERVICE_EVENTID.
      With the system memory getting fragmented during the run based on the
      size of the memory requested, the failure to return physically continguous
      memory of high order can happen. Once the system gets to this situation,
      bringing up the wifi interface will fail and a system reboot may be needed
      to make it work again. This problem is obseved with QCA99X0.
      
      To fix this issue, allocate the DMA memory requested by firmware during
      device probe time and keep it during the life time of the device. WMI service
      ready event handler is changed to allocate the memory chunks if it is
      not already allocated or if the memory allocated for the previous ready
      event is not same as the current requested ones. After this patch the
      memory usage when wifi is inactive will be inceased by few 100KB to
      3MB based on the target type.
      
      Failure happens with the following stack trace
      
      [29557.488773] kworker/u4:1: page allocation failure: order:8, mode:0xd0
      [29557.494297] CPU: 0 PID: 8402 Comm: kworker/u4:1 Not tainted 3.14.43 #7
      [29557.500793] Workqueue: ath10k_aux_wq ath10k_wmi_event_service_ready_work [ath10k_core]
      [29557.508602] [<c021e9b0>] (unwind_backtrace) from [<c021ba90>] (show_stack+0x10/0x14)
      [29557.516580] [<c021ba90>] (show_stack) from [<c03bdddc>] (dump_stack+0x88/0xcc)
      [29557.523612] [<c03bdddc>] (dump_stack) from [<c0290e34>] (warn_alloc_failed+0xdc/0x108)
      [29557.531515] [<c0290e34>] (warn_alloc_failed) from [<c0292d88>] (__alloc_pages_nodemask+0x4f0/0x654)
      [29557.540485] [<c0292d88>] (__alloc_pages_nodemask) from [<c0222b48>] (__dma_alloc_buffer.isra.20+0x2c/0x104)
      [29557.550260] [<c0222b48>] (__dma_alloc_buffer.isra.20) from [<c0222c34>] (__alloc_remap_buffer.isra.23+0x14/0xb8)
      [29557.560413] [<c0222c34>] (__alloc_remap_buffer.isra.23) from [<c022305c>] (__dma_alloc+0x224/0x2b8)
      [29557.569490] [<c022305c>] (__dma_alloc) from [<c0223208>] (arm_dma_alloc+0x84/0x90)
      [29557.577010] [<c0223208>] (arm_dma_alloc) from [<bf5159d0>] (ath10k_wmi_event_service_ready_work+0x2f8/0x420 [ath10k_core])
      [29557.588055] [<bf5159d0>] (ath10k_wmi_event_service_ready_work [ath10k_core]) from [<c024260c>] (process_one_work+0x20c/0x328)
      [29557.599305] [<c024260c>] (process_one_work) from [<c02432d0>] (worker_thread+0x228/0x360)
      [29557.607470] [<c02432d0>] (worker_thread) from [<c0247f88>] (kthread+0xd8/0xec)
      [29557.614750] [<c0247f88>] (kthread) from [<c0208d18>] (ret_from_fork+0x14/0x3c)
      [29557.712751] Normal: 696*4kB (UEMR) 512*8kB (UEMR) 367*16kB (UEMR) 404*32kB (UEMR) 455*64kB (UEMR) 424*128kB (UEMR) 379*256kB (UMR) 327*512kB (UMR) 1*1024kB (R) 0*2048kB 0*4096kB = 374544kB
      Signed-off-by: NVasanthakumar Thiagarajan <vthiagar@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      a925a376
  8. 17 8月, 2015 3 次提交
    • R
      ath10k: handle 10.4 firmware phyerr event · 2b0a2e0d
      Raja Mani 提交于
      Header format of 10.4 firmware phyerr event is not alligned
      with pre 10.4 firmware. Introduce new wmi handlers to parse
      10.4 firmware specific phyerror event header.
      
      With changes covered in this patch, radar detection works on
      qca9x0 hw 2.0 which uses 10.4 firmware.
      Signed-off-by: NRaja Mani <rmani@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      2b0a2e0d
    • R
      ath10k: refactor phyerr event handlers · 991adf71
      Raja Mani 提交于
      Existing phyerr event handlers directly uses phyerr header format
      (ie, struct wmi_phyerr and struct wmi_phyerr_event) in the code
      exactly on how firmware packs it. This is the problem in 10.4 fw
      specific phyerr event handling where it uses different phyerror
      header format. Before adding 10.4 specific handler, little bit of
      refactor is done in existing phyerr handlers.
      
      Two new abstracted structures (struct wmi_phyerr_ev_hdr_arg and
      struct wmi_phyerr_ev_arg) are introduced to remove dependency of using
      firmware specific header format in the code. So that firmware specific
      phyerror handlers can populate values to abstracted structures and
      the following code can use abstracted struct for further operation.
      
      .pull_phyerr_hdr is added newly to pull common phyerr header info
      like tsf, buf_len, number of phyerr packed. Existing .pull_phyerr
      handler is changed and called to parse every sub phyerrs in the event.
      
      Validated these refactoring on qca988x hw2.0 using fw 10.2.4 version.
      Signed-off-by: NRaja Mani <rmani@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      991adf71
    • V
      ath10k: fix invalid survey reporting for QCA99X0 · 3d2a2e29
      Vasanthakumar Thiagarajan 提交于
      There are three WMI_CHAN_INFO events reported per channel
      in QCA99X0 firmware. First one is a notification at the begining
      of the channel dwell time with cmd_flag as CHAN_INFO_START(cmd_flag = 0),
      second one is a notification at the end of the dwell time with cmd_flag
      CHAN_INFO_PRE_COMPLETE (cmd_flag = 2) and the third is the indication
      with CHAN_INFO_COMPLETE (cmd_flag = 1) which is the last indication for
      the channel. Since there is a new state before the completion, the handler
      is to fixed so that the counts are deducted from the ones reported with
      CHAN_INFO_START rather than the ones reported with CHAN_INFO_PRE_COMPLETE.
      Without this fix there will be lots of 0 msecs reported as active
      and busy time.
      Signed-off-by: NVasanthakumar Thiagarajan <vthiagar@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      3d2a2e29
  9. 13 8月, 2015 2 次提交
  10. 02 7月, 2015 4 次提交
    • R
      ath10k: set max spatial stream to 4 for 10.4 fw · 5c8726ec
      Raja Mani 提交于
      10.4 fw supports upto 4 spatial stream. Limit max spatial
      stream to 4 for 10.4 firmware and to 3 for non 10.4 firmware.
      Signed-off-by: NRaja Mani <rmani@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      5c8726ec
    • R
      ath10k: add scan support for 10.4 fw · b2297baa
      Raja Mani 提交于
      Existing non 10.4 firmware scan related events and commands are
      matching with 10.4 firmware (except chan info event). Link general
      start scan,stop scan, scan channel list configuration functions
      to 10.4 wmi function table and add a new handler to parse 10.4
      specific chan info event.
      
      10.4 firmware has extra scan completion reason
      WMI_SCAN_REASON_INTERNAL_FAILURE and new scan event
      WMI_SCAN_EVENT_FOREIGN_CHANNEL_EXIT compared to previous firmware
      versions. These things are added in respective enum.
      Signed-off-by: NRaja Mani <rmani@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      b2297baa
    • R
      ath10k: handle 10.4 firmware wmi swba event · 3cec3be3
      Raja Mani 提交于
      10.4 firmware swba event payload has space to accommodate upto
      512 client traffic indication info & one p2p noa descriptor.
      It's is not matching with exiting swba event format defined for
      non 10.4 firmware. Non 10.4 firmware swba event format is designed
      to support only upto only 128 client and four p2p notice of absence
      descriptor.
      
      following changes are done in this patch to enable ath10k to handle
      10.4 firmware swba event,
      
       - link generic ath10k_wmi_event_host_swba() to handle 10.4 swba
         event in 10.4 wmi rx handler.
      
       - add 10.4 specific swba event structure wmi_10_4_host_swba_event.
      
       - new function ath10k_wmi_10_4_op_pull_swba_ev() to parse
         10.4 swba event.
      
       - increase tim_bitmap[] size in ath10k_vif to 64 to hold 512 station
         power save state.
      Signed-off-by: NRaja Mani <rmani@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      3cec3be3
    • R
      ath10k: enhance swba event handler to adapt different size tim bitmap · a03fee34
      Raja Mani 提交于
      Due to 512 client support in 10.4 firmware, size of tim ie is going
      to be slightly higher than non 10.4 firmware. So, size of tim_bitmap
      what is carried in swba event from 10.4 firmware is bit higher.
      
      The only bottle neck to reuse existing swba handler
      ath10k_wmi_event_host_swba() for 10.4 is that code designed to deal
      with fixed size tim bitmap(ie, tim_info[].tim_bitmap in wmi_swba_ev_arg).
      This patch removes such size limitation and makes it more suitable
      to handle swba event which has different size tim bitmap.
      
      All existing swba event parsing functions are changed to adapt this
      change. Actual support to handle 10.4 swba event is added in next patch.
      Only preparation is made in this patch.
      Signed-off-by: NRaja Mani <rmani@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      a03fee34
  11. 30 6月, 2015 7 次提交
  12. 29 5月, 2015 1 次提交
  13. 17 4月, 2015 3 次提交
  14. 15 4月, 2015 1 次提交
    • M
      ath10k: use scan burst for hw roc · dbd3f9f3
      Michal Kazior 提交于
      This improves chances of getting onto a foreign
      channel and thus makes P2P a bit more reliable.
      
      Without scan burst it was possible for firmware to
      not switch to foreign channel resulting in "failed
      to switch to channel for roc scan" warning. This
      would also effectively fail some offchan tx
      requests and lead to P2P find/connect taking
      longer. This could be observed when other vifs
      were running/busy, e.g. with P2P GO.
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      dbd3f9f3
  15. 02 4月, 2015 1 次提交
  16. 30 3月, 2015 4 次提交
  17. 12 3月, 2015 1 次提交