Felix Fietkau
ca5cc9a478
mt76: fix concurrent rx calls on A-MPDU release
...
Add a spinlock in mt76_rx_complete. Without this, multiple stats updates
could happen in parallel, which can lead to deadlocks. There are
probably more corner cases fixed by this change.
Signed-off-by: Felix Fietkau <[email protected] >
2018-04-17 14:49:29 +02:00
Lorenzo Bianconi and Felix Fietkau
ced433d006
mt76x2: add mac80211 {set,get}_antenna callbacks
...
Add capability to select tx/rx antennas. Possible values are:
- 1: to use only the first antenna
- 2: to use only the second antenna
- 3: to use both of them
Signed-off-by: Lorenzo Bianconi <[email protected] >
2018-03-21 11:23:10 +01:00
Lorenzo Bianconi and Felix Fietkau
7e6e00bf0a
mt76: initialize available_antennas_{tx,rx} info
...
Initialize available_antennas related info in wiphy data structure
according to antenna_mask field; antenna_mask info is initialized
in device specific code and will be used in mac80211 {set,get}_antenna
callbacks
Signed-off-by: Lorenzo Bianconi <[email protected] >
2018-03-21 11:23:10 +01:00
Felix Fietkau
f515dfcca1
mt76: implement AP_LINK_PS
...
With software A-MPDU reordering in place, frames that notify mac80211 of
powersave changes are reordered as well, which can cause connection
stalls. Fix this by implementing powersave state processing in the
driver.
Signed-off-by: Felix Fietkau <[email protected] >
2018-01-26 11:41:38 +01:00
Felix Fietkau
9b2c77826d
mt76: validate rx CCMP PN
...
Apparently hardware does not perform CCMP PN validation in hardware, so
we need to take care of this in the driver.
Signed-off-by: Felix Fietkau <[email protected] >
2018-01-22 11:06:19 +01:00
Felix Fietkau
cf3cfc43af
mt76: split mt76_rx_complete
...
Add a separate function for processing frames after A-MPDU reordering,
reduce code duplication
Signed-off-by: Felix Fietkau <[email protected] >
2018-01-22 10:43:22 +01:00
Felix Fietkau
b0508d3044
mt76: implement A-MPDU rx reordering in the driver code
...
This is required for performing CCMP PN validation in software
Signed-off-by: Felix Fietkau <[email protected] >
2018-01-22 10:43:21 +01:00
Felix Fietkau
58a41f17aa
mt76: get station pointer by wcid and pass it to mac80211
...
Avoids the rhashtable lookup based on the MAC address inside mac80211
Signed-off-by: Felix Fietkau <[email protected] >
2018-01-22 10:14:25 +01:00
Felix Fietkau
ad3f8e924e
mt76: add an intermediate struct for rx status information
...
Preparation for passing in more internal rx data via skb->cb
Signed-off-by: Felix Fietkau <[email protected] >
2018-01-21 10:48:29 +01:00
Felix Fietkau
792859b237
mt76x2: fix transmission of encrypted management frames
...
Hardware encryption seems to break encrypted unicast mgmt tx.
Unfortunately the hardware TXWI header does not have a bit to indicate
that a frame is software encrypted, so sw-encrypted frames need to use a
different WCID. For that to work, the CCMP PN needs to be generated in
software, which makes things a bit slower, so only do it for keys that
also need to tx management frames.
Signed-off-by: Felix Fietkau <[email protected] >
2017-11-29 12:18:34 +01:00
Felix Fietkau
ff60d1482c
mt76: increase rx ring size for mt76x2
...
Should improve performance under load
Signed-off-by: Felix Fietkau <[email protected] >
2017-11-16 16:26:45 +01:00
Lorenzo Bianconi and Felix Fietkau
c9bdcd850d
mt76: add led support using mac80211 led framework
...
use tpt-trigger as default trigger
Signed-off-by: Lorenzo Bianconi <[email protected] >
Signed-off-by: Felix Fietkau <[email protected] >
2017-10-31 10:21:14 +01:00
Felix Fietkau
a5eaeb27d6
revert mt76_eeprom_override call reordering
...
This call order is necessary for handling the device MAC address
Signed-off-by: Felix Fietkau <[email protected] >
2017-02-03 14:25:08 +01:00
Felix Fietkau
184e068b6f
use wiphy_read_of_freq_limits to parse band capability overrides
...
Signed-off-by: Felix Fietkau <[email protected] >
2017-02-01 16:11:35 +01:00
Felix Fietkau
b18d66f749
core: fix checkpatch errors
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-09-05 11:12:19 +02:00
Felix Fietkau
b300bdc42e
use the new bitfield accessor macros
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-09-04 17:37:26 +02:00
Felix Fietkau
53c1b7f6ac
update my email address
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-09-04 17:33:28 +02:00
Lorenzo Bianconi and Felix Fietkau
aa77eadf0e
mt76x2: add TPC support
...
add per-packet tx power adjustment support
Signed-off-by: Lorenzo Bianconi <[email protected] >
2016-08-25 12:57:47 +02:00
Felix Fietkau
ced81a3458
relicense to ISC (except for util.h which is based on GPL'd kernel code
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-07-12 08:38:46 +02:00
Felix Fietkau
267e959c84
move mt76 rate power struct to mt76.h
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-06-17 12:45:39 +02:00
Felix Fietkau
3c8a4bc30e
mt76x2: implement survey support
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-06-15 16:47:23 +02:00
Felix Fietkau
6c4b37be98
move dev->chandef to mt76 struct
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-06-15 15:47:49 +02:00
Felix Fietkau
c190f15d6f
mt7603: add basic mt7628 support
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-28 22:06:21 +01:00
Felix Fietkau
675868d4e8
mt7603: opt out of the tx BAR refresh at wakeup time
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-28 22:02:21 +01:00
Felix Fietkau
a957f7480e
dma: add function for resetting the state of an rx queue
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-28 21:14:48 +01:00
Felix Fietkau
d1610c641c
mt7603: add code to recover from MAC/DMA hangs
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-27 19:47:00 +01:00
Felix Fietkau
2cfb50f84d
mt7603: pass the correct hardware queue index to the tx header
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-25 21:29:15 +01:00
Felix Fietkau
9779a98658
let mt76_queue_tx_cleanup take a queue id instead of a pointer
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-25 21:13:30 +01:00
Felix Fietkau
079ad90fe2
update copyright lines
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-25 18:09:13 +01:00
Felix Fietkau
02b9245b9e
mt76x2: move efuse debugfs blob to core
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-22 08:47:26 +01:00
Felix Fietkau
2bd92acfa2
dma: optimize icache footprint of rx path, batch frames before passing them to mac80211
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-08 17:35:40 +01:00
Felix Fietkau
9e305ef093
add rx helper function which uses ieee80211_rx_napi
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-08 15:06:21 +01:00
Felix Fietkau
fa3ee92842
unify tx completion handling, allow a driver callback to clean up tx skbs
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-06 16:14:02 +01:00
Felix Fietkau
707c918966
tx: increase ring size
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-05 01:15:58 +01:00
Felix Fietkau
2dfb9faa78
add support for queueing frames spanning multiple descriptors
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-05 01:15:35 +01:00
Felix Fietkau
b08f5433d1
tx: move dma mapping code to core, unify tx callbacks into one that prepares tx_info, skb and txwi
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-03 20:14:53 +01:00
Felix Fietkau
2c2fa07e98
suspend txq scheduling during scanning
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-03 16:10:54 +01:00
Felix Fietkau
a6d7949f67
move rx polling to core
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-03 15:51:17 +01:00
Felix Fietkau
6b80f6c8dd
pass queue index instead of pointer to rx_skb callback
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-03 15:10:33 +01:00
Felix Fietkau
6678c47893
remove dequeue op
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-03 14:59:50 +01:00
Felix Fietkau
41f973373e
remove rx_fill op
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-03 14:58:35 +01:00
Felix Fietkau
812bcc3a78
mt76x2: move rx queue processing to core
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-03 14:51:07 +01:00
Felix Fietkau
859aa10d4d
move initial rx queue fill to a new queue init function
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-03 14:37:09 +01:00
Felix Fietkau
03ec61db8e
remove rx_cleanup queue op
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-03 14:24:07 +01:00
Felix Fietkau
f79b92dde5
mt76x2: move rx queues to struct mt76_dev
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-03 14:03:53 +01:00
Felix Fietkau
1b5492bd23
dma: tell the driver if the buffer was the last one
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-02-01 21:50:08 +01:00
Felix Fietkau
0bbfb5653f
move dma rx cleanup to core
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-01-28 20:35:26 +01:00
Felix Fietkau
0f896990cd
core: use page fragments for rx buffers
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-01-28 14:54:01 +01:00
Felix Fietkau
6ca2852f65
move mac address validation to core
...
Signed-off-by: Felix Fietkau <[email protected] >
2016-01-01 19:38:59 +01:00
Felix Fietkau
3b1ca1b61c
mt7603: add rudimentary tx path code
...
Signed-off-by: Felix Fietkau <[email protected] >
2015-12-20 00:14:23 +01:00