Commit Graph
100 Commits
Author SHA1 Message Date
Lorenzo BianconiandFelix Fietkau 4ccd420295 mt76: mt7921: introduce testmode support
We add the testmode support to access the testmode feature provided
by the MT7921 firmware.

Tested-by: Sean Wang <[email protected]>
Co-developed-by: Sean Wang <[email protected]>
Signed-off-by: Sean Wang <[email protected]>
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-07-14 15:54:43 +02:00
Lorenzo BianconiandFelix Fietkau 25b4f885a9 mt76: mt76x02: fix endianness warnings in mt76x02_mac.c
Fix the following sparse warning in mt76x02_mac_write_txwi and
mt76x02_mac_tx_rate_val routines:
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c:237:19:
	warning: restricted __le16 degrades to intege
	warning: cast from restricted __le16
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c:383:28:
	warning: incorrect type in assignment (different base types)
	expected restricted __le16 [usertype] rate
	got unsigned long

Fixes: db9f11d3433f7 ("mt76: store wcid tx rate info in one u32 reduce locking")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-07-14 15:54:43 +02:00
Lorenzo BianconiandFelix Fietkau 41f607cab8 mt76: mt7921: fix survey-dump reporting
Fix MIB tx-rx MIB counters for survey-dump reporting.

Fixes: 163f4d22c118d ("mt76: mt7921: add MAC support")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-07-14 15:54:43 +02:00
Lorenzo BianconiandFelix Fietkau b8eca74bbd mt76: mt7615: fix endianness warning in mt7615_mac_write_txwi
Fix the following sparse warning in mt7615_mac_write_txwi routine:
drivers/net/wireless/mediatek/mt76/mt7615/mac.c:758:17:
	warning: incorrect type in assignment
	expected restricted __le32 [usertype]
	got unsigned long

Fixes: 04b8e65922f63 ("mt76: add mac80211 driver for MT7615 PCIe-based chipsets")
Fixes: d4bf77bd74930 ("mt76: mt7615: introduce mt7663u support to mt7615_write_txwi")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-07-14 12:18:38 +02:00
Lorenzo BianconiandFelix Fietkau 817761e87c mt76: mt7921: fix endianness warning in mt7921_update_txs
Fix the following sparse warning in mt7921_update_txs routine:
drivers/net/wireless/mediatek/mt76/mt7921/mac.c:752:31:
	warning: cast to restricted __le32
drivers/net/wireless/mediatek/mt76/mt7921/mac.c:752:31:
	warning: restricted __le32 degrades to integer

Fixes: e5bca8c5d2cd3 ("mt76: mt7921: improve code readability for mt7921_update_txs")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-07-14 12:18:38 +02:00
Lorenzo BianconiandFelix Fietkau 541cd32764 mt76: mt7915: fix endianness warning in mt7915_mac_add_txs_skb
Fix the following sparse warning in mt7915_mac_add_txs_skb routine:

drivers/net/wireless/mediatek/mt76/mt7915/mac.c:1235:29:
	warning: cast to restricted __le32
drivers/net/wireless/mediatek/mt76/mt7915/mac.c:1235:23:
	warning: restricted __le32 degrades to integer

Fixes: 3de4cb1756565 ("mt76: mt7915: add support for tx status reporting")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-07-14 12:18:38 +02:00
Lorenzo BianconiandFelix Fietkau 55f314120e mt76: mt7921: avoid unnecessary spin_lock/spin_unlock in mt7921_mcu_tx_done_event
Do not grab the spinlock in mt7921_mcu_tx_done_event routine if not
necessary.

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-07-14 12:18:38 +02:00
Lorenzo BianconiandFelix Fietkau 0e40899495 mt76: mt7921: fix endianness in mt7921_mcu_tx_done_event
Fix endianness in mt7921_mcu_tx_done_event event reported by the
firmware.

Fixes: 3cce2b98e0241 ("mt76: mt7921: introduce mac tx done handling")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-07-14 12:18:38 +02:00
Lorenzo BianconiandFelix Fietkau 63b114d843 mt76: mt76x0e: fix device hang during suspend/resume
Similar to usb device, re-initialize mt76x0e device after resume in order
to fix mt7630e hang during suspend/resume

Reported-by: Luca Trombin <[email protected]>
Fixes: c2a4d9fbabfb9 ("mt76x0: inital split between pci and usb")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
Link: https://lore.kernel.org/r/4812f9611624b34053c1592fd9c175b67d4ffcb4.1620406022.git.lorenzo@kernel.org
2021-06-18 17:20:25 +02:00
Lorenzo BianconiandFelix Fietkau 925d96e443 mt76: mt7921: allow chip reset during device restart
Disable chip full reset just during device probing but allow
it during hw restart.

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-06-18 17:19:44 +02:00
Lorenzo BianconiandFelix Fietkau 3a71e71a55 mt76: mt7615: set macwork timeout according to runtime-pm
Set macwork timeout value according to runtime-pm in order to reduce
power consumption

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-06-18 17:19:44 +02:00
Lorenzo BianconiandFelix Fietkau ef44ff116e mt76: mt7663s: enable runtime-pm
Allow the user to enable runtime-pm for mt7663s driver

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-06-18 17:19:44 +02:00
Lorenzo BianconiandFelix Fietkau 529d55a790 mt76: mt7663s: rely on mt76_connac_pm_ref/mt76_connac_pm_unref in tx path
Similar to mt7663e, rely on mt76_connac_pm_ref/mt76_connac_pm_unref to
check PM state and increment/decrement wake counter

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-06-18 17:19:44 +02:00
Lorenzo BianconiandFelix Fietkau 3b6d30c289 mt76: mt7663s: rely on pm reference counting
As already done for mt7921 and mt7663e, rely on pm reference counting in
drv/fw_own

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-06-18 17:19:44 +02:00
Lorenzo BianconiandFelix Fietkau 599e35f5d9 mt76: sdio: do not run mt76_txq_schedule directly
In order to support runtime-pm for sdio, do not run mt76_txq_schedule
directly, but schedule tx_worker instead

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-06-18 17:19:44 +02:00
Lorenzo BianconiandFelix Fietkau 949327e76e mt76: disable TWT capabilities for the moment
Disable TWT REQ/RES mac capabilities since TWT is not supported
yet in mt7915/mt7921.

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-06-18 17:19:44 +02:00
Lorenzo BianconiandFelix Fietkau a5163ac09b mt76: mt7921: introduce dedicated control for deep_sleep
Introduce ds_enable switch to fully control fw deep_sleep capability

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-06-18 17:19:44 +02:00
Lorenzo BianconiandFelix Fietkau 1266498167 mt76: mt7921: limit txpower according to userlevel power
Limit tx power for single-sku according to userlevel power.

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-06-18 17:19:44 +02:00
Lorenzo BianconiandFelix Fietkau 1b89053b5a mt76: mt7921: improve code readability for mt7921_update_txs
Introduce mt7921_update_txs routine in order to improve code readability
for tx timestamp parsing/configuration.

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-06-18 17:19:44 +02:00
Lorenzo BianconiandFelix Fietkau 67ed4d902c mt76: connac: check band caps in mt76_connac_mcu_set_rate_txpower
Check device band capabilities before configuring single-sku

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-06-10 13:31:49 +02:00
Lorenzo BianconiandFelix Fietkau 60f3d3adbb mt76: move mt76_get_next_pkt_id in mt76.h
In order to remove duplicated code, move mt76_get_next_pkt_id routine
in mt76.h

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-06-10 13:28:33 +02:00
Lorenzo BianconiandFelix Fietkau ed39c882f3 mt76: reduce rx buffer size to 2048
Reduce rx buffer size to 2048 for mt7921/mt7915/mt7615 since we
now support rx amsdu offload

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-06-10 13:28:33 +02:00
Lorenzo BianconiandFelix Fietkau b24598b1c1 mt76: connac: add mt76_connac_mcu_get_nic_capability utility routine
Introduce mt76_connac_mcu_get_nic_capability utility routine to poll
device capabilities returned by mcu fw for CE devices (mt7663/mt7921).
This is a preliminary patch to introduce 6GHz support.

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-06-10 13:28:33 +02:00
Lorenzo BianconiandFelix Fietkau 82af16bddf mt76: mt7921: make mt7921_set_channel static
Make mt7921_set_channel routine static since it is only used in main.c

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-06-10 13:28:33 +02:00
Lorenzo BianconiandFelix Fietkau b14365bea5 mt76: mt7921: wake the device before dumping power table
Always wake the device up before dumping the single_sku power table
otherwise the device can hang.

Fixes: ea29acc97c555 ("mt76: mt7921: add dumping Tx power tabl")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-06-10 13:28:33 +02:00
Lorenzo BianconiandFelix Fietkau 6b691e6247 mt76: connac: add mt76_connac_power_save_sched in mt76_connac_pm_unref
Schedule power_save work running mt76_connac_pm_unref in order to reduce
power consumption

Tested-by: Sean Wang <[email protected]>
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-06-10 13:28:33 +02:00
Lorenzo BianconiandFelix Fietkau a27dfcb63c mt76: connac: fix UC entry is being overwritten
Fix UC entry is being overwritten by BC entry

Tested-by: Deren Wu <[email protected]>
Co-developed-by: Deren Wu <[email protected]>
Signed-off-by: Deren Wu <[email protected]>
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-06-10 13:28:33 +02:00
Lorenzo BianconiandFelix Fietkau 833d577e43 mt76: mt7921: remove mt7921_get_wtbl_info routine
Since now the fw reports tx rate events without polling,
mt7921_get_wtbl_info and related structures are no longer used.

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-06-02 08:37:05 +02:00
Lorenzo BianconiandFelix Fietkau 71450535f1 mt76: mt7921: enable hw offloading for wep keys
Enable wep key hw offloading for sta mode. This patch fixes
WoW support for wep connections.

Tested-by: Deren.Wu <[email protected]>
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-06-02 08:34:31 +02:00
Lorenzo BianconiandFelix Fietkau 321443258b mt76: move mt76_rates in mt76 module
Move mt76_rates array in mt76 module and remove duplicated code since it
is shared by all drivers

Signed-off-by: Lorenzo Bianconi <[email protected]>
2021-06-02 08:25:00 +02:00
Lorenzo BianconiandFelix Fietkau ed6b0c7982 mt76: mt7921: set MT76_RESET during mac reset
Set MT76_RESET during mt7921_mac_reset in order to avoid packet
transmissions. Move tx scheduling at the end of reset routine.

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-06-02 08:05:06 +02:00
Lorenzo BianconiandFelix Fietkau 1fcff599b2 mt76: allow hw driver code to overwrite wiphy interface_modes
Move wiphy interface_modes configuration in mt76_alloc_device and
mt76_alloc_phy in order to be overwritten by hw specific code
since some drivers do not support all operating modes (mt7921
supports sta only in the current codebase)

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-05-28 14:07:15 +02:00
Lorenzo BianconiandFelix Fietkau a976345260 mt76: testmode: remove undefined behaviour in mt76_testmode_alloc_skb
Get rid of an undefined behaviour in mt76_testmode_alloc_skb routine
allocating skb frames

Fixes: 2601dda8faa76 ("mt76: testmode: add support to send larger packet")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-05-28 11:52:34 +02:00
Lorenzo BianconiandFelix Fietkau bdcc57a116 mt76: testmode: remove unnecessary function calls in mt76_testmode_free_skb
Get rid of unnecessary function calls in mt76_testmode_free_skb routine
since they are already managed by dev_kfree_skb

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-05-28 11:52:34 +02:00
Lorenzo BianconiandFelix Fietkau 3945264468 mt76: testmode: fix memory leak in mt76_testmode_alloc_skb
Free all pending frames in case of failure in mt76_testmode_alloc_skb
routine

Fixes: 2601dda8faa76 ("mt76: testmode: add support to send larger packet")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-05-28 11:52:34 +02:00
Lorenzo BianconiandFelix Fietkau 597b68b7da mt76: mt7615: remove useless if condition in mt7615_add_interface()
Get rid of unnecessary if condition in mt7615_add_interface routine

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-05-28 11:52:34 +02:00
Lorenzo BianconiandFelix Fietkau 9f7bb428e5 mt76: mt7921: reset wfsys during hw probe
This patch fixes a mcu hang during device probe on
Marvell ESPRESSObin after a hot reboot.

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-05-28 11:52:34 +02:00
Lorenzo BianconiandFelix Fietkau c89c8c347b mt76: mt7921: do not schedule hw reset if the device is not running
Do not schedule hw full reset if the device is not fully initialized
(e.g if the channel has not been configured yet). This patch fixes
the kernel crash reported below

[   44.440266] mt7921e 0000:01:00.0: chip reset failed
[   44.527575] Unable to handle kernel paging request at virtual address ffffffc02f3e0000
[   44.535771] Mem abort info:
[   44.538646]   ESR = 0x96000006
[   44.541792]   EC = 0x25: DABT (current EL), IL = 32 bits
[   44.547268]   SET = 0, FnV = 0
[   44.550413]   EA = 0, S1PTW = 0
[   44.553648] Data abort info:
[   44.556613]   ISV = 0, ISS = 0x00000006
[   44.560563]   CM = 0, WnR = 0
[   44.563619] swapper pgtable: 4k pages, 39-bit VAs, pgdp=0000000000955000
[   44.570530] [ffffffc02f3e0000] pgd=100000003ffff003, p4d=100000003ffff003, pud=100000003ffff003, pmd=0000000000000000
[   44.581489] Internal error: Oops: 96000006 [#1] SMP
[   44.606406] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G        W         5.13.0-rc1-espressobin-12875-g6dc7f82ebc26 #33
[   44.617264] Hardware name: Globalscale Marvell ESPRESSOBin Board (DT)
[   44.623905] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO BTYPE=--)
[   44.630100] pc : __queue_work+0x1f0/0x500
[   44.634249] lr : __queue_work+0x1e8/0x500
[   44.638384] sp : ffffffc010003d70
[   44.641798] x29: ffffffc010003d70 x28: 0000000000000000 x27: ffffff8003989200
[   44.649166] x26: ffffffc010c08510 x25: 0000000000000002 x24: ffffffc010ad90b0
[   44.656533] x23: ffffffc010c08508 x22: 0000000000000012 x21: 0000000000000000
[   44.663899] x20: ffffff8006385238 x19: ffffffc02f3e0000 x18: 00000000000003c9
[   44.671266] x17: 0000000000000000 x16: 0000000000000000 x15: 000009b1a8a3bf90
[   44.678632] x14: 0098968000000000 x13: 0000000000000000 x12: 0000000000000325
[   44.685998] x11: ffffff803fda1928 x10: 0000000000000001 x9 : ffffffc010003e98
[   44.693365] x8 : 0000000000000032 x7 : fff8000000000000 x6 : 0000000000000035
[   44.700732] x5 : 0000000000000000 x4 : 0000000000000000 x3 : ffffffc010adf700
[   44.708098] x2 : ffffff8006385238 x1 : 000000007fffffff x0 : 0000000000000000
[   44.715465] Call trace:
[   44.717982]  __queue_work+0x1f0/0x500
[   44.721760]  delayed_work_timer_fn+0x18/0x20
[   44.726167]  call_timer_fn+0x2c/0x178
[   44.729947]  run_timer_softirq+0x488/0x5c8
[   44.734172]  _stext+0x11c/0x378
[   44.737411]  irq_exit+0x100/0x108
[   44.740830]  __handle_domain_irq+0x60/0xb0
[   44.745059]  gic_handle_irq+0x70/0x2b4
[   44.748929]  el1_irq+0xb8/0x13c
[   44.752167]  arch_cpu_idle+0x14/0x30
[   44.755858]  default_idle_call+0x38/0x168
[   44.759994]  do_idle+0x1fc/0x210
[   44.763325]  cpu_startup_entry+0x20/0x58
[   44.767372]  rest_init+0xb8/0xc8
[   44.770703]  arch_call_rest_init+0xc/0x14
[   44.774841]  start_kernel+0x408/0x424
[   44.778623] Code: aa1403e0 97fff54f aa0003f5 b5fff500 (f9400275)
[   44.784907] ---[ end trace be73c3142d8c36a9 ]---
[   44.789668] Kernel panic - not syncing: Oops: Fatal exception in interrupt

Fixes: 0c1ce9884607 ("mt76: mt7921: add wifi reset support")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-05-28 11:42:47 +02:00
Lorenzo BianconiandFelix Fietkau e29058c3c8 mt76: mt7921: return proper error value in mt7921_mac_init
Return possible error values in mt7921_mac_init routine

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-05-28 11:42:47 +02:00
Lorenzo BianconiandFelix Fietkau e4d267d8e9 mt76: mt7921: enable runtime pm by default
mt7921 is mainly used in CE/IoT market so enable runtime-pm by default

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Sean Wang <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-05-28 11:32:04 +02:00
Lorenzo BianconiandFelix Fietkau f2d0da8da9 mt76: mt7663: enable hw rx header translation
As already done for mt7615 and mt7915, enable rx header translation
offload for mt7663 in order to reduce cpu load in the rx path.

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-05-13 10:18:25 +02:00
Lorenzo BianconiandFelix Fietkau e423c16f16 mt76: mt7615: free irq if mt7615_mmio_probe fails
As already done for mt7915 and mt7921, free registered irq line if
mt7615_mmio_probe routine fails

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-05-13 10:18:25 +02:00
Lorenzo BianconiandFelix Fietkau af21659ee8 mt76: mt76x0: use dev_debug instead of dev_err for hw_rf_ctrl
BIT(0) in MT_EE_NIC_CONF_1 is use to notify the driver if the radio RF
switch is controlled through a gpio. Use dev_debug instead of dev_err
to log this info.

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-05-13 10:18:25 +02:00
Lorenzo BianconiandFelix Fietkau 5c2baab92c mt76: mt7615: fix NULL pointer dereference in tx_prepare_skb()
Fix theoretical NULL pointer dereference in mt7615_tx_prepare_skb and
mt7663_usb_sdio_tx_prepare_skb routines. This issue has been identified
by code analysis.

Fixes: 6aa4ed7927f11 ("mt76: mt7615: implement DMA support for MT7622")
Fixes: 4bb586bc33b98 ("mt76: mt7663u: sync probe sampling with rate configuration")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-05-13 10:18:25 +02:00
Lorenzo BianconiandFelix Fietkau aedc3145de mt76: fix possible NULL pointer dereference in mt76_tx
Even if this is not a real issue since mt76_tx is never run with wcid set
to NULL, fix a theoretical NULL pointer dereference in mt76_tx routine

Fixes: db9f11d3433f7 ("mt76: store wcid tx rate info in one u32 reduce locking")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-05-13 10:18:25 +02:00
Lorenzo BianconiandFelix Fietkau 01441f67d8 mt76: mt7921: enable rx csum offload
As already done for mt7615 and mt7915, enable hw rx checksum offload.

Signed-off-by: Lorenzo Bianconi <[email protected]>
2021-05-07 12:06:02 +02:00
Lorenzo BianconiandFelix Fietkau 55921e57b3 mt76: mt7921: enable rx header traslation offload
As already done for mt7615 and mt7915, enable rx header translation
offload for mt7921 in order to reduce cpu load in the rx path.

Signed-off-by: Lorenzo Bianconi <[email protected]>
2021-05-07 12:05:17 +02:00
Lorenzo BianconiandFelix Fietkau c8cbcb87be mt76: connac: add missing configuration in mt76_connac_mcu_wtbl_hdr_trans_tlv
Add missing configuration parameters in mt76_connac_mcu_wtbl_hdr_trans_tlv
routine

Signed-off-by: Lorenzo Bianconi <[email protected]>
2021-05-07 12:05:13 +02:00
Lorenzo BianconiandFelix Fietkau 5a387a0a30 mt76: mt7921: enable rx hw de-amsdu
Enable hw rx-amsdu de-aggregation support available in 7921 devices.
This is a preliminary patch to enable rx checksum offload.

Signed-off-by: Lorenzo Bianconi <[email protected]>
2021-05-07 12:05:08 +02:00
Lorenzo BianconiandFelix Fietkau e5b19336c5 mt76: mt7615: do not set MT76_STATE_PM at bootstrap
Remove MT76_STATE_PM in mt7615_init_device() and introduce
__mt7663s_mcu_drv_pmctrl for fw loading in mt7663s.
This patch fixes a crash at bootstrap for device (e.g. mt7622) that do
not support runtime-pm

Fixes: 129fac01ffe85 ("mt76: connac: introduce wake counter for fw_pmctrl synchronization")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-29 13:18:09 +02:00
Lorenzo BianconiandFelix Fietkau 23fe1bdcf1 mt76: connac: do not schedule mac_work if the device is not running
Do not run ieee80211_queue_delayed_work for mac work if the worqueue is
not initialized yet

Fixes: b1bd7bb8121d ("mt76: connac: unschedule mac_work before going to sleep")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-23 16:41:16 +02:00
Lorenzo BianconiandFelix Fietkau 53d915a23b mt76: connac: do not schedule wake_work if the runtime-pm is disabled
Fix the following crash due to a call to mt7921_pm_wake_work if the
device has pm disabled or does not support runtime-pm

[    8.412590] mt7921e 0000:01:00.0: HW/SW Version: 0x8a108a10, Build
[    8.413660] WARNING: CPU: 0 PID: 20 at __queue_delayed_work+0x84/0xb0
[    8.481831] CPU: 0 PID: 20 Comm: kworker/u4:1 Not tainted 5.10.31 #0
[    8.488175] Hardware name: MediaTek MT7622 RFB1 board (DT)
[    8.493663] Workqueue: mt76 mt7921_pm_wake_work [mt7921e]
[    8.499055] pstate: 60000085 (nZCv daIf -PAN -UAO -TCO BTYPE=--)
[    8.505052] pc : __queue_delayed_work+0x84/0xb0
[    8.509574] lr : queue_delayed_work_on+0x54/0x78
[    8.514180] sp : ffffffc010bcbd20
[    8.517485] x29: ffffffc010bcbd20 x28: 0000000000000000
[    8.522790] x27: ffffff800015a148 x26: ffffffc0108acae0
[    8.528094] x25: 0000000000000000 x24: ffffff80056b4208
[    8.533399] x23: ffffff80056b26e0 x22: ffffff80056b26e0
[    8.538703] x21: ffffff80056b45f8 x20: ffffff80056b5dc8
[    8.544006] x19: 0000000000000000 x18: 000000000000000e
[    8.549310] x17: 0000000000000001 x16: 0000000000000019
[    8.554614] x15: 0000000000000033 x14: ffffffffffffffff
[    8.559919] x13: ffffffffffffffff x12: 0000000000000000
[    8.565223] x11: 0000000000000040 x10: 0000000000000820
[    8.570528] x9 : 0000b3c738feafd6 x8 : ffffff801feb7c80
[    8.575832] x7 : ffffff80056b4808 x6 : 0000000000000000
[    8.581136] x5 : ffffff80056b2888 x4 : 0000000fffffffe0
[    8.586441] x3 : 000000000000003e x2 : ffffff80056b2868
[    8.591745] x1 : 0000000000000000 x0 : 0000000000000002
[    8.597049] Call trace:
[    8.599488]  __queue_delayed_work+0x84/0xb0
[    8.603662]  queue_delayed_work_on+0x54/0x78
[    8.607947]  ieee80211_queue_delayed_work+0x30/0x50 [mac80211]
[    8.613774]  mt7921_pm_wake_work+0xa0/0xe0 [mt7921e]
[    8.618730]  process_one_work+0x1fc/0x398
[    8.622730]  worker_thread+0x150/0x4e0
[    8.626472]  kthread+0x120/0x128
[    8.629693]  ret_from_fork+0x10/0x18

Fixes: 129fac01ffe85 ("mt76: connac: introduce wake counter for fw_pmctrl synchronization")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-23 16:41:16 +02:00
Lorenzo BianconiandFelix Fietkau 92fb81e085 mt76: mt7921: fix possible AOOB issue in mt7921_mcu_tx_rate_report
Fix possible array out of bound access in mt7921_mcu_tx_rate_report.
Remove unnecessary varibable in mt7921_mcu_tx_rate_report

Fixes: 1c099ab44727c ("mt76: mt7921: add MCU support")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-23 16:41:16 +02:00
Lorenzo BianconiandFelix Fietkau ed41ed73a4 mt76: mt7921: reinit wpdma during drv_own if necessary
Check dummy reg to reinitialized WPDMA during driver_own operation

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 17:33:55 +02:00
Lorenzo BianconiandFelix Fietkau 757af5c67d mt76: move mt76_token_init in mt76_alloc_device
In order to remove duplicated code, move mt76_token_init in
mt76_alloc_device routine

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 17:33:55 +02:00
Lorenzo BianconiandFelix Fietkau 63d80b9ab2 mt76: mt7921: introduce mt7921_mcu_sta_add routine
mt7921_mcu_sta_add will be used to add and remove wtbl entries.
Create broadcast wtbl entry after AP association

Co-developed-by: Deren Wu <[email protected]>
Signed-off-by: Deren Wu <[email protected]>
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 14:31:57 +02:00
Lorenzo BianconiandFelix Fietkau 349bbb9d6f mt76: connac: unschedule mac_work before going to sleep
In order to wake the device less frequently and so reduce power
consumpation, unschedule mac_work before going to sleep

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 14:30:19 +02:00
Lorenzo BianconiandFelix Fietkau 2ae25c7e54 mt76: mt7663: add awake and doze time accounting
Similar to mt7921, introduce awake and doze time accounting
for runtime pm.

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 14:30:19 +02:00
Lorenzo BianconiandFelix Fietkau d325b7eff1 mt76: mt7921: improve doze opportunity
Increase mt7921 mac work timeout in oder to have move sleep
opportunities

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 14:30:19 +02:00
Lorenzo BianconiandFelix Fietkau 2126b21763 mt76: mt7921: get rid of mcu_reset function pointer
since mcu_reset it used only by mt7921, move the reset callback to
mt7921_mcu_parse_response routine and get rid of the function pointer.

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 14:30:19 +02:00
Lorenzo BianconiandFelix Fietkau 8d5c456be1 mt76: move token utilities in mt76 common module
Move token management in mt76 common module since it is shared between
mt7615, mt7915 and mt7921 drivers

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 14:30:19 +02:00
Lorenzo BianconiandFelix Fietkau ade1f5aad4 mt76: move token_lock, token and token_count in mt76_dev
Move token_lock, token and token_count data structures in mt76_dev.
This is a preliminary patch to move token management in mt76 common
module since it is shared by mt7615, mt7915 and mt7921 drivers.

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 14:30:19 +02:00
Lorenzo BianconiandFelix Fietkau 662a89f2b9 mt76: mt7921: introduce mt7921_wpdma_reinit_cond utility routine
Add mt7921_wpdma_reinit_cond to check dummy reg if driver needs to
reinitialized WPDMA after driver_own operation

Co-developed-by: Sean Wang <[email protected]>
Signed-off-by: Sean Wang <[email protected]>
Co-developed-by: Leon Yen <[email protected]>
Signed-off-by: Leon Yen <[email protected]>
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 14:30:19 +02:00
Lorenzo BianconiandFelix Fietkau 2ac7c7e9c5 mt76: mt7921: introduce mt7921_dma_{enable,disable} utilities
Introduce mt7921_dma_enable and mt7921_dma_disable utilities routine in
order for code reusing between mt7921_dma_reset and mt7921_dma_init.
This is a preliminary patch to reset dma during device driver_own
request.

Signed-off-by: Sean Wang <[email protected]>
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 14:30:19 +02:00
Lorenzo BianconiandFelix Fietkau c9dd6b1fa1 mt76: mt7921: introduce mt7921_wpdma_reset utility routine
Introduce mt7921_wpdma_reset routine to reset wpdma during chip reset
or driver_own request.

Signed-off-by: Sean Wang <[email protected]>
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 14:30:19 +02:00
Lorenzo BianconiandFelix Fietkau 7e25214687 mt76: mt7921: move mt7921_dma_reset in dma.c
Move mt7921_dma_reset routine in dma.c and make mt7921_dma_prefetch
static. Moreover add force parameter to mt7921_dma_reset signature.
This is a preliminary patch to reset dma mt7921_mcu_drv_pmctrl.

Signed-off-by: Sean Wang <[email protected]>
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 14:30:19 +02:00
Lorenzo BianconiandFelix Fietkau 45e0eefffe mt76: mt7921: enable sw interrupts
Enable sw interrupts in order to wake the device from deep sleep
receiving packets

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 13:49:02 +02:00
Lorenzo BianconiandFelix Fietkau 0c2d3e7485 mt76: mt7921: add awake and doze time accounting
Introduce awake and doze time accounting for runtime pm.

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 13:49:02 +02:00
Lorenzo BianconiandFelix Fietkau ca74a4cd07 mt76: remove MT76_STATE_PM in tx path
since tx/rx path is now relying pm ref counting, get rid of MT76_STATE_PM
check in the tx path

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 13:49:02 +02:00
Lorenzo BianconiandFelix Fietkau acfa78df57 mt76: connac: use waitqueue for runtime-pm
Simplify the code using a wait_queue_head_t instead of a completion to
wait the chip is fully awake in mt76_connac_pm_wake routine

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 13:49:02 +02:00
Lorenzo BianconiandFelix Fietkau 0562380659 mt76: connac: do not run mt76_txq_schedule_all directly
In order to not break runtime-pm, do run mt76_txq_schedule_all in
mt7615_set_channel/mt7921_set_channel but rely on mt76_worker_schedule

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 13:49:02 +02:00
Lorenzo BianconiandFelix Fietkau 4334f3e2fc mt76: mt7615: rely on pm refcounting in mt7615_led_set_config
Rely on mt76_connac_pm_ref/mt76_connac_pm_unref utility routines in
mt7615_led_set_config

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 13:49:02 +02:00
Lorenzo BianconiandFelix Fietkau 112998f32d mt76: connac: alaways wake the device before scanning
move scanning check from mt76_connac_power_save_sched routine
to mt7921_pm_power_save_work/mt7615_pm_power_save_work ones

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 13:49:02 +02:00
Lorenzo BianconiandFelix Fietkau 475112a3cd mt76: mt7921: get rid of useless MT76_STATE_PM in mt7921_mac_work
Remove useless MT76_STATE_PM check in mt7921_mac_work since
mt7921_mutex_acquire will wake up the device if necessary

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 13:49:02 +02:00
Lorenzo BianconiandFelix Fietkau e5d28e3cef mt76: connac: remove MT76_STATE_PM in mac_tx_free
Get rid of MT76_STATE_PM chec in mt7615_mac_tx_free and
mt7921_mac_tx_free since we already rely on mt76_connac_pm_unref in the
NAPI callback.
Remove mt76_connac_power_save_sched calls in mt7615_mac_tx_free and
mt7921_mac_tx_free

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 13:49:02 +02:00
Lorenzo BianconiandFelix Fietkau 12115052a0 mt76: connac: check wake refcount in mcu_fw_pmctrl
In order to avoid synchronization races between tx and rx path, rely on
mt76_connac_skip_fw_pmctrl putting the chip in sleep mode for mt7921 and
mt7663 devices

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 13:49:02 +02:00
Lorenzo BianconiandFelix Fietkau 325f7b451c mt76: connac: unschedule ps_work in mt76_connac_pm_wake
In order to avoid synchronization issues between wake and ps works,
cancel ps_work in mt76_connac_pm_wake routine

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 13:49:02 +02:00
Lorenzo BianconiandFelix Fietkau 1bc5e67a60 mt76: mt7663: rely on mt76_connac_pm_ref/mt76_connac_pm_unref in tx/rx napi
Introduce mt7615_poll_rx rx napi callback for mt7663.
Do not access device registers in tx/rx napi if the device is not awake.

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 13:49:02 +02:00
Lorenzo BianconiandFelix Fietkau 4f1339c9fb mt76: mt7921: rely on mt76_connac_pm_ref/mt76_connac_pm_unref in tx/rx napi
Introduce mt7921_poll_rx rx napi callback for mt7921.
Do not access device registers in tx/rx napi if the device is not awake.

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 13:49:02 +02:00
Lorenzo BianconiandFelix Fietkau 51b3d1a9a2 mt76: dma: add the capability to define a custom rx napi poll routine
Add the capability to define a custom rx napi callback for each driver.
This is a preliminary patch to properly support runtime-pm on rx side

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 13:49:02 +02:00
Lorenzo BianconiandFelix Fietkau 36f664edc7 mt76: mt7663: rely on mt76_connac_pm_ref/mt76_connac_pm_unref in tx path
Introduce mt7615_tx_worker routine as mt76 tx worker callback for
mt7663.
Rely on mt76_connac_pm_ref/mt76_connac_pm_unref to check PM state and
increment/decrement wake counter

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 13:49:02 +02:00
Lorenzo BianconiandFelix Fietkau 28c87e09a5 mt76: mt7921: rely on mt76_connac_pm_ref/mt76_connac_pm_unref in tx path
Introduce mt7921_tx_worker routine as mt76 tx worker callback for
mt7921.
Rely on mt76_connac_pm_ref/mt76_connac_pm_unref to check PM state and
increment/decrement wake counter

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 13:49:02 +02:00
Lorenzo BianconiandFelix Fietkau 74d0fdaa7a mt76: connac: introduce wake counter for fw_pmctrl synchronization
Introduce wake counter and related spinlock in order to synchronize
tx/rx path and fw_pmctrl request.

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 13:49:02 +02:00
Lorenzo BianconiandFelix Fietkau 2923e3e2b8 mt76: mt7663: fix a race between mt7615_mcu_drv_pmctrl and mt7615_mcu_fw_pmctrl
Introduce a mutex in order to avoid a race between mt7615_mcu_lp_drv_pmctrl and
mt7615_mcu_fw_pmctrl routines since they are run two independent works

Fixes: 1f549009b5b2 ("mt76: mt7615: do not request {driver,fw}_own if already granted")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 13:49:02 +02:00
Lorenzo BianconiandFelix Fietkau 1c0b6cb4f9 mt76: mt7921: fix a race between mt7921_mcu_drv_pmctrl and mt7921_mcu_fw_pmctrl
Introduce a mutex in order to avoid a race between mt7921_mcu_drv_pmctrl and
mt7921_mcu_fw_pmctrl routines since they are run two independent works

Fixes: 1d8efc741df8 ("mt76: mt7921: introduce Runtime PM support")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 13:49:02 +02:00
Lorenzo BianconiandFelix Fietkau de26c73ce3 mt76: mt7921: remove leftover function declaration
Get rid of leftover mt7921_mcu_add_bss_info routine declaration

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 12:29:38 +02:00
Lorenzo BianconiandFelix Fietkau 0a139d7f59 mt76: connac: move mcu_update_arp_filter in mt76_connac module
Move mt76_connac_mcu_update_arp_filter in mt76_connac module since the
code is shared between mt7615 and mt7921

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 12:29:38 +02:00
Lorenzo BianconiandFelix Fietkau 90e4bfea29 mt76: mt7921: do not use 0 as NULL pointer
Fix the following sparse warning:
drivers/net/wireless/mediatek/mt76/mt7921/mac.c:1425:70:
  warning: Using plain integer as NULL pointer

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-21 12:29:38 +02:00
Lorenzo BianconiandFelix Fietkau 1622bf4f87 mt76: mt7921: add mt7921_dma_cleanup in mt7921_unregister_device
In order to avoid memory leaks, clean the dma engine unloading the
module

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-17 11:27:04 +02:00
Lorenzo BianconiandFelix Fietkau bf536832e3 mt76: mt7921: run mt7921_mcu_fw_log_2_host holding mt76 mutex
Wake the chip before configuring the mcu log level

Fixes: 1d8efc741df8 ("mt76: mt7921: introduce Runtime PM support")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-17 11:19:58 +02:00
Lorenzo BianconiandFelix Fietkau 0a094b11f3 mt76: improve mcu error logging
Dump mcu command code in hex and related prefix to help debugging

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-17 11:19:58 +02:00
Lorenzo BianconiandFelix Fietkau 459940ccbc mt76: mt7921: move hw configuration in mt7921_register_device
Get rid of init work since firmware loading is already performed in
mt7921_init_hardware

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-17 11:19:58 +02:00
Lorenzo BianconiandFelix Fietkau 93b5c28c97 mt76: mt7921: add rcu section in mt7921_mcu_tx_rate_report
Introduce rcu section in mt7921_mcu_tx_rate_report before dereferencing
wcid pointer otherwise loockdep will report the following issue:

[  115.245740] =============================
[  115.245754] WARNING: suspicious RCU usage
[  115.245771] 5.10.20 #0 Not tainted
[  115.245784] -----------------------------
[  115.245816] other info that might help us debug this:
[  115.245830] rcu_scheduler_active = 2, debug_locks = 1
[  115.245845] 3 locks held by kworker/u4:1/20:
[  115.245858]  #0: ffffff80065ab138 ((wq_completion)phy0){+.+.}-{0:0}, at: process_one_work+0x1f8/0x6b8
[  115.245948]  #1: ffffffc01198bdd8 ((work_completion)(&(&dev->mphy.mac_work)->work)){+.+.}-{0:0}, at: process_one_8
[  115.246027]  #2: ffffff8006543ce8 (&dev->mutex#2){+.+.}-{3:3}, at: mt7921_mac_work+0x60/0x2b0 [mt7921e]
[  115.246125]
[  115.246125] stack backtrace:
[  115.246142] CPU: 1 PID: 20 Comm: kworker/u4:1 Not tainted 5.10.20 #0
[  115.246152] Hardware name: MediaTek MT7622 RFB1 board (DT)
[  115.246168] Workqueue: phy0 mt7921_mac_work [mt7921e]
[  115.246188] Call trace:
[  115.246201]  dump_backtrace+0x0/0x1a8
[  115.246213]  show_stack+0x14/0x30
[  115.246228]  dump_stack+0xec/0x134
[  115.246240]  lockdep_rcu_suspicious+0xcc/0xdc
[  115.246255]  mt7921_get_wtbl_info+0x2a4/0x310 [mt7921e]
[  115.246269]  mt7921_mac_work+0x284/0x2b0 [mt7921e]
[  115.246281]  process_one_work+0x2a0/0x6b8
[  115.246293]  worker_thread+0x40/0x440
[  115.246305]  kthread+0x144/0x148
[  115.246317]  ret_from_fork+0x10/0x18

Fixes: 1c099ab44727c ("mt76: mt7921: add MCU support")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-13 10:08:50 +02:00
Lorenzo BianconiandFelix Fietkau 186af01047 mt76: mt7921: introduce MCU_EVENT_LP_INFO event parsing
Report trace event related to MCU_EVENT_LP_INFO that is sent by the mcu
when it is ready to enter in deep sleep state

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-13 10:06:58 +02:00
Lorenzo BianconiandFelix Fietkau 5e764ec9be mt76: mt7921: introduce MT_WFDMA_DUMMY_CR definition
Introduce MT_WFDMA_DUMMY_CR definition and remove magic numbers

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-07 10:55:33 +02:00
Lorenzo BianconiandFelix Fietkau 6ee4770de0 mt76: mt7921: rework mt7921_mcu_debug_msg_event routine
Rework mt7921_mcu_debug_msg_event routing removing unnecessary
assignments and relying on wiphy_info

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-04 10:37:33 +02:00
Lorenzo BianconiandFelix Fietkau 38f656768a mt76: mt7921: always wake the device in mt7921_remove_interface
Make sure the mcu is not in sleep mode before sending mcu messages in
mt7921_remove_interface routine.

Fixes: 1d8efc741df80 ("mt76: mt7921: introduce Runtime PM support")
Co-developed-by: Sean Wang <[email protected]>
Signed-off-by: Sean Wang <[email protected]>
Co-developed-by: Leon Yen <[email protected]>
Signed-off-by: Leon Yen <[email protected]>
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-04 10:37:33 +02:00
Lorenzo BianconiandFelix Fietkau e66a0b9b8d mt76: mt7615: always wake the device in mt7615_remove_interface
Similar to mt7921 driver, make sure the mcu is not in sleep mode before
sending mcu messages in mt7615_remove_interface routine.

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2021-04-04 10:37:33 +02:00
Lorenzo BianconiandFelix Fietkau be1ab3b9ae mt76: mt7921: fix typo in mt7921_pci_resume
Return proper error code from mt7921_mcu_drv_pmctrl in mt7921_pci_resume
routine.

Fixes: 8db9c79f230d6 ("mt76: mt7921: fix suspend/resume sequence")
Signed-off-by: Lorenzo Bianconi <[email protected]>
2021-04-01 21:27:47 +02:00
Lorenzo BianconiandFelix Fietkau 62b13f5352 mt76: mt7921: fix key set/delete issue
Similar to the mt7915 driver, deleting a key with the previous key index
deletes the current key. Rework the code to better keep track of
multiple keys and check for the key index before deleting the current
key

Signed-off-by: Lorenzo Bianconi <[email protected]>
2021-03-27 23:39:09 +01:00