[PATCH 00/13] ath10k: implement push-pull tx model

2016-01-21 Thread Michal Kazior
This adds support for the new logic where host tells firmware how many frames are queued for each station/tid and then firmware asks host to submit frames for given station/tid. The patch count is a bit high but I tried splitting the patches as much as possible to keep them short and easy to

Re: [PATCH 6/7] ath10k: Enable periodic peer stats update

2016-01-21 Thread Kalle Valo
Mohammed Shafi Shajakhan writes: > From: Mohammed Shafi Shajakhan > > Register for 500ms as periodic peer stats update period, > and parameters like rx_duration that needs to be tracked > in host can be achieved by this provision, also

[PATCH 05/13] ath10k: add fast peer_map lookup

2016-01-21 Thread Michal Kazior
The pull-push functionality of 10.4 will be based on peer_id and tid. These will need to be mapped, eventually, to ieee80211_txq to be used with ieee80211_tx_dequeue(). Iterating over existing stations every time peer_id needs to be mapped to a station would be inefficient wrt CPU time. The new

[PATCH 10/13] ath10k: implement flushing of pending frames in txqs

2016-01-21 Thread Michal Kazior
Firmware supporting pull-push tx model may request a switch between modes. When switching from pull-push to push-only it will be necessary to flush all pending frames. The code will do that once other bits that actually trigger it are added. Signed-off-by: Michal Kazior

[PATCH 08/13] ath10k: implement updating shared htt txq state

2016-01-21 Thread Michal Kazior
Firmware 10.4.3 onwards can support a pull-push Tx model where it shares a Tx queue state with the host. The host updates the DMA region it pointed to during HTT setup whenever number of software queued from (on host) changes. Based on this information firmware issues fetch requests to the host

[PATCH 09/13] ath10k: add txq placeholder

2016-01-21 Thread Michal Kazior
Driver will make use of this in the future. Signed-off-by: Michal Kazior --- drivers/net/wireless/ath/ath10k/core.h | 4 drivers/net/wireless/ath/ath10k/mac.c | 1 + 2 files changed, 5 insertions(+) diff --git a/drivers/net/wireless/ath/ath10k/core.h

[PATCH 12/13] ath10k: keep track of queue depth per txq

2016-01-21 Thread Michal Kazior
This will be necessary for later. Signed-off-by: Michal Kazior --- drivers/net/wireless/ath/ath10k/core.h | 2 +- drivers/net/wireless/ath/ath10k/mac.c | 5 + drivers/net/wireless/ath/ath10k/txrx.c | 7 +++ 3 files changed, 13 insertions(+), 1 deletion(-) diff

[PATCH 2/5] ath10k: add new htt definitions

2016-01-21 Thread Michal Kazior
These definitions are associated with some improvements upcomming for 10.4 and QCA99X0. Signed-off-by: Michal Kazior --- drivers/net/wireless/ath/ath10k/htt.h | 153 +- 1 file changed, 150 insertions(+), 3 deletions(-) diff --git

[PATCH 1/5] ath10k: rename some HTT events

2016-01-21 Thread Michal Kazior
New names make a bit more sense. Signed-off-by: Michal Kazior --- drivers/net/wireless/ath/ath10k/htt.c| 8 drivers/net/wireless/ath/ath10k/htt.h| 8 drivers/net/wireless/ath/ath10k/htt_rx.c | 4 ++-- 3 files changed, 10 insertions(+), 10

[PATCH 5/5] ath10k: implement basic support for new tx path firmware

2016-01-21 Thread Michal Kazior
This allows to use the new firmware which implements the new tx data path. Without this patch firmware supporting new tx path stops responding shortly after booting. This patch doesn't implement the entire pull-push logic available in the new firmware. This will be done in subsequent patches.

[PATCH 3/5] ath10k: add new FW_FEATURE_PEER_FLOW_CONTROL

2016-01-21 Thread Michal Kazior
This feature flag will be used for firmware which supports pull-push model where host shares it's software queue state with firmware and firmware generates fetch requests telling host which queues to dequeue tx from. Primary function of this is improved MU-MIMO performance with multiple clients.

[PATCH 4/5] ath10k: clean up cont frag desc init code

2016-01-21 Thread Michal Kazior
This makes the code easier to extend and re-use. While at it fix _warn to _err. Other than that there are no functional changes. Signed-off-by: Michal Kazior --- Notes: v2: * fix gfp allocation [Ben] drivers/net/wireless/ath/ath10k/htt_tx.c | 58

[PATCH 0/5] ath10k: add basic hostq support

2016-01-21 Thread Michal Kazior
There's a new firmware feature which uses a shared DMA memory so host can share it's per-sta per-tid queue size which is then subsequently used for firmware to assist in deciding which frames to put on the intermediate host-device tx queue. This patchset adds only basic support to make the

[PATCH 04/13] ath10k: maintain peer_id for each sta and vif

2016-01-21 Thread Michal Kazior
The 10.4.3 firmware with congestion control guarantees that each peer has only a single peer_id mapping. The 1:1 mapping isn't the case for older firmwares (e.g. 10.4.1, 10.2, 10.1) but it should not matter. This 1:1 mapping is going to be only used by future code which inherently (flow-wise) is

[PATCH 13/13] ath10k: implement push-pull tx

2016-01-21 Thread Michal Kazior
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

[PATCH 02/13] ath10k: unify txpath decision

2016-01-21 Thread Michal Kazior
Some future changes will need to determine final tx method early on. Prepare the code. Signed-off-by: Michal Kazior --- drivers/net/wireless/ath/ath10k/mac.c | 58 +++ 1 file changed, 45 insertions(+), 13 deletions(-) diff --git

[PATCH 07/13] ath10k: implement wake_tx_queue

2016-01-21 Thread Michal Kazior
This actually prepares a few knobs for new firmware supporting pull-push Tx model where firmware asks host to submit frames for given stations and tids. Signed-off-by: Michal Kazior --- drivers/net/wireless/ath/ath10k/mac.c | 89 +++ 1

[PATCH 01/13] ath10k: refactor tx code

2016-01-21 Thread Michal Kazior
This prepares the code for future reuse with ieee80211_txq and wake_tx_queue() in mind. Signed-off-by: Michal Kazior --- drivers/net/wireless/ath/ath10k/mac.c | 151 +- 1 file changed, 96 insertions(+), 55 deletions(-) diff --git

[PATCH 06/13] ath10k: add new htt message generation/parsing logic

2016-01-21 Thread Michal Kazior
This merely adds some parsing, generation and sanity checks with placeholders for real code/functionality to be added later. Signed-off-by: Michal Kazior --- drivers/net/wireless/ath/ath10k/htt.h| 5 + drivers/net/wireless/ath/ath10k/htt_rx.c | 198

Re: [PATCH 0/5] ath10k: add basic hostq support

2016-01-21 Thread Michal Kazior
On 21 January 2016 at 14:13, Michal Kazior wrote: > There's a new firmware feature which uses a shared > DMA memory so host can share it's per-sta per-tid > queue size which is then subsequently used for > firmware to assist in deciding which frames to put > on the

[PATCH 03/13] ath10k: refactor tx pending management

2016-01-21 Thread Michal Kazior
Tx pending counter logic assumed that the sk_buff is already known and hence was performed in HTT functions themselves. However, for the sake of future wake_tx_queue() usage the driver must be able to tell whether it can submit more frames to firmware before it dequeues frame from ieee80211_txq

[PATCH 11/13] ath10k: store txq in skb_cb

2016-01-21 Thread Michal Kazior
This will be necessary for later. Signed-off-by: Michal Kazior --- drivers/net/wireless/ath/ath10k/core.h | 1 + drivers/net/wireless/ath/ath10k/mac.c | 32 ++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git

Re: [PATCH 6/7] ath10k: Enable periodic peer stats update

2016-01-21 Thread Mohammed Shafi Shajakhan
On Thu, Jan 21, 2016 at 02:48:13PM +0200, Kalle Valo wrote: > Mohammed Shafi Shajakhan writes: > > > From: Mohammed Shafi Shajakhan > > > > Register for 500ms as periodic peer stats update period, > > and parameters like rx_duration that

Re: 5GHz AP on a QCA988x

2016-01-21 Thread Jeroen Roovers
country 00: DFS-UNSET (2402 - 2472 @ 40), (6, 20), (N/A) (2457 - 2482 @ 40), (6, 20), (N/A), PASSIVE-SCAN (2474 - 2494 @ 20), (6, 20), (N/A), NO-OFDM, PASSIVE-SCAN (5170 - 5250 @ 160), (6, 20), (N/A), PASSIVE-SCAN (5250 - 5330 @ 160), (6, 20), (0 ms), DFS,

5GHz AP on a QCA988x

2016-01-21 Thread Jeroen Roovers
02:00.0 Network controller: Qualcomm Atheros QCA986x/988x 802.11ac Wireless Network Adapter Flags: bus master, fast devsel, latency 0, IRQ 28 Memory at fe20 (64-bit, non-prefetchable) [size=2M] Expansion ROM at fe40 [disabled] [size=64K] Capabilities: [40]

Re: 5GHz AP on a QCA988x

2016-01-21 Thread Jeroen Roovers
When I set it to XZ (which is a work in progress) I get this output: country XZ: DFS-UNSET (2402 - 2472 @ 40), (N/A, 20), (N/A) (2457 - 2482 @ 20), (N/A, 20), (N/A) (2474 - 2494 @ 20), (N/A, 20), (N/A) (5170 - 5250 @ 80), (N/A, 20), (N/A) (5250 - 5330 @

Re: 5GHz AP on a QCA988x

2016-01-21 Thread Michal Kazior
On 21 January 2016 at 09:38, Jeroen Roovers wrote: > 02:00.0 Network controller: Qualcomm Atheros QCA986x/988x 802.11ac > Wireless Network Adapter > Flags: bus master, fast devsel, latency 0, IRQ 28 > Memory at fe20 (64-bit, non-prefetchable)

Re: [PATCH 13/13] ath10k: implement push-pull tx

2016-01-21 Thread Peter Oh
On 01/21/2016 05:46 AM, Michal Kazior wrote: 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

Re: [PATCH 00/13] ath10k: implement push-pull tx model

2016-01-21 Thread Ben Greear
On 01/21/2016 05:46 AM, Michal Kazior wrote: This adds support for the new logic where host tells firmware how many frames are queued for each station/tid and then firmware asks host to submit frames for given station/tid. Just FYI, with your tree (including this patch-set), the non-upstream

Re: [PATCH 13/13] ath10k: implement push-pull tx

2016-01-21 Thread Michal Kazior
On 21 January 2016 at 18:40, Peter Oh wrote: > > On 01/21/2016 05:46 AM, Michal Kazior wrote: >> >> 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