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
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
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
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
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
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
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
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
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
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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,
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]
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 @
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)
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
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
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
30 matches
Mail list logo