1. 06 7月, 2016 1 次提交
  2. 14 6月, 2016 1 次提交
    • M
      ath10k: fix CCK h/w rates for QCA99X0 and newer chipsets · 5269c659
      Mohammed Shafi Shajakhan 提交于
      CCK hardware table mapping from QCA99X0 onwards got revised.
      The CCK hardware rate values are in a proper order wrt. to
      rate and preamble as below
      
      ATH10K_HW_RATE_REV2_CCK_LP_1M = 1,
      ATH10K_HW_RATE_REV2_CCK_LP_2M = 2,
      ATH10K_HW_RATE_REV2_CCK_LP_5_5M = 3,
      ATH10K_HW_RATE_REV2_CCK_LP_11M = 4,
      ATH10K_HW_RATE_REV2_CCK_SP_2M = 5,
      ATH10K_HW_RATE_REV2_CCK_SP_5_5M = 6,
      ATH10K_HW_RATE_REV2_CCK_SP_11M = 7,
      
      This results in reporting of rx frames (with CCK rates)
      totally wrong for QCA99X0, QCA4019. Fix this by having
      separate CCK rate table for these chipsets with rev2 suffix
      and registering the correct rate mapping to mac80211 based on
      the new hw_param (introduced) 'cck_rate_map_rev2' which shall
      be true for any newchipsets from QCA99X0 onwards
      Signed-off-by: NMohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      5269c659
  3. 07 6月, 2016 1 次提交
    • B
      ath10k: fix deadlock when peer cannot be created · fee48cf8
      Ben Greear 提交于
      We must not attempt to send WMI packets while holding the data-lock,
      as it may deadlock:
      
      BUG: sleeping function called from invalid context at drivers/net/wireless/ath/ath10k/wmi.c:1824
      in_atomic(): 1, irqs_disabled(): 0, pid: 2878, name: wpa_supplicant
      
      =============================================
      [ INFO: possible recursive locking detected ]
      4.4.6+ #21 Tainted: G        W  O
      ---------------------------------------------
      wpa_supplicant/2878 is trying to acquire lock:
       (&(&ar->data_lock)->rlock){+.-...}, at: [<ffffffffa0721511>] ath10k_wmi_tx_beacons_iter+0x26/0x11a [ath10k_core]
      
      but task is already holding lock:
       (&(&ar->data_lock)->rlock){+.-...}, at: [<ffffffffa070251b>] ath10k_peer_create+0x122/0x1ae [ath10k_core]
      
      other info that might help us debug this:
       Possible unsafe locking scenario:
      
             CPU0
             ----
        lock(&(&ar->data_lock)->rlock);
        lock(&(&ar->data_lock)->rlock);
      
       *** DEADLOCK ***
      
       May be due to missing lock nesting notation
      
      4 locks held by wpa_supplicant/2878:
       #0:  (rtnl_mutex){+.+.+.}, at: [<ffffffff816493ca>] rtnl_lock+0x12/0x14
       #1:  (&ar->conf_mutex){+.+.+.}, at: [<ffffffffa0706932>] ath10k_add_interface+0x3b/0xbda [ath10k_core]
       #2:  (&(&ar->data_lock)->rlock){+.-...}, at: [<ffffffffa070251b>] ath10k_peer_create+0x122/0x1ae [ath10k_core]
       #3:  (rcu_read_lock){......}, at: [<ffffffffa062f304>] rcu_read_lock+0x0/0x66 [mac80211]
      
      stack backtrace:
      CPU: 3 PID: 2878 Comm: wpa_supplicant Tainted: G        W  O    4.4.6+ #21
      Hardware name: To be filled by O.E.M. To be filled by O.E.M./ChiefRiver, BIOS 4.6.5 06/07/2013
       0000000000000000 ffff8801fcadf8f0 ffffffff8137086d ffffffff82681720
       ffffffff82681720 ffff8801fcadf9b0 ffffffff8112e3be ffff8801fcadf920
       0000000100000000 ffffffff82681720 ffffffffa0721500 ffff8801fcb8d348
      Call Trace:
       [<ffffffff8137086d>] dump_stack+0x81/0xb6
       [<ffffffff8112e3be>] __lock_acquire+0xc5b/0xde7
       [<ffffffffa0721500>] ? ath10k_wmi_tx_beacons_iter+0x15/0x11a [ath10k_core]
       [<ffffffff8112d0d0>] ? mark_lock+0x24/0x201
       [<ffffffff8112e908>] lock_acquire+0x132/0x1cb
       [<ffffffff8112e908>] ? lock_acquire+0x132/0x1cb
       [<ffffffffa0721511>] ? ath10k_wmi_tx_beacons_iter+0x26/0x11a [ath10k_core]
       [<ffffffffa07214eb>] ? ath10k_wmi_cmd_send_nowait+0x1ce/0x1ce [ath10k_core]
       [<ffffffff816f9e2b>] _raw_spin_lock_bh+0x31/0x40
       [<ffffffffa0721511>] ? ath10k_wmi_tx_beacons_iter+0x26/0x11a [ath10k_core]
       [<ffffffffa0721511>] ath10k_wmi_tx_beacons_iter+0x26/0x11a [ath10k_core]
       [<ffffffffa07214eb>] ? ath10k_wmi_cmd_send_nowait+0x1ce/0x1ce [ath10k_core]
       [<ffffffffa062eb18>] __iterate_interfaces+0x9d/0x13d [mac80211]
       [<ffffffffa062f609>] ieee80211_iterate_active_interfaces_atomic+0x32/0x3e [mac80211]
       [<ffffffffa07214eb>] ? ath10k_wmi_cmd_send_nowait+0x1ce/0x1ce [ath10k_core]
       [<ffffffffa071fa9f>] ath10k_wmi_tx_beacons_nowait.isra.13+0x14/0x16 [ath10k_core]
       [<ffffffffa0721676>] ath10k_wmi_cmd_send+0x71/0x242 [ath10k_core]
       [<ffffffffa07023f6>] ath10k_wmi_peer_delete+0x3f/0x42 [ath10k_core]
       [<ffffffffa0702557>] ath10k_peer_create+0x15e/0x1ae [ath10k_core]
       [<ffffffffa0707004>] ath10k_add_interface+0x70d/0xbda [ath10k_core]
       [<ffffffffa05fffcc>] drv_add_interface+0x123/0x1a5 [mac80211]
       [<ffffffffa061554b>] ieee80211_do_open+0x351/0x667 [mac80211]
       [<ffffffffa06158aa>] ieee80211_open+0x49/0x4c [mac80211]
       [<ffffffff8163ecf9>] __dev_open+0x88/0xde
       [<ffffffff8163ef6e>] __dev_change_flags+0xa4/0x13a
       [<ffffffff8163f023>] dev_change_flags+0x1f/0x54
       [<ffffffff816a5532>] devinet_ioctl+0x2b9/0x5c9
       [<ffffffff816514dd>] ? copy_to_user+0x32/0x38
       [<ffffffff816a6115>] inet_ioctl+0x81/0x9d
       [<ffffffff816a6115>] ? inet_ioctl+0x81/0x9d
       [<ffffffff81621cf8>] sock_do_ioctl+0x20/0x3d
       [<ffffffff816223c4>] sock_ioctl+0x222/0x22e
       [<ffffffff8121cf95>] do_vfs_ioctl+0x453/0x4d7
       [<ffffffff81625603>] ? __sys_recvmsg+0x4c/0x5b
       [<ffffffff81225af1>] ? __fget_light+0x48/0x6c
       [<ffffffff8121d06b>] SyS_ioctl+0x52/0x74
       [<ffffffff816fa736>] entry_SYSCALL_64_fastpath+0x16/0x7a
      Signed-off-by: NBen Greear <greearb@candelatech.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      fee48cf8
  4. 02 6月, 2016 1 次提交
  5. 25 5月, 2016 1 次提交
  6. 06 5月, 2016 2 次提交
    • R
      ath10k: update bss channel survey information · fa7937e3
      Rajkumar Manoharan 提交于
      During hw scan, firmware sends two channel information events (pre-
      complete, complete) to host for each channel change. The snap shot of cycle
      counters (rx_clear and total) between these two events are given for
      survey dump. In order to get latest survey statistics of all channels, a
      scan request has to be issued. In general, an AP DUT is brought up, it
      won't leave BSS channel except few cases like overlapping bss or radar
      detection. So survey statistics of bss channel is always referring to
      older data that are collected before starting AP (either ACS/OBSS scan).
      
      To collect latest survey information from target, firmware provides WMI
      interface to read cycle counters from hardware. For each survey dump
      request, BSS channel cycle counters are read and cleared in hardware.
      This makes sure that behavior is in align with ath9k survey report.
      So survey dump always gives snap shot of cycle counters b/w two survey
      requests.
      Signed-off-by: NYanbo Li <yanbol@qca.qualcomm.com>
      Signed-off-by: NRajkumar Manoharan <rmanohar@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      fa7937e3
    • J
      ath10k: remove VHT capabilities from 2.4GHz · 94ee3f19
      Johannes Berg 提交于
      According to the spec, VHT doesn't exist in 2.4GHz.
      
      There are vendor extensions to allow a subset of VHT to work
      (notably 256-QAM), but since mac80211 doesn't support those
      advertising VHT capability on 2.4GHz leads to the behaviour
      of reporting VHT capabilities but not being able to use any
      of them due to mac80211's code requiring 80 MHz support.
      
      Remove the VHT capabilities from 2.4GHz for now. If mac80211
      gets extended to use the (likely Broadcom) vendor IEs for it
      and handles the lack of 80 MHz support, it can be added back.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      94ee3f19
  7. 26 4月, 2016 1 次提交
  8. 21 4月, 2016 4 次提交
  9. 19 4月, 2016 2 次提交
    • R
      ath10k: add dynamic tx mode switch config support for qca4019 · 7e247a9e
      Raja Mani 提交于
      push-pull mode needs certain amount the host driver involvement for
      managing queues in the host memory and packet delivery to firmware.
      qca4019 wifi firmware has an option to stay in push mode for less
      number of active traffic flow and then switch to push-pull mode when
      the active traffic flow goes beyond the certain limit.
      
      The advantage of staying in push mode for less active traffic is, the
      host cpu consumption is reduced. qca4019 firmware supports this
      flexibility of the mode switch. It takes the host driver interest
      (LOW_PERF/HIGH_PERF) via WMI_EXT_RESOURCE_CFG_CMDID,
      
       LOW_PERF  - fw would stay in push mode and switch to push-pull
                     based on demand.
       HIGH_PERF - fw would stay in push-pull mode from the boot.
      
      To make this configuration generic, new WMI services
      WMI_SERVICE_TX_MODE_PUSH_ONLY, WMI_SERVICE_TX_MODE_PUSH_PULL,
      WMI_SERVICE_TX_MODE_DYNAMIC are introduced to take dynamic tx mode
      switch support availability in firmware.
      Based on WMI_SERVICE_TX_MODE_DYNAMIC, LOW_PERF or HIGHT_PERF is
      configured to the firmware.
      Signed-off-by: NRaja Mani <rmani@qti.qualcomm.com>
      Signed-off-by: NTamizh chelvam <c_traja@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      7e247a9e
    • R
      ath10k: fix rx_channel during hw reconfigure · 1ce8c148
      Rajkumar Manoharan 提交于
      Upon firmware assert, restart work will be triggered so that mac80211
      will reconfigure the driver. An issue is reported that after restart
      work, survey dump data do not contain in-use (SURVEY_INFO_IN_USE) info
      for operating channel. During reconfigure, since mac80211 already has
      valid channel context for given radio, channel context iteration return
      num_chanctx > 0. Hence rx_channel is always NULL. Fix this by assigning
      channel context to rx_channel when driver restart is in progress.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NRajkumar Manoharan <rmanohar@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      1ce8c148
  10. 14 4月, 2016 3 次提交
  11. 13 4月, 2016 1 次提交
  12. 12 4月, 2016 1 次提交
  13. 07 4月, 2016 1 次提交
  14. 23 3月, 2016 1 次提交
  15. 22 3月, 2016 2 次提交
  16. 18 3月, 2016 2 次提交
  17. 06 3月, 2016 11 次提交
  18. 02 2月, 2016 3 次提交
  19. 26 1月, 2016 1 次提交