Commit Graph
537 Commits
Author SHA1 Message Date
Kristian EvensenandFelix Fietkau f6a021d15a mt76x2: Support using PCI ID as chip ID
On some routers, the manufacturer has made a mistake and left the chip
ID part of the EEPROM empty (it is set to 0x0000). One such router is
the ZBT-WE1026-5G (equipped with MT7612), and the consequence is that
the EEPROM check fails and the 5GHz wifi does not work at all. When
setting the chip ID to 0x7612 manually, the 5GHz wifi works fine.

When looking at EEPROM of the WE1026 (and other devices equipped with
mt76x2), I see that the PCI ID is always set to a valid value (7612 or
7662). This PR works around the issue of an empty chip ID by using the
PCI ID, if chip ID is 0. After applying this PR/patch manually to mt76,
the 5GHz on the WE1026 works out of the box. Since the PCI ID is only
used if chip ID is empty, devices with correct EEPROMs are not affected.

Signed-off-by: Kristian Evensen <[email protected]>
2017-10-27 12:26:33 +02:00
Felix Fietkau f658dd21d7 mt76x2: add LED register definitions
Signed-off-by: Felix Fietkau <[email protected]>
2017-10-27 12:15:53 +02:00
Felix Fietkau a6fce8a34c mt7603: add LED definition registers
Signed-off-by: Felix Fietkau <[email protected]>
2017-10-27 12:15:53 +02:00
Rosen PenevandFelix Fietkau e7647871da Fix errors found by cppcheck
Mismatching declarations as well as unused results.

Signed-off-by: Rosen Penev <[email protected]>
2017-10-27 12:15:53 +02:00
Lorenzo BianconiandFelix Fietkau 758376dea6 mt7603: mcu: remove unused parameter in mt7603_mcu_msg_alloc() signature
Signed-off-by: Lorenzo Bianconi <[email protected]>
2017-10-27 12:15:53 +02:00
Lorenzo BianconiandFelix Fietkau 266ef38ca8 mt76x2: mcu: remove unused parameter in mt76x2_mcu_msg_alloc signature
Signed-off-by: Lorenzo Bianconi <[email protected]>
2017-10-27 09:50:07 +02:00
Felix Fietkau 37654d7047 mt76x2: fix tx status ampdu length corner case
Sometimes the code would return a status update to mac80211 with a-mpdu
length of 0, leading to a crash in minstrel.

Make the logic of counting a-mpdu burst length easier to follow and add
an extra check to prevent this issue from happening.

Signed-off-by: Felix Fietkau <[email protected]>
2017-10-12 12:24:12 +02:00
Felix Fietkau e78156982f update to latest mac80211/cfg80211 API changes
Signed-off-by: Hauke Mehrtens <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2017-10-05 20:50:48 +02:00
Lorenzo BianconiandFelix Fietkau d5e945e9b2 mt7603: mcu: fix indentation of mcu command definition
Signed-off-by: Lorenzo Bianconi <[email protected]>
2017-09-25 20:25:12 +02:00
Lorenzo BianconiandFelix Fietkau 21f20b46e3 mt7603: mac: fix register configuration in mt7603_rx_dma_busy()
Signed-off-by: Lorenzo Bianconi <[email protected]>
2017-09-09 17:45:15 +02:00
Lorenzo BianconiandFelix Fietkau cb83f3329f mt7603: mac: fix logic in mt7603_tx_hang()
Signed-off-by: Lorenzo Bianconi <[email protected]>
2017-09-09 17:45:07 +02:00
Lorenzo BianconiandFelix Fietkau 3c4c9a647e tx: move state check in mt76_txq_send_burst()
Move device state check in mt76_txq_send_burst() in order to be more
reactive in stopping tx process during hw reset

Signed-off-by: Lorenzo Bianconi <[email protected]>
2017-07-17 10:22:05 +02:00
Lorenzo BianconiandFelix Fietkau 8dee788e05 mt7603: mac: stop netdev queues during watchdog reset
Signed-off-by: Lorenzo Bianconi <[email protected]>
2017-07-17 10:21:59 +02:00
Lorenzo BianconiandFelix Fietkau 8a649c3b1e mt7603: mac: code optimization
Remove unnecessary return instruction and time variable in
mt7603_mac_work()

Signed-off-by: Lorenzo Bianconi <[email protected]>
2017-07-15 10:30:56 +02:00
Lorenzo BianconiandFelix Fietkau e90a81a552 mt7603: fix channel width fall back in TXWI
Signed-off-by: Lorenzo Bianconi <[email protected]>
2017-07-04 10:55:39 +02:00
Felix Fietkau c4e3deaa58 mt7603: use the real vif index in txwi header for normal tx.
Fixes rate control for multi-vif. Beacons and buffered multicast packets
still need the adjusted index

Signed-off-by: Felix Fietkau <[email protected]>
2017-07-01 16:53:18 +02:00
Felix Fietkau 32eab505a4 mt7603: set wtbl entry vif index
Signed-off-by: Felix Fietkau <[email protected]>
2017-07-01 16:46:34 +02:00
Lorenzo BianconiandFelix Fietkau cf4ba12871 mt7603: avoid tx rate sampling using no retransmissions
Since the TXWI has no room for the MRR reconfigure the MT_WTBL registers
using the sample rate as first tx rate for channel probing avoiding
very low TCP performance in a lossy environment

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2017-06-26 14:06:56 +02:00
Lorenzo BianconiandFelix Fietkau 01fb9ba096 mt7603: fix control/status retries count estimation
Refactor tx count computation for fixed_rate frames in status path

Signed-off-by: Lorenzo Bianconi <[email protected]>
2017-06-26 14:06:44 +02:00
Felix Fietkau af326156d9 mt7603: change auto rate control register initialization
Allow the hardware to fall back if rates stop working, make the first
rate fail earlier.

Signed-off-by: Felix Fietkau <[email protected]>
Signed-off-by: Lorenzo Bianconi <[email protected]>
2017-06-26 14:06:31 +02:00
Lorenzo BianconiandFelix Fietkau 70d225123f tx: fix AGGR burst length estimation
Use tx_info reference of last dequeued frame instead of the previous one
to compute 802.11 aggregate burst length

Signed-off-by: Lorenzo Bianconi <[email protected]>
2017-06-16 15:27:34 +02:00
Lorenzo BianconiandFelix Fietkau e287efe811 mt7603: fix MT_AGG_ARxCR macro definition
Signed-off-by: Lorenzo Bianconi <[email protected]>
2017-06-12 11:11:09 +02:00
Lorenzo BianconiandFelix Fietkau ef5b045ddf mt7603: beacon: fix typo in beacon_mask computation
Signed-off-by: Lorenzo Bianconi <[email protected]>
2017-05-30 08:39:38 +02:00
Felix Fietkau 219c8dc717 mt7603: fix endian issue in CCMP PN
Signed-off-by: Felix Fietkau <[email protected]>
2017-05-26 09:40:49 +02:00
Felix Fietkau b8a7d0729e mt7603: fix rate update bw fallback index
Signed-off-by: Felix Fietkau <[email protected]>
2017-05-26 08:59:00 +02:00
Felix Fietkau 6fdf3a700f mt7603: defer unconditional hw reset to stop call
Makes repeated down/up calls more reliable

Signed-off-by: Felix Fietkau <[email protected]>
2017-05-25 21:44:10 +02:00
Felix Fietkau dda684912e mt7603: fix tx status reporting initialization
Signed-off-by: Felix Fietkau <[email protected]>
2017-05-22 19:51:37 +02:00
Felix Fietkau 5d374dab96 mt7603: reserve more pages for beacons
Should improve reliablity for multiple interfaces

Signed-off-by: Felix Fietkau <[email protected]>
2017-05-12 14:56:44 +02:00
Felix Fietkau 7168d59902 mt7603: reset PSE queue hang indicator bits
Signed-off-by: Felix Fietkau <[email protected]>
2017-03-21 14:47:01 +01:00
Felix Fietkau 38bae1d303 mt7603: improve reliability of the PSE reset
Signed-off-by: Felix Fietkau <[email protected]>
2017-03-21 14:44:39 +01:00
Felix Fietkau d1769e3346 mt7603: drop the PSE reset on init, it happens too early
Signed-off-by: Felix Fietkau <[email protected]>
2017-03-21 14:44:17 +01:00
Felix Fietkau 040c73638c mt7603: rename extended event enum fields
Signed-off-by: Felix Fietkau <[email protected]>
2017-03-21 11:37:05 +01:00
Felix Fietkau a85617295b mt7603: move enqueueing of mcu events to mt7603_mcu.c
Signed-off-by: Felix Fietkau <[email protected]>
2017-03-21 11:31:53 +01:00
Felix Fietkau 1a3ec7760c mt7603: disable beacon timers during scan
Signed-off-by: Felix Fietkau <[email protected]>
2017-03-21 11:06:19 +01:00
Felix Fietkau e2d298d071 mt7603: issue tx reset bit 2 before DMA reset
Signed-off-by: Felix Fietkau <[email protected]>
2017-03-21 10:44:53 +01:00
Felix Fietkau b2d023520f mt7603: remove redundant mac start
Signed-off-by: Felix Fietkau <[email protected]>
2017-03-21 10:34:22 +01:00
Felix Fietkau e5c58f6c64 mt76x2: fix size of the rssi offset eeprom field
Signed-off-by: Felix Fietkau <[email protected]>
2017-03-17 15:48:57 +01:00
AlejandroandFelix Fietkau 712b8e8f69 mac80211: claim RSN IBSS support
Signed-off-by: Alejandro <[email protected]>
2017-03-17 13:29:26 +01:00
Felix Fietkau 4a54ab381c mt7603: fall back to software crypto for IBSS/Mesh per-sta GTK
Signed-off-by: Felix Fietkau <[email protected]>
2017-03-17 13:29:23 +01:00
Felix Fietkau 9f02db7efc mt76x2: fall back to software crypto for IBSS/Mesh per-sta GTK
Signed-off-by: Felix Fietkau <[email protected]>
2017-03-17 13:29:23 +01:00
Felix Fietkau c91e660985 mt7603: set secondary beacon time offsets
Signed-off-by: Felix Fietkau <[email protected]>
2017-03-15 14:24:48 +01:00
Felix Fietkau 93ce124526 mt7603: enable beacons for other virtual interfaces
Signed-off-by: Felix Fietkau <[email protected]>
2017-03-15 14:24:46 +01:00
Felix Fietkau 59ce2b491b mt7603: set tx vif own MAC index (needed for beacons)
Signed-off-by: Felix Fietkau <[email protected]>
2017-03-15 14:24:44 +01:00
Felix Fietkau e54add55e0 mt7603: move napi/tasklet enable/disable outside of the locked section
Should help prevent deadlocks

Signed-off-by: Felix Fietkau <[email protected]>
2017-03-15 14:24:42 +01:00
Felix Fietkau da8e79696d mt7603: check wtbl busy status and stop/start tx queues when clearing sta entry
Signed-off-by: Felix Fietkau <[email protected]>
2017-03-15 14:24:40 +01:00
Felix Fietkau f22273bf85 mt7603: init WTBL entry before setting capabilities
Signed-off-by: Felix Fietkau <[email protected]>
2017-03-15 14:24:38 +01:00
Felix Fietkau dce8aac5c4 mt7603: fix endian issue in mt7603_mac_fill_rx
Signed-off-by: Felix Fietkau <[email protected]>
2017-03-15 14:24:35 +01:00
Felix Fietkau 29b08d3abd mt7603: fix endian issue in mt7603_mcu_set_timing
Signed-off-by: Felix Fietkau <[email protected]>
2017-03-15 14:24:08 +01:00
Felix Fietkau f020a60950 mt7603: support loading the entire EEPROM from OTP
Signed-off-by: Felix Fietkau <[email protected]>
2017-02-27 09:52:36 +01:00
Felix Fietkau b056a78fd7 dma: fix endian issue in mt76_dma_get_buf
Signed-off-by: Felix Fietkau <[email protected]>
2017-02-27 09:44:20 +01:00