#
2bffdded |
| 02-Sep-2020 |
Felix Fietkau <nbd@nbd.name> |
mt76: remove retry_q from struct mt76_txq and related code
Since the switch to using AQL by default, mtxq->retry_q is never filled anymore Remove it to get rid of a few more unnecessary cycles in th
mt76: remove retry_q from struct mt76_txq and related code
Since the switch to using AQL by default, mtxq->retry_q is never filled anymore Remove it to get rid of a few more unnecessary cycles in the tx path
Signed-off-by: Felix Fietkau <nbd@nbd.name>
show more ...
|
#
dd57a95c |
| 01-Sep-2020 |
Felix Fietkau <nbd@nbd.name> |
mt76: move txwi handling code to dma.c, since it is mmio specific
This way we can make some functions static
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
75d4bf1f |
| 27-Aug-2020 |
Felix Fietkau <nbd@nbd.name> |
mt76: dma: cache dma map address/len in struct mt76_queue_entry
Accessing them from uncached memory can be expensive, so it's cheaper to cache them
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
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>
show more ...
|
#
9e47a683 |
| 24-Aug-2020 |
Felix Fietkau <nbd@nbd.name> |
mt76: mt76x02: tune tx ring size
Increase data queue size to improve performance. Reduce PS/mgmt queue size
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>
|
#
e1378e52 |
| 23-Aug-2020 |
Felix Fietkau <nbd@nbd.name> |
mt76: rely on AQL for burst size limits on tx queueing
Now that AQL works well on all mt76 drivers, completely replace the arbitrary burst sizing and number of bursts logic for tx scheduling. For th
mt76: rely on AQL for burst size limits on tx queueing
Now that AQL works well on all mt76 drivers, completely replace the arbitrary burst sizing and number of bursts logic for tx scheduling. For the short period of time in which AQL does not work well yet, limit each stations to 16 in-flight packets that have no estimated tx time. This should avoid filling the queue if a station connects and queues up a large number of packets before rate control information is available, especially with hardware rate control
Signed-off-by: Felix Fietkau <nbd@nbd.name>
show more ...
|
#
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>
|
#
d80e52c7 |
| 23-Aug-2020 |
Felix Fietkau <nbd@nbd.name> |
mt76: remove qid argument to drv->tx_complete_skb
It is not needed
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
fe5b5ab5 |
| 23-Aug-2020 |
Felix Fietkau <nbd@nbd.name> |
mt76: unify queue tx cleanup code
Cleanup and preparation for changing tx scheduling behavior
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
b4964908 |
| 17-Aug-2020 |
Sean Wang <sean.wang@mediatek.com> |
mt76: mt7663s: fix unable to handle kernel paging request
Use buffer allocated with kmalloc instead of with stack to fix kernel crash due to Unable to handle kernel paging request at virtual address
mt76: mt7663s: fix unable to handle kernel paging request
Use buffer allocated with kmalloc instead of with stack to fix kernel crash due to Unable to handle kernel paging request at virtual address ffffffc0095cbce8.
[ 156.977349] Unable to handle kernel paging request at virtual address ffffffc0095cbce8 [ 156.985270] Mem abort info: [ 156.988059] ESR = 0x96000045 [ 156.991104] Exception class = DABT (current EL), IL = 32 bits [ 156.997013] SET = 0, FnV = 0 [ 157.000057] EA = 0, S1PTW = 0 [ 157.003190] Data abort info: [ 157.006061] ISV = 0, ISS = 0x00000045 [ 157.009887] CM = 0, WnR = 1 [ 157.012850] swapper pgtable: 4k pages, 39-bit VAs, pgdp = 0000000042adcba2 [ 157.019715] [ffffffc0095cbce8] pgd=0000000000000000, pud=0000000000000000 [ 157.026499] Internal error: Oops: 96000045 [#1] PREEMPT SMP [ 157.032065] Modules linked in: mt7663s mt7663_usb_sdio_common mt7615_common
...
[ 157.073007] Process CompositorTileW (pid: 1625, stack limit = 0x000000003f2389fc) [ 157.080484] CPU: 0 PID: 1625 Comm: CompositorTileW Not tainted 4.19.137 #36 [ 157.092219] pstate: 80000085 (Nzcv daIf -PAN -UAO) [ 157.097012] pc : __memcpy+0xc0/0x180 [ 157.100585] lr : swiotlb_tbl_unmap_single+0x84/0x14c [ 157.105540] sp : ffffff8008003cb0 [ 157.108845] x29: ffffff8008003cb0 x28: ffffff9c1a211f60 [ 157.114149] x27: ffffff9c19ecc018 x26: 0000000000001000 [ 157.119452] x25: ffffff9c1a378000 x24: 0000000000000001 [ 157.124755] x23: ffffff9c1a378000 x22: 00000000000001ff [ 157.130058] x21: 0000000000000000 x20: 00000000fbefe800 [ 157.135360] x19: 0000000000000070 x18: 0000000000000000 [ 157.140663] x17: 0000000000000000 x16: 0000000000000000 [ 157.145965] x15: 0000000000000000 x14: 0000000000000000 [ 157.151267] x13: 0000000000000000 x12: 000000000000000d [ 157.156569] x11: 000000000000000c x10: 0000000a7befe800 [ 157.161873] x9 : fffffff680000000 x8 : 0000000000000000 [ 157.167175] x7 : 0000000100000003 x6 : ffffffc0095cbce8 [ 157.172479] x5 : 0000000000000000 x4 : 0000000000000000 [ 157.177781] x3 : 0000000000000002 x2 : fffffffffffffff0 [ 157.183085] x1 : ffffffca7befe810 x0 : ffffffc0095cbce8 [ 157.188389] Call trace: [ 157.190832] __memcpy+0xc0/0x180 [ 157.194053] swiotlb_unmap_sg_attrs+0xa8/0xb0 [ 157.198406] __swiotlb_unmap_sg_attrs+0x8c/0xa4 [ 157.202931] msdc_unprepare_data+0x6c/0x84 [ 157.207019] msdc_request_done+0x58/0x98 [ 157.210934] msdc_data_xfer_done+0x1a8/0x1d0 [ 157.215195] msdc_irq+0x12c/0x17c [ 157.218505] __handle_irq_event_percpu+0xd8/0x298 [ 157.223202] handle_irq_event+0x60/0xdc [ 157.227031] handle_fasteoi_irq+0xa4/0x1d4 [ 157.231120] __handle_domain_irq+0x84/0xc4 [ 157.235210] gic_handle_irq+0x124/0x1a4 [ 157.239038] el0_irq_naked+0x4c/0x54 [ 157.242608] Code: 14000028 f1020042 5400024a a8c12027 (a88120c7) [ 157.248693] ---[ end trace 28b8090135b0a2e1 ]--- [ 157.265589] Kernel panic - not syncing: Fatal exception in interrupt [ 157.271944] SMP: stopping secondary CPUs [ 157.275865] Kernel Offset: 0x1c10e00000 from 0xffffff8008000000 [ 157.281779] CPU features: 0x0,2188200c [ 157.285519] Memory Limit: none
Fixes: a66cbdd6573d ("mt76: mt7615: introduce mt7663s support") Co-developed-by: YN Chen <YN.Chen@mediatek.com> Signed-off-by: YN Chen <YN.Chen@mediatek.com> Signed-off-by: Sean Wang <sean.wang@mediatek.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
show more ...
|
#
b443e55f |
| 11-Aug-2020 |
Ryder Lee <ryder.lee@mediatek.com> |
mt76: mt7915: add Tx A-MSDU offloading support
This disables the software A-MSDU aggregation in mac80211 and enables hardware offloading
Suggested-by: Yiwei Chung <yiwei.chung@mediatek.com> Suggest
mt76: mt7915: add Tx A-MSDU offloading support
This disables the software A-MSDU aggregation in mac80211 and enables hardware offloading
Suggested-by: Yiwei Chung <yiwei.chung@mediatek.com> Suggested-by: YF Luo <yf.luo@mediatek.com> Signed-off-by: Ryder Lee <ryder.lee@mediatek.com> Signed-off-by: Shayne Chen <shayne.chen@mediatek.com> Co-developed-by: Felix Fietkau <nbd@nbd.name> Signed-off-by: Felix Fietkau <nbd@nbd.name>
show more ...
|
#
c50d105a |
| 28-Jul-2020 |
Felix Fietkau <nbd@nbd.name> |
mt76: move mt76_check_agg_ssn to driver tx_prepare calls
mt7615 and newer drivers do not need this, since they use sequence number offload Moving this code also reduces the number of callsites to ma
mt76: move mt76_check_agg_ssn to driver tx_prepare calls
mt7615 and newer drivers do not need this, since they use sequence number offload Moving this code also reduces the number of callsites to make it easier to review
Signed-off-by: Felix Fietkau <nbd@nbd.name>
show more ...
|
#
27d5c528 |
| 25-Jul-2020 |
Felix Fietkau <nbd@nbd.name> |
mt76: fix double DMA unmap of the first buffer on 7615/7915
A small part of the first skb buffer is passed to the firmware for parsing via DMA, while the full buffer is passed as part of the TXP.
A
mt76: fix double DMA unmap of the first buffer on 7615/7915
A small part of the first skb buffer is passed to the firmware for parsing via DMA, while the full buffer is passed as part of the TXP.
Avoid calling DMA unmap on the first part (with a different length than map)
Signed-off-by: Felix Fietkau <nbd@nbd.name>
show more ...
|
#
35296ed2 |
| 31-Jul-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: mt76s: get rid of unused variable
Remove unused state variable in mt76_sdio structure
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
4d59f8c9 |
| 30-Jul-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: mt76s: move tx/rx processing in 2 separate works
In order to maximize parallelism, split status work in tx status work and rx net work
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Sig
mt76: mt76s: move tx/rx processing in 2 separate works
In order to maximize parallelism, split status work in tx status work and rx net work
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
show more ...
|
#
d74fda4c |
| 30-Jul-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: mt76s: move status processing in txrx wq
As it has been done for tx and rx processing, move tx/rx status processing into mt76s_txrx_wq workqueue
Signed-off-by: Lorenzo Bianconi <lorenzo@kerne
mt76: mt76s: move status processing in txrx wq
As it has been done for tx and rx processing, move tx/rx status processing into mt76s_txrx_wq workqueue
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
show more ...
|
#
3e5f374d |
| 30-Jul-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: mt7663s: move rx processing in txrx wq
Move rx processing to mt76s_txrx_wq in order to minimize the interval when the sdio bus is locked during rx
Signed-off-by: Lorenzo Bianconi <lorenzo@ker
mt76: mt7663s: move rx processing in txrx wq
Move rx processing to mt76s_txrx_wq in order to minimize the interval when the sdio bus is locked during rx
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
show more ...
|
#
974327a4 |
| 30-Jul-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: mt76s: move tx processing in a dedicated wq
Introduce mt76s_txrx_wq workqueue and move tx processing from kthread to a dedicated work. This is preliminary patch to improve mt7663s throughput
mt76: mt76s: move tx processing in a dedicated wq
Introduce mt76s_txrx_wq workqueue and move tx processing from kthread to a dedicated work. This is preliminary patch to improve mt7663s throughput
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
show more ...
|
Revision tags: v5.7.10, v5.4.53, v5.4.52, v5.7.9 |
|
#
d39b52e3 |
| 15-Jul-2020 |
Sean Wang <sean.wang@mediatek.com> |
mt76: introduce mt76_sdio module
Introduce mt76_sdio module as common layer to add mt7663s support
Co-developed-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Lorenzo Bianconi <lorenzo@ke
mt76: introduce mt76_sdio module
Introduce mt76_sdio module as common layer to add mt7663s support
Co-developed-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Sean Wang <sean.wang@mediatek.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
show more ...
|
#
75b10f0c |
| 15-Jul-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: mt76u: add mt76_skb_adjust_pad utility routine
Introduce mt76_skb_adjust_pad to reuse the code adding sdio support to mt7615 driver and remove code duplication. Move 4B header configuration fo
mt76: mt76u: add mt76_skb_adjust_pad utility routine
Introduce mt76_skb_adjust_pad to reuse the code adding sdio support to mt7615 driver and remove code duplication. Move 4B header configuration for usb devices out of mt76_skb_adjust_pad
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
show more ...
|
Revision tags: v5.7.8, v5.4.51 |
|
#
04414240 |
| 03-Jul-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: mt7615: wake device in mt7615_update_channel before access regmap
Introduce mt7615_update_survey utility routine in order to compute survey stats without waking up the device since it runs hol
mt76: mt7615: wake device in mt7615_update_channel before access regmap
Introduce mt7615_update_survey utility routine in order to compute survey stats without waking up the device since it runs holding mt76 lock. Run mt7615_pm_wake directly in mt7615_update_channel since it can run with mt76.mutex held if called by mac80211
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
show more ...
|
#
08523a2a |
| 03-Jul-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: mt7615: add mt7615_pm_wake utility routine
Introduce mt7615_pm_wake utility routine to wake the device from runtime low-power state (lower-power state is currently supported by offload firmwar
mt76: mt7615: add mt7615_pm_wake utility routine
Introduce mt7615_pm_wake utility routine to wake the device from runtime low-power state (lower-power state is currently supported by offload firmware for pcie devices).
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
show more ...
|
#
a86f1d01 |
| 03-Jul-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: move mt76 workqueue in common code
Move mt76 workqueue from usb to common code in order to be reused adding low-power support for mt7663 chipset
Signed-off-by: Lorenzo Bianconi <lorenzo@kerne
mt76: move mt76 workqueue in common code
Move mt76 workqueue from usb to common code in order to be reused adding low-power support for mt7663 chipset
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
show more ...
|
Revision tags: v5.4.50, v5.7.7, v5.4.49, v5.7.6, v5.7.5, v5.4.48 |
|
#
f0efa862 |
| 18-Jun-2020 |
Felix Fietkau <nbd@nbd.name> |
mt76: add API for testmode support
This can be used for calibration in the manufacturing process. It supports sending a configurable number of packets with a specific rate and configurable tx power
mt76: add API for testmode support
This can be used for calibration in the manufacturing process. It supports sending a configurable number of packets with a specific rate and configurable tx power levels / antenna settings. It also supports receiving packets and showing some statistics, including packet counters and detailed RSSI information. It will only be compiled in if CONFIG_NL80211_TESTMODE is enabled
Signed-off-by: Felix Fietkau <nbd@nbd.name>
show more ...
|