Commit Graph
90 Commits
Author SHA1 Message Date
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 BianconiandFelix 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 BianconiandFelix 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 BianconiandFelix 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 BianconiandFelix 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