#
2e420b88 |
|
19-Oct-2023 |
Lorenzo Bianconi <lorenzo@kernel.org> |
wifi: mt76: introduce wed pointer in mt76_queue Introduce mtk_wed_device pointer in mt76_queue structure in order to configure WED chip. Get rid of dev parameter in Q_READ and Q_WRITE macros. Introduce wed parameter to the following routine signatures: - mt76_init_queue - mt76_init_tx_queue This is a preliminary patch to introduce WED support for mt7996 since mt7996 runs two separate WED chips. Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
4fc44156 |
|
02-Apr-2023 |
Lorenzo Bianconi <lorenzo@kernel.org> |
wifi: mt76: add mt76_connac_irq_enable utility routine Most of connac based drivers (mt7921, mt7615, mt7663) share the same code to enable interrupts. Move it in mt76_connac module. Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
9dfb28e9 |
|
23-Jun-2022 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: connac: move tx initialization/cleanup in mt76_connac module Move mt76_connac_init_tx_queues and mt76_connac_tx_cleanup routines in mt76_connac module. This is a preliminary patch to add mt7990 chipset support. Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
f68d6762 |
|
06-Dec-2021 |
Felix Fietkau <nbd@nbd.name> |
mt76: mt7915: add Wireless Ethernet Dispatch support This is used to support hardware flow offloading from Ethernet to WLAN Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
3ed27b60 |
|
04-May-2022 |
Jakub Kicinski <kuba@kernel.org> |
mt76: switch to netif_napi_add_tx() Switch to the new API not requiring passing in NAPI_POLL_WEIGHT. Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/20220504163316.549648-3-kuba@kernel.org
|
#
49c9a263 |
|
09-Jun-2021 |
Lorenzo Bianconi <lorenzo@kernel.org> |
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 <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
6ab079e2 |
|
02-Jun-2021 |
Lorenzo Bianconi <lorenzo@kernel.org> |
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 <sean.wang@mediatek.com> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
db928f1a |
|
18-Apr-2021 |
Lorenzo Bianconi <lorenzo@kernel.org> |
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 <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
cb8ed33d |
|
18-Apr-2021 |
Lorenzo Bianconi <lorenzo@kernel.org> |
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 <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
45387363 |
|
15-Apr-2021 |
Felix Fietkau <nbd@nbd.name> |
mt76: mt7615: fix hardware error recovery for mt7663 MT7663 uses different bits for communicating reset commands/status between MCU and host. Also add an extra initial reset command. Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
1cb7ea2a |
|
26-Mar-2021 |
Felix Fietkau <nbd@nbd.name> |
mt76: mt7615: fix chip reset on MT7622 and MT7663e After chip reset, the DMA scheduler needs to be initialized as well. Since the code is PCI/SoC specific, move it to pci_mac.c, so that it can depend on a function in dma.c Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
aa40528a |
|
26-Jul-2020 |
Felix Fietkau <nbd@nbd.name> |
mt76: use threaded NAPI With threaded NAPI, the rx handler function is no longer bound to the CPU that fired the interrupt, which significantly helps to spread the workload over multiple CPUs, especially when multiple devices are using threaded NAPI at the same time. Exclude the tx handler from threaded NAPI by using a separate dummy netdev. The work is small and short-lived enough that it makes more sense to run it in softirq instead of creating a dedicated thread Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
48dbce5c |
|
12-Nov-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: move band capabilities in mt76_phy This is a preliminary patch to move properly support mt7915 dbdc Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
91990519 |
|
11-Nov-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: move tx hw data queues in mt76_phy Move hw data queues in mt76_phy from mt76_dev since mt7915 supports per phy hw queues in dbdc mode Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
e637763b |
|
11-Nov-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: move mcu queues to mt76_dev q_mcu array Move mcu queue to a dedicated array q_mcu in mt76_dev structure. This is a preliminary patch to move data queues in mt76_phy and properly support dbdc Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
b1cb42ad |
|
11-Nov-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: introduce mt76_init_mcu_queue utility routine Introduce mt76_init_mcu_queue utility routine in order to allocate dedicate q_mcu pointers for mcu hw queues. This is a preliminary patch to move data queues in mt76_phy and add dbdc support to mt7915 driver Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
e5655492 |
|
11-Nov-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: dma: rely on mt76_queue in mt76_dma_tx_cleanup signature This is a preliminary patch to move data queues in mt76_phy and properly support dbdc Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
b671da33 |
|
11-Nov-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: move mt76_init_tx_queue in common code Move mt76_init_tx_queue in mac80211.c since it is shared by all drivers. Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
781eef5b |
|
24-Jul-2020 |
Felix Fietkau <nbd@nbd.name> |
mt76: convert from tx tasklet to tx worker thread This improves performance by allowing the scheduler to move the tx scheduling work to idle CPUs. Since tx scheduling work is very latency sensitive and kept short via AQL, sched_set_fifo_low is used to keep worker priority above normal tasks Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
f099c2e5 |
|
23-Aug-2020 |
Felix Fietkau <nbd@nbd.name> |
mt76: remove struct mt76_sw_queue All members except for the struct mt76_queue pointer have been removed Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
513d6acb |
|
23-Aug-2020 |
Felix Fietkau <nbd@nbd.name> |
mt76: remove swq from struct mt76_sw_queue Since txq selection was moved to mac80211, it is no longer used Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
e17d7945 |
|
22-Aug-2020 |
Felix Fietkau <nbd@nbd.name> |
mt76: mt7615: significantly reduce interrupt load On 7615 and newer, DMA completion only triggers unmap, but not free of queued skbs, since pointers to packets are queued internally. Because of that, there is no need to process the main data queue immediately on DMA completion. To improve performance, mask out the DMA data queue completion interrupt and process the queue only when we receive a txfree event. This brings the number of interrupts under load down to a small fraction. Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
6e4f584e |
|
07-Aug-2020 |
Felix Fietkau <nbd@nbd.name> |
mt76: mt7615: do not do any work in napi poll after calling napi_complete_done() Fixes a race condition where multiple tx cleanup tasks could run in parallel Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
0825af2d |
|
30-Jul-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: mt7615: reschedule runtime-pm receiving a tx interrupt Reschedule runtime-pm after receiving a tx interrupt. Update runtime-pm last activity before injecting packets Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
5bb923c7 |
|
17-Jun-2020 |
Felix Fietkau <nbd@nbd.name> |
mt76: mt7615: schedule tx tasklet and sta poll on mac tx free Unlike on earlier chips, DMA completion on MT7615 does not imply actually having sent out any packets. Since AQL will prevent filling the hardware queues and will only allow more packets to be passed to the driver after tx completion, it makes much more sense to schedule the tx tasklet there. This is also needed for scheduling tx in testmode support Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
d3c82998 |
|
01-Jun-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: overwrite qid for non-bufferable mgmt frames Overwrite hw queue id for non-bufferable management frames if the hw support always txq (altxq) in order to be in sync with mac txwi code Fixes: cdad4874057d ("mt76: mt7615: add dma and tx queue initialization for MT7622") Fixes: f40ac0f3d3c0 ("mt76: mt7615: introduce mt7663e support") Suggested-by: Felix Fietkau <nbd@nbd.name> Tested-by: Sean Wang <sean.wang@mediatek.com> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
1fec635b |
|
30-May-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: mt7615: fix hw queue mapping mt7622/mt7663 chipsets rely on a fixed reverse queue map order respect to mac80211 one: - q(0): IEEE80211_AC_BK - q(1): IEEE80211_AC_BE - q(2): IEEE80211_AC_VI - q(3): IEEE80211_AC_VO Fixes: cdad4874057d ("mt76: mt7615: add dma and tx queue initialization for MT7622") Fixes: f40ac0f3d3c0 ("mt76: mt7615: introduce mt7663e support") Co-developed-by: Sean Wang <sean.wang@mediatek.com> Signed-off-by: Sean Wang <sean.wang@mediatek.com> Co-developed-by: Ryder Lee <ryder.lee@mediatek.com> Signed-off-by: Ryder Lee <ryder.lee@mediatek.com> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
7f883143 |
|
01-Jun-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: overwrite qid for non-bufferable mgmt frames Overwrite hw queue id for non-bufferable management frames if the hw support always txq (altxq) in order to be in sync with mac txwi code Fixes: cdad4874057d ("mt76: mt7615: add dma and tx queue initialization for MT7622") Fixes: f40ac0f3d3c0 ("mt76: mt7615: introduce mt7663e support") Suggested-by: Felix Fietkau <nbd@nbd.name> Tested-by: Sean Wang <sean.wang@mediatek.com> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
a07292ee |
|
30-May-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: mt7615: fix hw queue mapping mt7622/mt7663 chipsets rely on a fixed reverse queue map order respect to mac80211 one: - q(0): IEEE80211_AC_BK - q(1): IEEE80211_AC_BE - q(2): IEEE80211_AC_VI - q(3): IEEE80211_AC_VO Fixes: cdad4874057d ("mt76: mt7615: add dma and tx queue initialization for MT7622") Fixes: f40ac0f3d3c0 ("mt76: mt7615: introduce mt7663e support") Co-developed-by: Sean Wang <sean.wang@mediatek.com> Signed-off-by: Sean Wang <sean.wang@mediatek.com> Co-developed-by: Ryder Lee <ryder.lee@mediatek.com> Signed-off-by: Ryder Lee <ryder.lee@mediatek.com> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
6dd4072c |
|
30-Apr-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: mt7615: introduce PM support Introduce suspend/resume to mt7615e driver Co-developed-by: Wan-Feng Jiang <Wan-Feng.Jiang@mediatek.com> Signed-off-by: Wan-Feng Jiang <Wan-Feng.Jiang@mediatek.com> Co-developed-by: Soul Huang <Soul.Huang@mediatek.com> Signed-off-by: Soul Huang <Soul.Huang@mediatek.com> Co-developed-by: Sean Wang <sean.wang@mediatek.com> Signed-off-by: Sean Wang <sean.wang@mediatek.com> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
61cb6075 |
|
20-Apr-2020 |
Felix Fietkau <nbd@nbd.name> |
mt76: mt7615: use larger rx buffers if VHT is supported In VHT mode we can receive larger MPDUs. Increasing the buffer size reduces fragmentation here, which should improve performance. Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
a621372a |
|
22-Apr-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: mt7615: rework mt7615_mac_sta_poll for usb code Since usb code can't access device registers in interrupt context, move rcu_read_lock/rcu_read_unlock in mt7615_poll_tx routine. Moreover loop over a local msta list in mt7615_mac_sta_poll since mt7663u driver will not be able to complete the inner while loop before sta_poll_list list is refilled by mt7615_mac_add_txs/mt7615_mac_fill_rx Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
e90354e0 |
|
16-Apr-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: mt7615: move core shared code in mt7615-common module Create mt7615-common module in order to collect shared code between usb and mmio code. Move the following source files in mt7615-common module: - main.c - init.c - mcu.c - mac.c - debugfs.c - eeprom.c - trace.c Create the following source files for mmio only source code and move them in mt7615e module: - pci_init.c - dma.c - pci_mac.c Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
f40ac0f3 |
|
17-Mar-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: mt7615: introduce mt7663e support Introduce support for mt7663e 802.11ac 2x2:2 chipset to mt7615 driver. Co-developed-by: Sean Wang <sean.wang@mediatek.com> Signed-off-by: Sean Wang <sean.wang@mediatek.com> Co-developed-by: Ryder Lee <ryder.lee@mediatek.com> Signed-off-by: Ryder Lee <ryder.lee@mediatek.com> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
61c4fa72 |
|
30-Jan-2020 |
Felix Fietkau <nbd@nbd.name> |
mt76: mt7615: implement hardware reset support When the firmware detects a problem, it needs the host to stop/reset DMA and resume it again when the hardware state has been reset. Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
8c90c225 |
|
19-Dec-2019 |
Felix Fietkau <nbd@nbd.name> |
mt76: mt7615: decrease rx ring size for MT7622 Since it's 2.4 GHz only, it needs fewer buffers Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
cdad4874 |
|
16-Dec-2019 |
Felix Fietkau <nbd@nbd.name> |
mt76: mt7615: add dma and tx queue initialization for MT7622 MT7622 queue mapping is different from MT7615 and requires an extra dma scheduler init and a few register tweaks Co-developed-by: Shayne Chen <shayne.chen@mediatek.com> Co-developed-by: Ryder Lee <ryder.lee@mediatek.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
b2c2f029 |
|
17-Sep-2019 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: mt7615: track tx/rx airtime for airtime fairness Poll per-station hardware counters available in WTBL after tx/rx status events in order to report tx/rx airtime to mac80211 layer Co-developed-by: Felix Fietkau <nbd@nbd.name> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
c325c9c7 |
|
09-Aug-2019 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: move mt76_tx_tasklet in mt76 module Move mt76{15,03}_tx_tasklet in mt76_alloc_device in order to be used as default tx_tasklet initialization. Remove duplicated code in mt7603/mt7615 drivers Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
d67a6646 |
|
28-Jun-2019 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: mt7615: add hw dfs pattern detector support Add hw radar detection support to mt7615 driver in order to unlock dfs channels on 5GHz band Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
4875e346 |
|
01-May-2019 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: move netif_napi_del in mt76_dma_cleanup Move netif_napi_del in mt76_dma_cleanup routine since it is done by all drivers Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
8357f0dc |
|
01-May-2019 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: mt7615: use napi polling for tx cleanup This allows tx scheduling and tx cleanup to run concurrently Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
04b8e659 |
|
01-Apr-2019 |
Ryder Lee <ryder.lee@mediatek.com> |
mt76: add mac80211 driver for MT7615 PCIe-based chipsets This driver is for a newer generation of MediaTek MT7615 4x4 802.11ac PCIe-based chipsets, which support wave2 MU-MIMO up to 4 users/group and also support up to 160MHz bandwidth. The driver fully supports AP, station and monitor mode. Signed-off-by: Ryder Lee <ryder.lee@mediatek.com> Signed-off-by: Roy Luo <royluo@google.com> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|