#
debd133a |
|
28-Aug-2023 |
Johannes Berg <johannes.berg@intel.com> |
wifi: mt76: use atomic iface iteration for pre-TBTT work In addition to the previous series I posted, over time I'd also like to get rid of the iflist_mtx in mac80211. That isn't easy now since lots of places use iteration and would have to be audited, but even a cursory look suggests that mt76 might be more problematic than most since holding the wiphy lock for the latency-sensitive pre-TBTT work could be an issue. Convert the pre-TBTT work to use atomic iteration and then sending the device commands outside of it. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
8916e4e5 |
|
23-Jun-2022 |
Felix Fietkau <nbd@nbd.name> |
mt76: mt76x02: improve reliability of the beacon hang check Increment the counter only when writing beacons to the hardware in order to avoid triggering restarts if beacons are disabled. Additionally, avoid resetting the MAC if stopping it failed Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
6e8912a5 |
|
06-Jun-2022 |
Shaul Triebitz <shaul.triebitz@intel.com> |
wifi: mac80211: return a beacon for a specific link Pass the link id through to the get_beacon and return the beacon for a specific link id. Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
#
b74f98b8 |
|
29-Nov-2019 |
Stanislaw Gruszka <sgruszka@redhat.com> |
mt76: mt76x02: minor mt76x02_mac_set_beacon optimization We do not call mt76x02_mac_set_beacon() with NULL skb any longer and we do not need to return error value. Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
5c48e60e |
|
18-Dec-2019 |
Markus Theil <markus.theil@tu-ilmenau.de> |
mt76: mt76x02: remove a copy call for usb speedup This patch removes a mt76_wr_copy call from the beacon path to hw. The skb which is used in this place gets therefore build with txwi inside its data. For mt76 usb drivers, this saves one synchronuous copy call over usb, which lets the beacon work complete faster. In mmio case, there is not enough headroom to put the txwi into the skb, it is therefore using an additional mt76_wr_copy, which is fast over mmio. Thanks Stanislaw for pointing this out. Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
f27469a9 |
|
18-Dec-2019 |
Markus Theil <markus.theil@tu-ilmenau.de> |
mt76: mt76x02: split beaconing Sending beacons to the hardware always happens in batches. In order to speed up beacon processing on usb devices, this patch splits out common code an calls it only once. Beacons are sequentially written into the beacon memory area, by tracking its usage with the dev->beacon_data_count. For MBSS support and buffered traffic dev->beacon_data_count is used to create the bypass mask. The code is also adapted for the mmio part of the driver, but should not have any performance implication there. MBSS tests were performed with AVM AC860 USB NIC with temporary support for 5 BSS'. Different combinations of active vifs were created and brought up. Afterwards connection and data transfer was tested for the announced BSS'. Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
0794d03a |
|
18-Dec-2019 |
Markus Theil <markus.theil@tu-ilmenau.de> |
mt76: mt76x02: omit beacon slot clearing mt76 hw does not send beacons from beacon slots, if the corresponding bitmask is set accordingly. Therefore we can omit clearing the beacon memory. Clearing uses many usb calls, if usb drivers are used. These calls unnecessarily slow down the beacon tasklet. Thanks to Stanislaw Gruzska for pointing this out. Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
868ad214 |
|
22-Aug-2019 |
Markus Elfring <elfring@users.sourceforge.net> |
net/wireless: Delete unnecessary checks before the macro call “dev_kfree_skb” The dev_kfree_skb() function performs also input parameter validation. Thus the test around the shown calls is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
d5160d86 |
|
01-Aug-2019 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: mt76x02: do not copy beacon skb in mt76x02_mac_set_beacon_enable Do not copy beacon skb in mt76x02_mac_set_beacon_enable for usb devices since it will be done in mt76x02_update_beacon_iter. Moreover squash mt76x02_mac_set_beacon_enable and __mt76x02_mac_set_beacon_enable since the latter is run just by mt76x02_mac_set_beacon_enable Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
1920a0cc |
|
01-Aug-2019 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: mt76x02: introduce mt76x02_pre_tbtt_enable and mt76x02_beacon_enable macros Improve code readability introducing mt76x02_pre_tbtt_enable and mt76x02_beacon_enable utility macros Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
0e3d6777 |
|
24-Jul-2019 |
Ryder Lee <ryder.lee@mediatek.com> |
mt76: switch to SPDX tag instead of verbose boilerplate text No functional change intended. Add SPDX identifiers to all remaining files in /mt76. Signed-off-by: Ryder Lee <ryder.lee@mediatek.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
ff97c52a |
|
24-Jul-2019 |
Ryder Lee <ryder.lee@mediatek.com> |
mt76: mt76x02: fix some checkpatch warnings This fixes the following checkpatch warnings: ERROR: code indent should use tabs where possible CHECK: Alignment should match open parenthesis CHECK: No space is necessary after a cast CHECK: Please don't use multiple blank lines CHECK: Avoid precedence issues in macro WARNING: Statements should start on a tabstop WARNING: Unnecessary space before function pointer arguments Signed-off-by: Ryder Lee <ryder.lee@mediatek.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
c15b0f7c |
|
01-May-2019 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: mt76x02: remove useless return in mt76x02_resync_beacon_timer Remove useless return statment in mt76x02_resync_beacon_timer routine Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
c8a04d98 |
|
29-Apr-2019 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: move beacon_mask in mt76_dev Move beacon_mask in mt76_dev data structure since it is used by all drivers Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
3041c445 |
|
29-Apr-2019 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: move beacon_int in mt76_dev Move beacon_int in mt76_dev data structure since it is used by all drivers Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
f2276c29 |
|
19-Mar-2019 |
Stanislaw Gruszka <sgruszka@redhat.com> |
mt76x02: make beacon slots bigger for USB Since we sent PS buffered frames via beacon memory we need to make beacon slots bigger. That imply we will also need to decrease number of slots as beacon SRAM memory is limited to 8kB. Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
7e07c27d |
|
19-Mar-2019 |
Stanislaw Gruszka <sgruszka@redhat.com> |
mt76x02u: implement pre TBTT work for USB Program beacons data and PS buffered frames on TBTT work for USB. We do not have MT_TXQ_PSD queue available via USB endpoints. The way we can send PS broadcast frames in timely manner before PS stations go sleep again is program them in beacon data area. Hardware do not modify those frames since TXWI is properly configured. mt76x02_mac_set_beacon() already handle this and free no longer used frames. Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
31cdd442 |
|
19-Mar-2019 |
Stanislaw Gruszka <sgruszka@redhat.com> |
mt76x02: generalize some mmio beaconing functions Move some TBTT mmio functions to mt76x02_beacon.c and create new ones in order to be reused by USB pre-TBTT. Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
c004b881 |
|
19-Mar-2019 |
Stanislaw Gruszka <sgruszka@redhat.com> |
mt76x02: introduce beacon_ops Enabling/disableing TBTT and beacon will be diffrent for USB. Introduce beacon_ops to encapsulate that and implement it for MMIO. USB implementation is noop for now. Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
8d71aef9 |
|
19-Mar-2019 |
Stanislaw Gruszka <sgruszka@redhat.com> |
mt76x02: introduce mt76x02_beacon.c Move most of beaconing code into separate file and separate beacon initialization for USB and MMIO as pre TBTT implementation for USB will be different. Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|