Felix Fietkau
fea7ad804e
mt76: move mt76x02_phy_get_min_avg_rssi to mt76 core
...
This will be used by mt7603 as well
Signed-off-by: Felix Fietkau <[email protected] >
2018-12-05 17:06:59 +01:00
Felix Fietkau
417ab779a0
mt7603: improve recovery from PSE reset failure
...
Only clear reset status and switch to DMA reset after 3 tries.
Signed-off-by: Felix Fietkau <[email protected] >
2018-12-05 15:31:43 +01:00
Felix Fietkau
da00af00c5
mt7603: clear bit 18 in MT_SEC_SCR to fix ICV error
...
Ported from vendor driver
Signed-off-by: Felix Fietkau <[email protected] >
2018-12-04 12:22:21 +01:00
Felix Fietkau
0ad998b6ff
mt7603: increase aggregation limits (based on vendor driver changes)
...
Signed-off-by: Felix Fietkau <[email protected] >
2018-12-04 12:22:21 +01:00
Felix Fietkau
f2ba65f73f
mt7603: update firmware to 20161027164355
...
Signed-off-by: Felix Fietkau <[email protected] >
2018-12-04 12:22:21 +01:00
Felix Fietkau
8929a6e6b7
mt7603: increase MCU timeout
...
Sometimes during startup, the MCU response time can be quite long,
especially in newer versions. This change prevents false timeout errors
Signed-off-by: Felix Fietkau <[email protected] >
2018-12-04 12:22:21 +01:00
Felix Fietkau
80843237fa
mt7603: implement code for adjusting energy detect CCA thresholds
...
Ported from the reference driver.
Should fix compliance with ETSI rules on preventing transmission while
energy detect values are above the threshold.
Relax rules for non-ETSI regdomains
Signed-off-by: Felix Fietkau <[email protected] >
2018-12-03 18:03:52 +01:00
Felix Fietkau
5a5b396e6e
mt76: throttle transmission of buffered multicast packets
...
Avoids drowning out regular transmissions
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-29 13:14:40 +01:00
Felix Fietkau
44bb37288c
mt7603: fix CAB queue flush mask
...
Only flush queues belonging to hardware BSS 0 (and sub interfaces)
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-28 22:29:23 +01:00
Felix Fietkau
d22feb00e9
mt7603: move cab queue enabling to pre-tbtt tasklet
...
It is not necessary to time the start of the queue in software, the hardware
already does that for us.
Move all processing into the pre-tbtt tasklet to get rid of a race condition
that could happen when the pre-tbtt tasklet takes too long
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-28 22:15:31 +01:00
Felix Fietkau
6ac9653037
mt7603: fix CAB queue limits
...
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-28 21:22:42 +01:00
Felix Fietkau
3ecb7f8974
mt7603: fix hardware queue assignment
...
The queues are ordered by priority. BK needs to be the first queue,
followed by BE
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-28 21:11:05 +01:00
Felix Fietkau
cd456ca87f
mt7603: disable broken support for WEP hardware encryption
...
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-28 15:03:26 +01:00
Felix Fietkau
2a136cb2fd
mt7603: fix TKIP key setup
...
Rx and Tx MIC keys are swapped compared to the order provided by mac80211
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-28 14:55:27 +01:00
Felix Fietkau
c3efb5d899
mt7603: add support for detecting MT7688 and single stream devices
...
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-28 14:34:05 +01:00
Felix Fietkau
00e03b990f
mt7603: fix MT_WF_PHY_CR_RXTD_BASE definition
...
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-28 14:19:03 +01:00
Felix Fietkau
4063ae1ecb
mt7603: check for PSE hang / stuck beacon first
...
Ensure that PSE reset is issued when necessary
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-28 13:55:37 +01:00
Felix Fietkau
31cd20eb6a
mt7603: issue PSE reset on stuck beacon
...
Improves reliability of recovery
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-28 13:54:47 +01:00
Felix Fietkau
5fb60a7d7a
mt7603: fix aggregation size handling
...
Do not step over the 32 subframe limit.
Fix staying under the limit
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-21 19:04:19 +01:00
Felix Fietkau
da666a74a6
mt7603: issue PSE reset if firmware debug register indicates stuck queues
...
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-21 15:10:31 +01:00
Felix Fietkau
b38fe7d531
mt7603: only issue PSE reset on PSE stuck
...
The reset can take quite a bit of time, so only issue it when necessary
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-21 15:04:47 +01:00
Felix Fietkau
94cebfc31a
mt7603: fix handling lost interrupt events during watchdog reset
...
Schedule tx tasklet and rx napi poll after reset to ensure that processing
of DMA queues resumes
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-21 15:00:15 +01:00
Felix Fietkau
a301decead
mt7603: add back PSE client reset code
...
Should help with MT7628 reliability
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-21 13:52:04 +01:00
Felix Fietkau
b3f82a33c0
mt7603: report PSE reset failures via debugfs
...
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-21 13:18:28 +01:00
Felix Fietkau
9428e34d1f
mt7603: fix watchdog reset sequence
...
- issue PSE reset first
- skip DMA reset if PSE reset failed
- schedule tx after reset has completed
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-21 13:08:16 +01:00
Felix Fietkau
4734108318
mt7603: use mt7603_wtbl_clear on station removal
...
It removes more stale data from the WTBL
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-21 12:59:13 +01:00
Felix Fietkau
c09e8a489f
mt7603: fix buffering of tx packets for powersave clients
...
Use PSE registers to loop back any pending tx packets for a client that
just went to sleep back into the MCU rx queue.
Re-queue those packets to the tx queue immediately after a client wakes up.
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-20 16:18:22 +01:00
Felix Fietkau
82363abeaf
mt7603: move tx status to rx queue 0
...
This makes it easier to loop powersave-filtered packets through the MCU queue
without involving the firmware
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-20 16:18:22 +01:00
Felix Fietkau
b44d793e25
mt7603: clear PSE redirections before MCU init
...
Ensure that stale data from a previous run is cleaned up
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-20 16:18:01 +01:00
Felix Fietkau
ca2c875ae6
mt7603: add support for accessing remapped registers via ops
...
Add wrappers for existing register ops
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-20 12:15:32 +01:00
Felix Fietkau
7c4c33c41e
mt7603: skip efuse tx power data for mt7628
...
Sync with vendor driver behavior
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-20 12:15:32 +01:00
Felix Fietkau
84aa12a4e1
mt76: fix potential null pointer deref in mt76_sta_add
...
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-17 18:22:33 +01:00
Lorenzo Bianconi and Felix Fietkau
fa7335bbe3
mt76: fix potential NULL pointer dereference in mt76_stop_tx_queues
...
Starting from mac80211 commit adf8ed01e4fd ("mac80211: add an optional
TXQ for other PS-buffered frames") and commit 0eeb2b674f05 ("mac80211:
add an option for station management TXQ") a new per-sta queue has been
introduced for bufferable management frames.
sta->txq[IEEE80211_NUM_TIDS] is initialized just if the driver reports
the following hw flags:
- IEEE80211_HW_STA_MMPDU_TXQ
- IEEE80211_HW_BUFF_MMPDU_TXQ
This can produce a NULL pointer dereference in mt76_stop_tx_queues
since mt76 iterates on all available sta tx queues assuming they are
initialized by mac80211. This issue has been spotted analyzing the code
(it has not triggered any crash yet)
Signed-off-by: Lorenzo Bianconi <[email protected] >
2018-11-17 18:15:00 +01:00
Felix Fietkau
42c5281187
mt7603: fix maximum frame size in scheduler init
...
Since hardware A-MSDU decap is disabled, use maximum A-MSDU size
as maximum packet size
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-17 17:56:07 +01:00
Felix Fietkau
d22799b2c3
mt7603: reduce reserved pages for beacons
...
Only 4 interfaces are supported anyway
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-17 17:56:07 +01:00
Felix Fietkau
749d5c3d2c
mt7603: fix reserved page handling for mt7628
...
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-17 17:56:07 +01:00
Felix Fietkau
3873e827ed
mt7603: fix MT_BMAP_0/MT_GROUP_THD_0 register initializion for mt7628
...
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-17 17:34:19 +01:00
Felix Fietkau
471d397e06
mt7603: fix priority for buffered multicast packets
...
Ensure that they are transmitted immediately after the beacon
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-17 15:41:32 +01:00
Lorenzo Bianconi and Felix Fietkau
96b3b3d60d
mt76x2u: main: fix typo setting sta_state mac80211 callback
...
Signed-off-by: Lorenzo Bianconi <[email protected] >
2018-11-16 13:33:14 +01:00
Felix Fietkau
d0fdf01a95
mt7603: avoid unnecessary wtbl writes for ps-filter
...
Only clear the skip_tx flag if powersave mode is enabled
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-16 12:41:17 +01:00
Felix Fietkau
41931e43ab
mt7603: toggle skip_tx on station add/remove
...
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-16 12:33:17 +01:00
Felix Fietkau
90e2c1b616
mt7603: add mt7603_wtbl_set_skip_tx, change mt7603_wtbl_set_ps users
...
Avoids unnecessary toggling of the MT_WTBL1_OR_PSM_WRITE flag
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-16 12:28:30 +01:00
Felix Fietkau
13f1e82f6f
mt7603: clear wtbl entry for removed stations
...
Should fix some issues with reassociating stations
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-16 12:09:52 +01:00
Felix Fietkau
a97127b1b3
mt76: replace sta_add/remove ops with common sta_state function
...
Allows adding unassociated stations from mac80211
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-16 12:09:52 +01:00
Felix Fietkau
7b1373e7e2
mt76: mt76x02: remove mt76x02_txq_init
...
Open-coding it simplifies the code
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-16 12:09:52 +01:00
Felix Fietkau
e65ad4c5db
mt7603: make group_wcid the first member in struct mt7603_vif
...
Allows mt76 core to cast vif->drv_priv to struct mt76_wcid
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-16 12:09:52 +01:00
Felix Fietkau
d7788cc661
mt76: mt76x02: make group_wcid the first member in struct mt76x02_vif
...
Allows mt76 core to cast vif->drv_priv to struct mt76_wcid
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-16 12:09:52 +01:00
Felix Fietkau
963768d38f
mt76x02: fix regression in tx station race condition fix
...
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-16 12:09:52 +01:00
Felix Fietkau
009ab9179e
mt76: clean up more unused EXPORT_SYMBOLs
...
Make functions static where possible
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-16 12:09:52 +01:00
Stanislaw Gruszka and Felix Fietkau
88f68838d9
mt76: remove wait argument from mt76x02_mcu_calibrate
...
We always wait for CMD_CALIBRATION_OP mcu message, but wait argument is used
for do additional MT_MCU_COM_REG0 register operations, which are needed
for mt76x2e devices and we can use appropriate check instead of wait argument.
Signed-off-by: Stanislaw Gruszka <[email protected] >
2018-11-13 20:56:41 +01:00