Commit Graph
589 Commits
Author SHA1 Message Date
Fengguang WuandFelix Fietkau 58dbda75bd mt76: fix returnvar.cocci warnings
drivers/net/wireless/mediatek/mt76/mt76x2_main.c:86:5-8: Unneeded variable: "ret". Return "0" on line 112

 Remove unneeded variable used to store return value.

Generated by: scripts/coccinelle/misc/returnvar.cocci

Fixes: a5f6039c8f9c ("mt76: add driver code for MT76x2e")
CC: Felix Fietkau <[email protected]>
Signed-off-by: Fengguang Wu <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
2018-01-30 10:23:03 +01:00
Felix Fietkau 808c1c571a mt76x2: add functions for setting extended MAC address registers
Signed-off-by: Felix Fietkau <[email protected]>
2018-01-30 10:23:03 +01:00
Lorenzo BianconiandFelix Fietkau dd270b09a7 mt7603: mcu: fix potential NULL pointer dereferencing on failed allocation
Signed-off-by: Lorenzo Bianconi <[email protected]>
2018-01-30 10:23:03 +01:00
Lorenzo BianconiandFelix Fietkau d543b03eac mt7603: main: fix possible NULL pointer dereferencing in mt7603_ampdu_action()
Initialize mt76_txq pointer after ieee80211_txq pointer check.
Remove space after the pointer cast

Signed-off-by: Lorenzo Bianconi <[email protected]>
2018-01-30 10:23:03 +01:00
Felix Fietkau d225fa72b8 mt7603: fix configuration for HT40
Signed-off-by: Felix Fietkau <[email protected]>
2018-01-30 10:23:03 +01:00
Lorenzo BianconiandFelix Fietkau 9659c8c19c mt76x2: eeprom: fix typo in mt76x2_get_power_info_5g()
Fix typo in 5GHz power vs channel eeprom parsing

Fixes: 7bc04215a66b ("mt76: add driver code for MT76x2e")
Signed-off-by: Lorenzo Bianconi <[email protected]>
2018-01-30 10:23:03 +01:00
Lorenzo BianconiandFelix Fietkau bf6a341e9a mt76x2: mac: fix possible NULL pointer dereferencing in mt76x2_mac_write_txwi()
Signed-off-by: Lorenzo Bianconi <[email protected]>
2018-01-30 10:23:03 +01:00
Lorenzo BianconiandFelix Fietkau 0ee431dac9 mt76x2: fix possible NULL pointer dereferencing in mt76x2_ampdu_action()
Initialize mt76_txq pointer after ieee80211_txq pointer check.
Remove space after the pointer cast

Fixes: 7bc04215a66b ("mt76: add driver code for MT76x2e")
Signed-off-by: Lorenzo Bianconi <[email protected]>
2018-01-30 10:23:03 +01:00
Colin Ian KingandFelix Fietkau 9e1b8edcf3 mt76: fix memcpy to potential null pointer on failed allocation
Currently if the allocation of skb fails and returns NULL then the
call to skb_put will cause a null pointer dereference. Fix this by
checking for a null skb and returning NULL.  Note that calls to
function mt76x2_mcu_msg_alloc don't directly check the null return
but instead pass the NULL pointer to mt76x2_mcu_msg_send which
checks for the NULL and returns ENOMEM in this case.

Detected by CoverityScan, CID#1462624 ("Dereference null return value")

Fixes: 7bc04215a66b ("mt76: add driver code for MT76x2e")
Signed-off-by: Colin Ian King <[email protected]>
2018-01-30 10:23:03 +01:00
Felix Fietkau 4a11cc1256 mt7603: configure other-unicast drop based on monitor mode setting
Signed-off-by: Felix Fietkau <[email protected]>
2018-01-30 10:23:03 +01:00
Lorenzo BianconiandFelix Fietkau a3323a115a mt76x2: init: fix rx filter default value during init
mt76x2_mac_start writes dev->rxfilter to the hardware. It also happens
during init, before dev->rxfilter is filled with the initval register
value, leading to issues like promisc mode being enabled
unconditionally.

Fix this by reading the default value into dev->rxfilter earlier

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2018-01-30 10:23:03 +01:00
Felix Fietkau a3dbfdbc8c mt76x2: configure rx filter based on monitor mode setting
Due to an unrelated issue, the MT_RX_FILTR_CFG_PROMISC flag is currently
unset, which means that monitor mode is unconditionally enabled.
Toggle this flag based on the mac80211 monitor mode setting instead

Signed-off-by: Felix Fietkau <[email protected]>
2018-01-30 10:23:03 +01:00
Felix Fietkau 91cc0d4734 Partially revert "mt7603: use mcu command to set timing registers, fix OFDM timeout values"
This reverts commit 268467b9a4.
It is unnecessary to go through the MCU for this.

Signed-off-by: Felix Fietkau <[email protected]>
2018-01-30 10:23:03 +01:00
Felix Fietkau af68a59c5f mt7603: update firmware to version 20160107100755
Signed-off-by: Felix Fietkau <[email protected]>
2018-01-30 10:23:03 +01:00
Felix Fietkau e326bc2ac4 mt7603: remove some harmless WARN_ONs in rx path
Discard affected packets instead. Should reduce the frequency of bogus
bug reports

Signed-off-by: Felix Fietkau <[email protected]>
2017-12-03 21:45:43 +01:00
Felix Fietkau 86ddef3b21 mt76x2: remove some harmless WARN_ONs in tx status and rx path
Discard affected packets instead. Should reduce the frequency of bogus
bug reports

Signed-off-by: Felix Fietkau <[email protected]>
2017-12-03 21:45:43 +01:00
Felix Fietkau 7dd2a9e771 mt7603: initialize wtbl ps flag on station add
Ensure that the firmware hasn't changed anything

Signed-off-by: Felix Fietkau <[email protected]>
2017-12-03 21:45:43 +01:00
Felix Fietkau 123acf2461 mt7603: set tx-skip flag for powersave clients
Helps flush out frames faster

Signed-off-by: Felix Fietkau <[email protected]>
2017-12-03 21:45:43 +01:00
Felix Fietkau dc7a351279 mt7603: clear wtbl PS bit for powersave responses
Avoids filtering frames that are supposed to be sent

Signed-off-by: Felix Fietkau <[email protected]>
2017-12-03 21:45:43 +01:00
Felix Fietkau 41e6a04837 mt7603: make mt7603_mac_watchdog_reset() static
Signed-off-by: Felix Fietkau <[email protected]>
2017-12-03 21:45:43 +01:00
Felix Fietkau 7dc8db1362 mt7603: clean up dma debug reads
Signed-off-by: Felix Fietkau <[email protected]>
2017-12-03 21:45:43 +01:00
Felix Fietkau 4ed7e07cd8 mt7603: warn if PSE reset fails
Signed-off-by: Felix Fietkau <[email protected]>
2017-12-03 21:45:43 +01:00
Felix Fietkau 30750599f0 mt7603: simplify PSE reset
Skip PSE client reset, it is done by the firmware already

Signed-off-by: Felix Fietkau <[email protected]>
2017-12-03 21:45:43 +01:00
Felix Fietkau 4490f93669 mt7603: remove WARN_ON_ONCE for workaround checks
It can happen during normal operation and it confuses users more than it
actually helps. workaround trigger counts are still available via
debugfs

Signed-off-by: Felix Fietkau <[email protected]>
2017-12-03 21:45:43 +01:00
Felix Fietkau c86c3a0f5c mt7603: remove watchdog reset on interface stop
It can be harmful in some cases

Signed-off-by: Felix Fietkau <[email protected]>
2017-12-03 21:45:43 +01:00
Felix Fietkau ea4c2a165a mt7603: rename MT_PSE_RESET register
It is actually a dummy control register used for communicating reset
state with the MCU firmware

Signed-off-by: Felix Fietkau <[email protected]>
2017-12-03 21:45:43 +01:00
Felix Fietkau e7eaa7c09b mt7603: rename mt7603_mac_reset to mt7603_pse_reset
Signed-off-by: Felix Fietkau <[email protected]>
2017-12-03 21:45:43 +01:00
Felix Fietkau c2bd89ee91 mt76x2: convert between per-chain tx power and combined output
Using both chains adds max. 3 dBm.

Signed-off-by: Felix Fietkau <[email protected]>
2017-12-03 21:45:43 +01:00
Felix Fietkau 58364a2ac4 mt76x2: initialize channel power limits
Signed-off-by: Felix Fietkau <[email protected]>
2017-12-03 21:45:43 +01:00
Felix Fietkau 1acde21849 mt76x2: add channel argument to eeprom tx power functions
Preparation for exposing maximum power to mac80211

Signed-off-by: Felix Fietkau <[email protected]>
2017-12-03 21:45:43 +01:00
Felix Fietkau 0532315f76 mt76x2: increase OFDM SIFS time
Fixes throughput issues in combination with LDPC

Signed-off-by: Felix Fietkau <[email protected]>
2017-12-03 21:45:43 +01:00
Felix Fietkau 2c1a77c74f 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-12-03 21:45:43 +01:00
Felix Fietkau 82acc859fb mt7603: add missing include required on newer kernels
Signed-off-by: Felix Fietkau <[email protected]>
2017-12-03 21:45:43 +01:00
Felix Fietkau 8c821aa63f mac80211: add missing include
Signed-off-by: Felix Fietkau <[email protected]>
2017-12-03 21:45:43 +01:00
Felix Fietkau 0a0d16f817 mt76x2: sync tx power related values with reference driver
Signed-off-by: Felix Fietkau <[email protected]>
2017-11-16 20:34:46 +01:00
Felix Fietkau 4bc9aa9da7 mt76x2: add more gain tuning based on the latest reference driver
Signed-off-by: Felix Fietkau <[email protected]>
2017-11-16 20:34:46 +01:00
Felix Fietkau 60a4d67ca9 mt76x2: implement dynamic AGC tuning based on false packet detection count
Significantly improves radio performance

Signed-off-by: Felix Fietkau <[email protected]>
2017-11-16 20:34:46 +01:00
Felix Fietkau cc588c5e32 mt76x2: sync channel gain value with latest reference driver
Signed-off-by: Felix Fietkau <[email protected]>
2017-11-16 20:34:46 +01:00
Felix Fietkau fe7981687d mt76x2: fix LNA gain register annotation
Signed-off-by: Felix Fietkau <[email protected]>
2017-11-16 20:34:45 +01:00
Felix Fietkau 73902dc8a7 mt76x2: add rx statistics registers
Signed-off-by: Felix Fietkau <[email protected]>
2017-11-16 20:34:45 +01:00
Felix Fietkau 7dfb354d3b mt76: increase rx ring size for mt76x2
Should improve performance under load

Signed-off-by: Felix Fietkau <[email protected]>
2017-11-16 20:34:45 +01:00
Felix Fietkau 941555ba89 mt76x2: clear drop mask when sending a PS response
Should make handling powersave clients more reliable

Signed-off-by: Felix Fietkau <[email protected]>
2017-11-16 20:34:45 +01:00
Felix Fietkau 3e5afe7ba8 mt76x2: add helper function for setting drop mask
Signed-off-by: Felix Fietkau <[email protected]>
2017-11-16 20:34:45 +01:00
Felix Fietkau 0dd8b688b2 mt76x2: clear per-WCID tx rate lookup register
Signed-off-by: Felix Fietkau <[email protected]>
2017-11-16 20:34:45 +01:00
Felix Fietkau f9d9c22491 mt76x2: clear drop flag for all WCIDs on init
Signed-off-by: Felix Fietkau <[email protected]>
2017-11-16 20:34:45 +01:00
Felix Fietkau 8f1673a34b mt76x2: limit client WCID entries to 0-127
The rx WCID lookup table and the per-WCID rate table only have 128
entries. All further WCID entries are tx-only.

Signed-off-by: Felix Fietkau <[email protected]>
2017-11-16 20:34:45 +01:00
Felix Fietkau 8e453b32e3 mac80211: move DT led configuration to the "led" child node
Signed-off-by: Felix Fietkau <[email protected]>
2017-11-16 20:34:45 +01:00
Felix Fietkau f5498d2aeb debugfs: add support for changing the LED pin
Signed-off-by: Felix Fietkau <[email protected]>
2017-11-16 20:34:45 +01:00
Felix Fietkau 0b7984e252 mt7603: remove unnecessary mcu register read function
Signed-off-by: Felix Fietkau <[email protected]>
2017-11-16 20:34:45 +01:00
Kristian EvensenandFelix Fietkau 9d36ff2ba4 mt76x2: Add PCI identifier for MT7602
MT7602 is also available as a PCI card, so add the missing identifier.

Signed-off-by: Kristian Evensen <[email protected]>
2017-11-16 20:34:45 +01:00