Commit Graph
49 Commits
Author SHA1 Message Date
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
Felix Fietkau a1afefdbf0 mt7603: fix handling of fixed rate packets
The FIXED_RATE flag of txd6 does not enable fixed rate, it only configures
the use of the fixed rate register as rate source.
Set the right flag in txd2 instead.

Signed-off-by: Felix Fietkau <[email protected]>
2018-11-06 17:42:10 +01:00
Felix Fietkau 498d716353 mt7603: fix checkpatch issues
Signed-off-by: Felix Fietkau <[email protected]>
2018-11-06 15:41:37 +01:00
Felix Fietkau d9b5324ecc mt7603: add SPDX license identifiers
Signed-off-by: Felix Fietkau <[email protected]>
2018-11-06 13:53:26 +01:00
Felix Fietkau ac6fc78aee mt7603: add debugfs file to trigger watchdog resets
Makes it easier to verify that the reset code is working properly

Signed-off-by: Felix Fietkau <[email protected]>
2018-11-06 13:39:41 +01:00
Felix Fietkau c34baabf3b mt7603: add missing unlock in case changing the channel fails
Signed-off-by: Felix Fietkau <[email protected]>
2018-11-06 13:35:32 +01:00
Felix Fietkau 87bad3a592 mt7603: stop MAC on watchdog reset
Prevent further rx activity while shutting down DMA and resetting PSE

Signed-off-by: Felix Fietkau <[email protected]>
2018-11-06 13:24:58 +01:00
Felix Fietkau 3c8e8a789b mt7603: use irq_lock/irqmask from struct mt76_dev
Signed-off-by: Felix Fietkau <[email protected]>
2018-11-06 12:24:48 +01:00
Felix Fietkau 01815e9ac2 mt7603: use mutex from struct mt76_dev
Signed-off-by: Felix Fietkau <[email protected]>
2018-11-06 12:21:50 +01:00
Felix Fietkau 5195257f22 mt7603: fix maximum rx frame size
Use 4096 as maximum size instead of the rx buffer size, since rx packets
can be split across multiple buffers. This fixes issues with receiving
A-MSDU aggregated packets.

Signed-off-by: Felix Fietkau <[email protected]>
2018-11-05 21:25:54 +01:00
Felix Fietkau ef06c3074f mt76: avoid queue/status spinlocks while passing tx status to mac80211
There is some code in the mac80211 tx status processing code that could
potentially call back into the tx codepath.
To avoid deadlocks, make sure that no tx related spinlocks are taken
during the ieee80211_tx_status call.

Signed-off-by: Felix Fietkau <[email protected]>
2018-11-05 21:11:42 +01:00
Felix Fietkau ed17ba23e8 mt7603: use common tx status handling code
Signed-off-by: Felix Fietkau <[email protected]>
2018-10-25 18:50:28 +02:00
Felix Fietkau 0b8b15f97c mt7603: use common mmio mcu struct
Signed-off-by: Felix Fietkau <[email protected]>
2018-10-25 12:58:51 +02:00
Lorenzo BianconiandFelix Fietkau 99e04864d9 mt76: use mt76x02_dev instead of mt76_dev in mt76x02_mmio.c
Use mt76x02_dev data structure as reference in mt76x02_mmio.c
instead of mt76_dev

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2018-10-05 20:03:54 +02:00
Felix Fietkau 14f70f4d28 mt7603: fix wcid for frames sent via drv_tx
pspoll responses can be sent via drv_tx, which may need to be encrypted

Signed-off-by: Felix Fietkau <[email protected]>
2018-09-29 13:11:45 +02:00
Felix Fietkau 62ce3245da move mt7603 source files to mt7603/
Signed-off-by: Felix Fietkau <[email protected]>
2018-09-28 18:02:01 +02:00