Weijie Gao and Felix Fietkau
8178f0d2ce
mt7603: apply efuse data only when it exists
...
Some mt7603e chip has empty efuse data.
In this case driver will crash due to dereferencing NULL pointer.
The mt7603_eeprom_load will return success directly if the chip has no efuse
data and dev->mt76.otp.data is left empty, i.e. NULL pointer.
The mt7603_eeprom_init will then try to dereference dev->mt76.otp.data
without checking its value.
This patch adds a check around these codes to prevent kernel panic.
Signed-off-by: Weijie Gao <[email protected] >
2018-12-11 14:11:39 +01:00
Felix Fietkau
294e095a48
mt7603: reset DMA scheduler on MT7628
...
Should improve stability
Signed-off-by: Felix Fietkau <[email protected] >
2018-12-09 17:18:12 +01:00
Felix Fietkau
6203d46fcc
mt7603: add support for setting transmit power
...
Signed-off-by: Felix Fietkau <[email protected] >
2018-12-06 14:38:07 +01:00
Felix Fietkau
2c8e9acb40
mt7603: initialize channel maximum power from eeprom data
...
Signed-off-by: Felix Fietkau <[email protected] >
2018-12-06 14:13:29 +01:00
Felix Fietkau
9d009be68d
mt7603: add dynamic sensitivity tuning based on false CCA events
...
This reduces sensitivity in cases where it could help throughput/stability.
Signed-off-by: Felix Fietkau <[email protected] >
2018-12-05 18:26:20 +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
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
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
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
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
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
0848d2db97
mt7603: simplify mt7603_mcu_msg_send, remove skb_ret handling
...
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-13 14:53:45 +01:00
Felix Fietkau
fd85ff9a97
mt7603: use mt76_sta_remove helper
...
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-13 11:53:22 +01:00
Felix Fietkau
75aa36e0a3
mt7603: use wcid/wcid_mask from struct mt76_dev
...
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-13 11:51:49 +01:00
Felix Fietkau
29d95328d6
mt7603: fix faulty variable initialization in last commit
...
Should be harmless, since watchdog reset is only performed when necessary
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-08 09:07:11 +01:00
Felix Fietkau
417cf49ce8
mt7603: improve recovery from MCU hang
...
Fix forcing watchdog reset after a MCU hang
Run watchdog work immediately after a failed channel change
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-07 18:46:47 +01:00
Felix Fietkau
5ee05239fa
mt7603: fix tx status rate reporting for fixed-rate packets
...
Add support for parsing legacy rates, use a flag in the tx status info
as indicator for fixed rate packets
Signed-off-by: Felix Fietkau <[email protected] >
2018-11-06 22:19:20 +01:00