#
c3137942 |
|
12-Nov-2022 |
Sujuan Chen <sujuan.chen@mediatek.com> |
wifi: mt76: add info parameter to rx_skb signature This is a preliminary patch to introduce WED RX support for mt7915. Tested-by: Daniel Golle <daniel@makrotopia.org> Co-developed-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Sujuan Chen <sujuan.chen@mediatek.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
ba45841c |
|
28-Sep-2022 |
Felix Fietkau <nbd@nbd.name> |
wifi: mt76: mt76x02: simplify struct mt76x02_rate_power - remove stbc, because mt76x0 doesn't support it and mt76x2 uses the same values as HT/VHT - reduce vht array to 2 elements, because VHT MCS0-7 are the same as HT Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
b376d963 |
|
28-Sep-2022 |
Felix Fietkau <nbd@nbd.name> |
wifi: mt76: move mt76_rate_power from core to mt76x02 driver code Its layout and code is mt76x02 specific Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
09872957 |
|
08-Feb-2020 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: Introduce mt76_mcu data structure Introduce mt76_mcu data structure to contain common fields between mt76u_mcu and mt76e_mcu. Initialize mcu common fields in mt76_alloc_device(). Rely on mt76_mcu in mt76_mcu_rx_event and in mt76_mcu_get_response in order to reuse them in usb code Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
9e5f6dd7 |
|
15-Oct-2019 |
Felix Fietkau <nbd@nbd.name> |
mt76: move txpower_conf back to driver specific structs Nothing in the core uses it Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
96747a51 |
|
12-Oct-2019 |
Felix Fietkau <nbd@nbd.name> |
mt76: move channel state to struct mt76_phy Add support for an extra wiphy in mt76_set_channel and mt76_get_survey This is preparation for supporting multiple wiphys per device to support the concurrent dual-band feature of MT7615D Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
9fba6d07 |
|
11-Oct-2019 |
Felix Fietkau <nbd@nbd.name> |
mt76: add support for an extra wiphy in the main tx path This is preparation for supporting multiple wiphys per device to support the concurrent dual-band feature of MT7615D Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
355f8d00 |
|
06-Sep-2019 |
Felix Fietkau <nbd@nbd.name> |
mt76: mt76x02: track approximate tx airtime for airtime fairness and survey Estimate by calculating duration for EWMA packet size + estimated A-MPDU length on tx status events 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>
|
#
5c280ae7 |
|
06-Jun-2019 |
Felix Fietkau <nbd@nbd.name> |
mt76: mt76x02: fix tx reordering on rate control probing without a-mpdu To avoid aggregating rate control probing packets with other traffic, and to ensure that the probing rate gets used, probing packets get assigned a different internal queueing priority. This causes packets to be transmitted in a different order, which is compensated by the receiver side reordering. However, if A-MPDU is disabled, this reordering can become visible to upper layers on the receiver side. Disable the priority change if A-MPDU is disabled. Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
8548c6eb |
|
05-Jun-2019 |
Felix Fietkau <nbd@nbd.name> |
mt76: mt76x02: fix tx status reporting issues When the hardware falls back to lower rates for a transmit attempt, only the first status report will show the number of retries correctly. The frames that follow will report the correct final rate, but number of retries set to 0. This can cause the rate control module to vastly underestimate the number of retransmissions per rate. To fix this, we need to keep track of the initial requested tx rate per packet and pass it to the status information. For frames with tx status requested, this is simple: use the rate configured in info->control.rates[0] as reference. For no-skb tx status information, we have to encode the requested tx rate in the packet id (and make it possible to distinguish it from real packet ids). To do that, reduce the packet id field size by one bit, and use that bit to indicate packet id vs rate. This change also improves reporting by filling the status rate array with rates from first rate to final rate, taking the same steps as the hardware fallback table. This matters in corner cases like MCS8 on HT, where the fallback target is MCS0, not MCS7. Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
cfaae9e6 |
|
02-Apr-2019 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: add skb pointer to mt76_tx_info Pass skb pointer to tx_prepare_skb through mt76_tx_info data structure. This is a preliminary patch to properly support dma error path for new chipsets (e.g. 7615) Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
b5903c47 |
|
14-Mar-2019 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: introduce mt76_tx_info data structure Add mt76_tx_info as auxiliary data structure to pass values to tx_prepare_skb pointer. This is a preliminary patch to add support for new chipsets (e.g. mt7615) Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
66105538 |
|
14-Mar-2019 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: mmio: move mt76_insert_hdr_pad in mt76_dma_tx_queue_skb Introduce tx_aligned4_skbs in mt76_driver_ops and move mt76_insert_hdr_pad in mt76_dma_tx_queue_skb. This is a preliminary patch in order to unify tx dma mapping for mt76x02 and new chipsets Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
3bb45b5f |
|
14-Mar-2019 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: move mt76x02_insert_hdr_pad in mt76-core module Move mt76x02_insert_hdr_pad in m76-core and rename it in mt76_insert_hdr_pad in order to be used in mt76_dma_tx_queue_skb. This is a preliminary patch in order to properly support tx dma mapping for new chipsets (e.g. mt7615) Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
300832ad |
|
02-Mar-2019 |
Lorenzo Bianconi <lorenzo@kernel.org> |
mt76: remove mt76_queue dependency from tx_prepare_skb function pointer Remove mt76_queue dependency from tx_prepare_skb function pointer and rely on mt76_tx_qid instead. This is a preliminary patch to introduce mt76_sw_queue support Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
128b75bf |
|
31-Jan-2019 |
Felix Fietkau <nbd@nbd.name> |
mt76: fix software encryption issues Software encrypted packets can be passed not just through the drv_tx callback, but also through the intermediate tx queue. In order to deal with that, move the override to mt76x02_mac_write_txwi and also take care of filling in the per-packet rate information Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
c07a49d4 |
|
04-Feb-2019 |
Lorenzo Bianconi <lorenzo.bianconi@redhat.com> |
mt76: move mt76_mcu_rx_event in mt76-core Move mt76_mcu_rx_event i mt76-core module and remove duplicated code. mt76_mcu_rx_event will be reused adding support for mt7603 driver Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
013b2dff |
|
11-Jan-2019 |
Felix Fietkau <nbd@nbd.name> |
mt76: fix tx status reporting for non-probing frames On MT76x2, the hardware does not report tx status in the FIFO register, if the packet id is 0. Change the allocation of packet IDs to use 0 for no-ack packets, 1 for non-probing packets and 2-255 for packets with tx status requested. Fixes rate control issues Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
88046b2c |
|
25-Oct-2018 |
Felix Fietkau <nbd@nbd.name> |
mt76: add support for reporting tx status with skb MT76x2/MT76x0 has somewhat unreliable tx status reporting, and for that reason the driver currently does not report per-skb tx ack status at all. This breaks things like client idle polling, which relies on the tx ack status of a transmitted nullfunc frame. This patch adds code to report skb-attached tx status if requested by mac80211 or the rate control module. Since tx status is polled from a simple FIFO register, the code needs to account for the possibility of tx status events getting lost. The code keeps a list of skbs for which tx status is required and passes them to mac80211 once tx status has been filled in and the DMA queue is done with it. If a tx status event is not received after one second, the status rates are cleared, and a succesful ACK is indicated to avoid spurious disassoc during assoc or client polling. Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
59b55d06 |
|
25-Oct-2018 |
Felix Fietkau <nbd@nbd.name> |
mt76: mt76x02: only override control->sta on sw-encrypted tx control->sta is set to NULL early when encryption is turned on for the station and info->control.hw_key is not set. This code is missing a check for the 802.11 header protected flag, otherwise it resets the station for other frames, e.g. client probing frames. Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
5567b373 |
|
17-Oct-2018 |
Felix Fietkau <nbd@nbd.name> |
mt76: clean up unused leftover EXPORT_SYMBOLs Make previously exported functions static where possible Acked-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
91be8e8a |
|
07-Oct-2018 |
Lorenzo Bianconi <lorenzo.bianconi@redhat.com> |
mt76: use mt76x02_dev instead of mt76_dev in mt76x02_txrx.c Use mt76x02_dev data structure as reference in mt76x02_txrx.c instead of mt76_dev Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
8d66af49 |
|
07-Oct-2018 |
Lorenzo Bianconi <lorenzo.bianconi@redhat.com> |
mt76: use mt76x02_dev instead of mt76_dev in mt76x02_mac.c Use mt76x02_dev data structure as reference in mt76x02_mac.c instead of mt76_dev Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
b38383e6 |
|
05-Oct-2018 |
Lorenzo Bianconi <lorenzo.bianconi@redhat.com> |
mt76: usb: move mt76x02u_tx_complete_skb in mt76x02_usb_core.c Move mt76x02u_tx_complete_skb and mt76x02u_remove_dma_hdr since they are used just by usb code Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
5ec57485 |
|
05-Oct-2018 |
Lorenzo Bianconi <lorenzo.bianconi@redhat.com> |
mt76: move mt76x02_tx_prepare_skb in mt76x02_txrx.c Move mt76x02_tx_prepare_skb routine in mt76x02-lib module in order to be reused by mt76x0 driver in tx datapath Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
1ea0a1b1 |
|
05-Oct-2018 |
Lorenzo Bianconi <lorenzo.bianconi@redhat.com> |
mt76: move tpc routines in mt76x02-lib module Move mt76x02_tx_get_txpwr_adj and mt76x02_tx_set_txpwr_auto routines in mt76x02-lib module since they are shared between mt76x0 and mt76x2 drivers. Moreover remove get_txpwr_adj function pointer Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
7a07adcd |
|
05-Oct-2018 |
Lorenzo Bianconi <lorenzo.bianconi@redhat.com> |
mt76: rename mt76x02_util.h in mt76x02.h Rename mt76x02_util.h header file in mt76x02.h since now contains all mt76x02 related definitions and not just utility routines declarations Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
#
8e3ed001 |
|
05-Oct-2018 |
Lorenzo Bianconi <lorenzo.bianconi@redhat.com> |
mt76: move txrx shared routines in mt76x02_txrx.c Add mt76x02_txrx.c source file in order to contain tx/rx shared routines for mt76x0 and mt76x2 drivers Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
|