1. 11 Mar, 2016 19 commits
  2. 08 Mar, 2016 2 commits
  3. 07 Mar, 2016 15 commits
  4. 06 Mar, 2016 4 commits
    • Rajkumar Manoharan's avatar
      ath10k: fix firmware assert in monitor mode · 8a75fc54
      Rajkumar Manoharan authored
      commit 166de3f1 ("ath10k: remove supported chain mask") had revealed
      an issue on monitor mode. Configuring NSS upon monitor interface
      creation is causing target assert in all qca9888x and qca6174 firmware.
      Firmware assert issue can be reproduced by below sequence even after
      reverting commit 166de3f1 ("ath10k: remove supported chain mask").
      
      ip link set wlan0 down
      iw wlan0 set type monitor
      iw phy0 set antenna 7
      ip link set wlan0 up
      
      This issue is originally reported on qca9888 with 10.1 firmware.
      
      Fixes: 5572a95b ("ath10k: apply chainmask settings to vdev on creation")
      Cc: stable@vger.kernel.org
      Reported-by: default avatarJanusz Dziedzic <janusz.dziedzic@tieto.com>
      Signed-off-by: default avatarRajkumar Manoharan <rmanohar@qti.qualcomm.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      8a75fc54
    • Michal Kazior's avatar
      ath10k: change htt tx desc/qcache peer limit config · 99ad1cba
      Michal Kazior authored
      The number of HTT Tx descriptors and qcache peer
      limit aren't hw-specific. In fact they are
      firmware specific and should not be placed in
      hw_params.
      
      The QCA4019 limits were submitted with the peer
      flow control firmware only and to my understanding
      there's no non-peer-flow-ctrl QCA4019 firmware.
      
      However QCA99X0 is planned to run firmware
      supporting the feature as well. Therefore this
      patch enables QCA99X0 to use 2500 tx descriptors
      whenever possible instead of just 1424.
      Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      99ad1cba
    • Michal Kazior's avatar
      ath10k: fix HTT Tx CE ring size · 43c9e384
      Michal Kazior authored
      QCA4019 can queue up to 2500 frames at a time.
      This means it requires roughly 5000 entires on the
      ring to work properly. Otherwise random tx failure
      may occur.
      Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      43c9e384
    • Michal Kazior's avatar
      ath10k: implement push-pull tx · 426e10ea
      Michal Kazior authored
      The current/old tx path design was that host, at
      its own leisure, pushed tx frames to the device.
      For HTT there was ~1000-1400 msdu queue depth.
      
      After reaching that limit the driver would request
      mac80211 to stop queues. There was little control
      over what packets got in there as far as
      DA/RA was considered so it was rather easy to
      starve per-station traffic flows.
      
      With MU-MIMO this became a significant problem
      because the queue depth was insufficient to buffer
      frames from multiple clients (which could have
      different signal quality and capabilities) in an
      efficient fashion.
      
      Hence the new tx path in 10.4 was introduced: a
      pull-push mode.
      
      Firmware and host can share tx queue state via
      DMA. The state is logically a 2 dimensional array
      addressed via peer_id+tid pair. Each entry is a
      counter (either number of bytes or packets. Host
      keeps it updated and firmware uses it for
      scheduling Tx pull requests to host.
      
      This allows MU-MIMO to become a lot more effective
      with 10+ clients.
      Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      426e10ea