linux/drivers/net/wireless/ath
Gidon Studinski 96c93589e2 wil6210: initialize TX and RX enhanced DMA rings
Enhanced DMA design includes the following rings:
- Single RX descriptor ring is used for all VIFs
- Multiple RX status rings are supported, to allow RSS
- TX descriptor ring is allocated per connection
- A single TX status ring is used for all TX descriptor rings

This patch initializes and frees the above descriptor and
status rings.

The RX SKBs are handled by a new entity of RX buffers manager,
which handles RX buffers, each one points to an allocated SKB.
During Rx completion processing, the driver extracts a buffer
ID which is used as an index to the buffers array.
After the SKB is freed the buffer is moved from the 'active'
list to the 'free' list, indicating it can be used for another
descriptor. During Rx refill, SKBs are allocated and attached
to 'free' buffers. Those buffers are attached to new descriptors
and moved to the 'active' list.

New debugfs entries were added to allow edma configuration:

Run the following command to configure the number of status rings:
echo NUM_OF_STATUS_RINGS > num_rx_status_rings

Run the following command to use extended RX status message for
additional debug fields from HW:
echo 0 > compressed_rx_status

Run the following command to control the size of the TX status ring:
echo TX_STATUS_RING_ORDER > tx_status_ring_order
The status ring size will be 1 << tx_status_ring_order

Run the following command to control the size of the RX status ring:
echo RX_STATUS_RING_ORDER > rx_status_ring_order
Due to HW constrains RX sring order should be bigger than RX ring order
The status ring size will be 1 << rx_status_ring_order

Run the following command to change the number of RX buffer IDs:
echo RX_BUFF_ID_COUNT > rx_buff_id_count

Signed-off-by: Gidon Studinski <gidons@codeaurora.org>
Signed-off-by: Maya Erez <merez@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2018-07-02 17:24:19 +03:00
..
ar5523
ath5k Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git 2018-06-18 16:48:15 +03:00
ath6kl Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git 2018-06-18 16:48:15 +03:00
ath9k ath9k: use irqsave() in USB's complete callback 2018-06-29 14:55:36 +03:00
ath10k ath10k: sdio: set skb len for all rx packets 2018-07-02 17:21:46 +03:00
carl9170 treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
wcn36xx wcn36xx: Fix WEP encryption 2018-06-29 14:59:17 +03:00
wil6210 wil6210: initialize TX and RX enhanced DMA rings 2018-07-02 17:24:19 +03:00
ath.h ath: Remove unnecessary ath_bcast_mac and use eth_broadcast_addr 2018-03-29 12:10:26 +03:00
debug.c
dfs_pattern_detector.c ath: add support to get the detected radar specifications 2018-05-25 13:15:21 +03:00
dfs_pattern_detector.h ath: add support to get the detected radar specifications 2018-05-25 13:15:21 +03:00
dfs_pri_detector.c
dfs_pri_detector.h ath: add support to get the detected radar specifications 2018-05-25 13:15:21 +03:00
hw.c
Kconfig net/wireless: fix spaces and grammar copy/paste in vendor Kconfig help text 2018-03-13 18:52:25 +02:00
key.c
main.c
Makefile
reg.h
regd_common.h ath: Map Zimbabwe to ETSI1_WORLD 2018-05-25 12:56:18 +03:00
regd.c
regd.h ath: Add regulatory mapping for Uganda 2018-05-25 12:52:36 +03:00
spectral_common.h
trace.c
trace.h