linux-2.6-microblaze.git
4 years agomt76: mt7615: split up firmware loading functions
Felix Fietkau [Tue, 17 Dec 2019 03:57:50 +0000 (04:57 +0100)]
mt76: mt7615: split up firmware loading functions

Preparation for adding MT7622 support

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: move mmio related code from pci.c to mmio.c
Felix Fietkau [Mon, 16 Dec 2019 17:39:44 +0000 (18:39 +0100)]
mt76: mt7615: move mmio related code from pci.c to mmio.c

Will be shared with MT7622 SoC support

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: add __aligned(4) to txp structs
Felix Fietkau [Wed, 18 Dec 2019 13:24:47 +0000 (14:24 +0100)]
mt76: mt7615: add __aligned(4) to txp structs

The beginning of the struct is guaranteed to be 4-byte aligned, and this
attribute allows the compiler to generate more efficient code

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agodt-bindings: net: wireless: mt76: document bindings for MT7622
Felix Fietkau [Thu, 30 Jan 2020 12:22:25 +0000 (13:22 +0100)]
dt-bindings: net: wireless: mt76: document bindings for MT7622

MT7622 is a SoC that includes a 2.4 GHz 4x4 802.11n WMAC. Its
feature set is comparable to a MT7615 chip, but limited to 2.4 GHz.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: enable Airtime Queue Limit support
Felix Fietkau [Mon, 20 Jan 2020 11:16:26 +0000 (12:16 +0100)]
mt76: enable Airtime Queue Limit support

It is supported by all drivers

Acked-by: Toke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7603: increase dma mcu rx ring size
Felix Fietkau [Mon, 20 Jan 2020 11:14:56 +0000 (12:14 +0100)]
mt76: mt7603: increase dma mcu rx ring size

The ring is used for looping back tx powersave filtered frames, so it could
use some more room, in case more than one aggregate was queued

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: dma: do not write cpu_idx on rx queue reset until after refill
Felix Fietkau [Mon, 20 Jan 2020 11:11:07 +0000 (12:11 +0100)]
mt76: dma: do not write cpu_idx on rx queue reset until after refill

The hardware should only start processing the ring after at least one
buffer has been added

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: fix handling full tx queues in mt76_dma_tx_queue_skb_raw
Felix Fietkau [Mon, 20 Jan 2020 11:08:30 +0000 (12:08 +0100)]
mt76: fix handling full tx queues in mt76_dma_tx_queue_skb_raw

Fixes a theoretical issue where it could potentially overwrite an existing
descriptor entry (and leaking its skb)

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: set dma-done flag for flushed descriptors
Felix Fietkau [Mon, 20 Jan 2020 11:07:09 +0000 (12:07 +0100)]
mt76: set dma-done flag for flushed descriptors

Avoids a theoretical corner case where the hardware could try to process
a stale descriptor after a watchdog reset

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt76u: introduce MT_DRV_RX_DMA_HDR flag
Lorenzo Bianconi [Wed, 15 Jan 2020 10:58:58 +0000 (11:58 +0100)]
mt76: mt76u: introduce MT_DRV_RX_DMA_HDR flag

Define MT_DRV_RX_DMA_HDR flag in drv_flag in order to not skip rx frame
dma header since new devices (e.g. mt7663u) reports rx frame info in the
usb dma header

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>
4 years agomt76: mt76u: add endpoint to mt76u_bulk_msg signature
Lorenzo Bianconi [Wed, 15 Jan 2020 10:58:57 +0000 (11:58 +0100)]
mt76: mt76u: add endpoint to mt76u_bulk_msg signature

This is a preliminary patch to support mt7663u usb dongles

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>
4 years agomt76: mt76u: introduce mt76u_skb_dma_info routine
Lorenzo Bianconi [Wed, 15 Jan 2020 10:58:56 +0000 (11:58 +0100)]
mt76: mt76u: introduce mt76u_skb_dma_info routine

Introduce mt76u_skb_dma_info utility routine in mt76-usb module in order
to be reused adding mt7663u support

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>
4 years agomt76: mt76u: take into account different queue mapping for 7663
Lorenzo Bianconi [Wed, 15 Jan 2020 10:58:55 +0000 (11:58 +0100)]
mt76: mt76u: take into account different queue mapping for 7663

7663u devices rely on a different endpoint mapping. Take it into account
in mt76u_alloc_tx routine

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>
4 years agomt76: mt76u: add {read/write}_extended utility routines
Lorenzo Bianconi [Wed, 15 Jan 2020 10:58:54 +0000 (11:58 +0100)]
mt76: mt76u: add {read/write}_extended utility routines

Introduce extended utility routines to read/write data o usb bus. New
devices (e.g. mt7663u) will rely on both upper and lower part of the
register address. Add ext parameter to mt76u_init signature in order to
reuse the code adding mt7663u support.

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>
4 years agomt76: mt76u: introduce mt76u_alloc_mcu_queue utility routine
Lorenzo Bianconi [Wed, 15 Jan 2020 10:58:53 +0000 (11:58 +0100)]
mt76: mt76u: introduce mt76u_alloc_mcu_queue utility routine

Add mt76u_alloc_mcu_queue  utility routine to allocate mcu hw rx queue.
This is a preliminary patch to support new devices (e.g. mt7663u) that
rely on a hw queue for mcu messages

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>
4 years agomt76: mt76u: resume all rx queue in mt76u_resume_rx
Lorenzo Bianconi [Wed, 15 Jan 2020 10:58:52 +0000 (11:58 +0100)]
mt76: mt76u: resume all rx queue in mt76u_resume_rx

Resume all possible rx queues after suspend. This is a preliminary patch
to support mt7663u devices

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>
4 years agomt76: mt76u: add queue parameter to mt76u_rx_urb_alloc
Lorenzo Bianconi [Wed, 15 Jan 2020 10:58:51 +0000 (11:58 +0100)]
mt76: mt76u: add queue parameter to mt76u_rx_urb_alloc

Add mt76_queue parameter to mt76u_rx_urb_alloc signature since this
routine will be used to allocate urbs for mcu hw queue used by new
chipset generation (e.g. mt7663u). Check sg_max_size in in
mt76u_urb_alloc in order to use linear urb for mcu queue

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>
4 years agomt76: mt76u: add mt76u_alloc_rx_queue utility routine
Lorenzo Bianconi [Wed, 15 Jan 2020 10:58:50 +0000 (11:58 +0100)]
mt76: mt76u: add mt76u_alloc_rx_queue utility routine

Introduce mt76u_alloc_rx_queue routine to allocate rx hw queue.
This is a preliminary patch to support new devices (e.g. mt7663u) that
rely on a hw queue for mcu messages

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>
4 years agomt76: mt76u: stop/free all possible rx queues
Lorenzo Bianconi [Wed, 15 Jan 2020 10:58:49 +0000 (11:58 +0100)]
mt76: mt76u: stop/free all possible rx queues

Stop/free all configured rx queues (data/mcu) in
mt76u_stop_rx/mt76u_free_rx. This is a preliminary patch to support new
devices (e.g. mt7663u) that rely on a hw queue for mcu messages

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>
4 years agomt76: mt76u: introduce mt76u_free_rx_queue utility routine
Lorenzo Bianconi [Wed, 15 Jan 2020 10:58:48 +0000 (11:58 +0100)]
mt76: mt76u: introduce mt76u_free_rx_queue utility routine

Introduce mt76u_free_rx_queue utility routine to free rx hw queue.
This is a preliminary patch to support new devices (e.g. mt7663u) that
rely on a hw queue for mcu messages

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>
4 years agomt76: mt76u: move mcu buffer allocation in mt76x02u drivers
Lorenzo Bianconi [Wed, 15 Jan 2020 10:58:47 +0000 (11:58 +0100)]
mt76: mt76u: move mcu buffer allocation in mt76x02u drivers

Move mcu buffer allocation in mt76x2u/mt76x0u drivers since newer
chipsets (e.g. mt7663u) does not rely on synchronous mcu communication

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>
4 years agomt76: mt76u: add queue id parameter to mt76u_submit_rx_buffers
Lorenzo Bianconi [Wed, 15 Jan 2020 10:58:46 +0000 (11:58 +0100)]
mt76: mt76u: add queue id parameter to mt76u_submit_rx_buffers

Add queue_id parameter to mt76u_submit_rx_buffers in order to reuse it
adding mt7663u support

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>
4 years agomt76: mt76u: use mt76_queue as mt76u_complete_rx context
Lorenzo Bianconi [Wed, 15 Jan 2020 10:58:45 +0000 (11:58 +0100)]
mt76: mt76u: use mt76_queue as mt76u_complete_rx context

In order to reuse mt76u_complete_rx for both data and mcu rx queue, rely
on mt76_queue as urb context in mt76u_complete_rx. Moreover set usb rx
endoint according to rx queue in mt76u_submit_rx_buf. This is a
preliminary patch to add mt7663u support

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>
4 years agomt76: mt76u: add mt76_queue to mt76u_refill_rx signature
Lorenzo Bianconi [Wed, 15 Jan 2020 10:58:44 +0000 (11:58 +0100)]
mt76: mt76u: add mt76_queue to mt76u_refill_rx signature

Introduce mt76_queue parameter to mt76u_refill_rx signature in order to
reuse it for mcu hw rx queue

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>
4 years agomt76: mt76u: add mt76_queue to mt76u_get_next_rx_entry signature
Lorenzo Bianconi [Wed, 15 Jan 2020 10:58:43 +0000 (11:58 +0100)]
mt76: mt76u: add mt76_queue to mt76u_get_next_rx_entry signature

Rely on mt76_queue pointer in mt76u_get_next_rx_entry in order to add
support for new devices (e.g 7663u) that reports fw events through hw rx
mcu queue

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>
4 years agomt76: mt76u: add mt76u_process_rx_queue utility routine
Lorenzo Bianconi [Wed, 15 Jan 2020 10:58:42 +0000 (11:58 +0100)]
mt76: mt76u: add mt76u_process_rx_queue utility routine

Introduce mt76u_process_rx_queue routine to process rx hw queue.
This is a preliminary patch to support new devices (e.g. mt7663u) that
rely on a hw queue for mcu messages

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>
4 years agomt76: mt76u: check tx_status_data pointer in mt76u_tx_tasklet
Lorenzo Bianconi [Wed, 15 Jan 2020 10:58:41 +0000 (11:58 +0100)]
mt76: mt76u: check tx_status_data pointer in mt76u_tx_tasklet

New devices (e.g. mt7663u) do not rely on stats workqueue to load tx
statistics but will be reported by the firmware. Check tx_status_data
pointer in mt76u_tx_tasklet in order to reuse tx tasklet for new devices

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>
4 years agomt76: mt76x02u: avoid overwrite max_tx_fragments
Lorenzo Bianconi [Mon, 23 Dec 2019 13:03:32 +0000 (14:03 +0100)]
mt76: mt76x02u: avoid overwrite max_tx_fragments

Starting from 'commit ee8040139ab1 ("mt76: do not overwrite
max_tx_fragments if it has been set")' we can avoid overwriting
max_tx_fragments for mt76x02u devices

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: rely on mac80211 utility routines to compute airtime
Lorenzo Bianconi [Mon, 9 Dec 2019 16:53:04 +0000 (17:53 +0100)]
mt76: rely on mac80211 utility routines to compute airtime

Rely on mac80211 airitme utility routines and remove mt76 duplicated code
to estimate tx/rx airtime

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Acked-by: Toke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: remove leftover routine declaration
Lorenzo Bianconi [Thu, 9 Jan 2020 13:26:53 +0000 (14:26 +0100)]
mt76: mt7615: remove leftover routine declaration

Get rid of mt76_dfs_start_rdd unused declaration

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: move WIPHY_FLAG_HAS_CHANNEL_SWITCH in mt76_phy_init
Lorenzo Bianconi [Tue, 7 Jan 2020 13:59:34 +0000 (14:59 +0100)]
mt76: move WIPHY_FLAG_HAS_CHANNEL_SWITCH in mt76_phy_init

Move WIPHY_FLAG_HAS_CHANNEL_SWITCH in mt76-core module since now all
drivers support Channel Switch Announcement

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: fix endianness in mt7615_mcu_set_eeprom
Ryder Lee [Wed, 1 Jan 2020 05:56:25 +0000 (13:56 +0800)]
mt76: mt7615: fix endianness in mt7615_mcu_set_eeprom

The field 'u16 len' should be __le16.

Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: initialize radar specs from host driver
Lorenzo Bianconi [Tue, 31 Dec 2019 12:25:23 +0000 (13:25 +0100)]
mt76: mt7615: initialize radar specs from host driver

Introduce dfs radar pattern specs in mt7615 driver in order to make
dfs debugging easier. Radar pulse/pattern thresholds are taken from
vendor SDK.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt76x2: get rid of leftover target
Lorenzo Bianconi [Sun, 29 Dec 2019 10:03:08 +0000 (11:03 +0100)]
mt76: mt76x2: get rid of leftover target

Remove tracing leftover target in mt76x2 Makefile

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: add tracing support
Lorenzo Bianconi [Sun, 29 Dec 2019 10:03:07 +0000 (11:03 +0100)]
mt76: mt7615: add tracing support

Introduce token tracing support in mt7615_mac_tx_free routine

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: move mac_txdone tracepoint in mt76 module
Lorenzo Bianconi [Sun, 29 Dec 2019 10:03:06 +0000 (11:03 +0100)]
mt76: move mac_txdone tracepoint in mt76 module

Move mac_txdone tracepoint in common code in order to
be reused by mt7603 and mt7615 drivers

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: move dev_irq tracepoint in mt76 module
Lorenzo Bianconi [Sun, 29 Dec 2019 10:03:05 +0000 (11:03 +0100)]
mt76: move dev_irq tracepoint in mt76 module

Move dev_irq tracepoint in common code in order to be reused by mt7603
and mt7615 drivers

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: add a get_stats() callback
Ryder Lee [Sat, 28 Dec 2019 03:05:12 +0000 (11:05 +0800)]
mt76: mt7615: add a get_stats() callback

Add a get_stats() callback for mib statistics.

Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: add per-phy mib statistics
Ryder Lee [Sat, 28 Dec 2019 03:05:11 +0000 (11:05 +0800)]
mt76: mt7615: add per-phy mib statistics

Update per-phy mib counters every 500ms.

Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: report TSF information
Ryder Lee [Sat, 28 Dec 2019 03:05:10 +0000 (11:05 +0800)]
mt76: mt7615: report TSF information

This adds a get_tsf() callback for ibss.

Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: add set_antenna callback
Ryder Lee [Sun, 22 Dec 2019 20:11:39 +0000 (04:11 +0800)]
mt76: mt7615: add set_antenna callback

Add a set_antenna callback to setup per phy tx/rx streams.

Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: rework set_channel function
Ryder Lee [Sun, 22 Dec 2019 20:11:38 +0000 (04:11 +0800)]
mt76: mt7615: rework set_channel function

No need to send both MCU_EXT_CMD_SET_RX_PATH and MCU_EXT_CMD_CHANNEL_SWITCH
together to MCU.

Split them out by passing the proper command in the corresponding flow.

Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: add missing settings for simultaneous dual-band support
Ryder Lee [Tue, 24 Dec 2019 01:24:25 +0000 (09:24 +0800)]
mt76: mt7615: add missing settings for simultaneous dual-band support

MT7615 supports dual-wiphy which means that it can run on 2.4G and 5GHz
channels simultaneously, and driver should configure each band.

Add missing register settings, and refine band related definitions to
avoid duplicate codes.

Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: fix compilation warning in mt76_eeprom_override()
Lorenzo Bianconi [Mon, 16 Dec 2019 18:32:10 +0000 (19:32 +0100)]
mt76: fix compilation warning in mt76_eeprom_override()

Fix the following compilation warning in mt76_eeprom_override routine
when CONFIG_OF is not set and label 'out' is not actually used

drivers/net/wireless/mediatek/mt76/eeprom.c: In function ‘mt76_eeprom_override’:
drivers/net/wireless/mediatek/mt76/eeprom.c:100:1: warning: label ‘out’ defined but not used [-Wunused-label]

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7603: simplify led reg definitions
Lorenzo Bianconi [Mon, 16 Dec 2019 13:19:59 +0000 (14:19 +0100)]
mt76: mt7603: simplify led reg definitions

Rely on FIELD_PREP macro for led register definitions and
remove open coding

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt76x02: simplify led reg definitions
Lorenzo Bianconi [Mon, 16 Dec 2019 13:19:58 +0000 (14:19 +0100)]
mt76: mt76x02: simplify led reg definitions

Rely on FIELD_PREP macro for led register definitions and
remove open coding

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: introduce LED support
Lorenzo Bianconi [Mon, 16 Dec 2019 13:05:05 +0000 (14:05 +0100)]
mt76: mt7615: introduce LED support

Initialize brightness_set and blink_set callbacks to
mt7615_led_set_brightness and mt7615_led_set_blink in order to enable
LED support in mt7615 driver

Tested-by: Deng Qingfang <dengqf6@mail2.sysu.edu.cn>
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: clear skb pointers from rx aggregation reorder buffer during cleanup
Felix Fietkau [Fri, 13 Dec 2019 23:15:26 +0000 (00:15 +0100)]
mt76: clear skb pointers from rx aggregation reorder buffer during cleanup

During the cleanup of the aggregation session, a rx handler (or release timer)
on another CPU might still hold a pointer to the reorder buffer and could
attempt to release some packets.
Clearing pointers during cleanup avoids a theoretical use-after-free bug here.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7603: fix input validation issues for powersave-filtered frames
Felix Fietkau [Sat, 21 Dec 2019 15:46:53 +0000 (16:46 +0100)]
mt76: mt7603: fix input validation issues for powersave-filtered frames

Before extracting the tid out of the packet, check if it was qos-data.
Only accept tid values 0-7
Also, avoid accepting the hardware queue as skb queue mapping, it could
lead to an overrun. Instead, derive the hardware queue from the tid number,
in order to avoid issues with packets being filtered multiple times.
This also fixes a mismatch between hardware and software queue indexes.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: increase MCU command timeout
Felix Fietkau [Thu, 19 Dec 2019 12:41:24 +0000 (13:41 +0100)]
mt76: mt7615: increase MCU command timeout

MCU_EXT_CMD_EFUSE_BUFFER_MODE needs more time on initialization, and
with only 10 seconds it sometimes runs into timeouts.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: measure channel noise and report it via survey
Felix Fietkau [Sat, 14 Dec 2019 19:08:59 +0000 (20:08 +0100)]
mt76: mt7615: measure channel noise and report it via survey

Read measurements every 100 ms and build a simple moving average

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: fix MT7615_CFEND_RATE_DEFAULT value
Ryder Lee [Sat, 21 Dec 2019 07:17:00 +0000 (15:17 +0800)]
mt76: mt7615: fix MT7615_CFEND_RATE_DEFAULT value

Fix default CFEND_RATE and replace hardcode values.

Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt76x02: minor mt76x02_mac_set_beacon optimization
Stanislaw Gruszka [Fri, 29 Nov 2019 12:32:28 +0000 (13:32 +0100)]
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>
4 years agomt76: mt76x02u: do not set NULL beacons
Stanislaw Gruszka [Fri, 29 Nov 2019 12:32:27 +0000 (13:32 +0100)]
mt76: mt76x02u: do not set NULL beacons

With current implementation we do not cleanup beacon memory, so is not
needed to call mt76x02_mac_set_beacon() with NULL skb.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: usb: use max packet length for m76u_copy
Stanislaw Gruszka [Fri, 29 Nov 2019 12:32:26 +0000 (13:32 +0100)]
mt76: usb: use max packet length for m76u_copy

For transferring data over USB the optimal size is endpoint maxpacket.
For my hardware maxpaket for control endpoint is 64 bytes and changing
to this value from 128 bytes further shorten TBTT work time from
3ms to 1ms.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt76x02: add channel switch support for usb interfaces
Markus Theil [Wed, 18 Dec 2019 16:07:54 +0000 (17:07 +0100)]
mt76: mt76x02: add channel switch support for usb interfaces

This patch enables channel switch support on mt76 usb interfaces.

Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: speed up usb bulk copy
Markus Theil [Wed, 18 Dec 2019 16:07:53 +0000 (17:07 +0100)]
mt76: speed up usb bulk copy

Use larger batches for usb copy to speed this operation up. Otherwise it
would be too slow for copying new beacons or broadcast frames over usb.
Assure, that always a multiple of 4 Bytes is copied, as outlined in
850e8f6fbd "mt76: round up length on mt76_wr_copy" from Felix Fietkau.

Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt76x02: remove a copy call for usb speedup
Markus Theil [Wed, 18 Dec 2019 16:07:52 +0000 (17:07 +0100)]
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>
4 years agomt76: mt76x02: add check for invalid vif idx
Markus Theil [Wed, 18 Dec 2019 16:07:51 +0000 (17:07 +0100)]
mt76: mt76x02: add check for invalid vif idx

On adding vifs the idx can become 1 + (7 & 7) = 8 for APs.
Check against that, as only AP vif idx 0-7 is possible.

Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt76x02: split beaconing
Markus Theil [Wed, 18 Dec 2019 16:07:50 +0000 (17:07 +0100)]
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>
4 years agomt76: mt76x02: omit beacon slot clearing
Markus Theil [Wed, 18 Dec 2019 16:07:49 +0000 (17:07 +0100)]
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>
4 years agomt76: use AC specific reorder timeout
Markus Theil [Sat, 14 Dec 2019 09:58:59 +0000 (10:58 +0100)]
mt76: use AC specific reorder timeout

Before this patch, mt76 handled rx traffic for all TIDs equally,
when released from reorder buffer early. This patch uses an AC specific
reorder timeout, in order to release partial aggregated frames for video
ACs earlier. Voice ACs are currently not aggregated (thanks to Felix for
this hint). For example, ath10k also uses AC specific reorder timeouts
(reported by firmware in that case).

Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: add set_coverage class support
Lorenzo Bianconi [Sun, 8 Dec 2019 07:25:40 +0000 (08:25 +0100)]
mt76: mt7615: add set_coverage class support

Add the capability to configure acktimeout for mt7615 driver. Moreover
configure slottime according to the value provided by mac80211

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7603: set 0 as min coverage_class value
Lorenzo Bianconi [Sun, 8 Dec 2019 07:25:39 +0000 (08:25 +0100)]
mt76: mt7603: set 0 as min coverage_class value

Set 0 as minimum configurable value for coverage_class since mt76 does
not support dynack

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt76x02: fix coverage_class type
Lorenzo Bianconi [Sun, 8 Dec 2019 07:25:38 +0000 (08:25 +0100)]
mt76: mt76x02: fix coverage_class type

Fix coverage_class type in mt76x02_dev data structure since
coverage_class can be negative to enable dynack (just supported by
ath9k). Set 0 as minimum value for coverage_class

Fixes: 7bc04215a66b ("mt76: add driver code for MT76x2e")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: report firmware version using ethtool
Lorenzo Bianconi [Mon, 9 Dec 2019 19:58:59 +0000 (20:58 +0100)]
mt76: mt7615: report firmware version using ethtool

Print fw_ver and build_date members of struct mt7615_fw_trailer
similarly to what appears in the output of 'dmesg' when the MCU firmware
is loaded.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: Fix build with older compilers
Pablo Greco [Sun, 1 Dec 2019 18:17:10 +0000 (15:17 -0300)]
mt76: mt7615: Fix build with older compilers

Some compilers (tested with 4.8.5 from CentOS 7) fail properly process
FIELD_GET inside an inline function, which ends up in a BUILD_BUG_ON.
Convert inline function to a macro.

Fixes commit bf92e7685100 ("mt76: mt7615: add support for per-chain
signal strength reporting")
Reported in https://lkml.org/lkml/2019/9/21/146

Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Pablo Greco <pgreco@centosproject.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agodt-bindings: net: wireless: mt76: introduce big-endian property
Lorenzo Bianconi [Wed, 27 Nov 2019 14:46:34 +0000 (16:46 +0200)]
dt-bindings: net: wireless: mt76: introduce big-endian property

Introduce big-endian property to specify mtd radio partition endianness

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: eeprom: add support for big endian eeprom partition
Lorenzo Bianconi [Wed, 27 Nov 2019 14:46:33 +0000 (16:46 +0200)]
mt76: eeprom: add support for big endian eeprom partition

mt76x0e users reported some devices (e.g TP-Link Archer VR200v) have
been flashed with big endian radio partition. Add the possibility to
specify eeprom endianness using big-endian dts property and in case
covert eeprom data in little endian

Tested-by: Kevin Schmidt <kevin.patrick.schmidt@googlemail.com>
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7603: reset STA_CCA counter setting the channel
Lorenzo Bianconi [Thu, 21 Nov 2019 08:42:13 +0000 (10:42 +0200)]
mt76: mt7603: reset STA_CCA counter setting the channel

Reset MT_MIB_STAT_CCA after channel switch since it is used to track busy
time starting from 'commit dcff8d4dc301 ("mt76: mt7603: switch to a
different counter for survey busy time")'

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: fix possible undetected invalid MAC address
Shayne Chen [Tue, 26 Nov 2019 13:15:54 +0000 (21:15 +0800)]
mt76: fix possible undetected invalid MAC address

Make sure the MAC address is checked before function returns.

If CONFIG_OF is set and the device node is null, the function will
return directly, and an invalid MAC address will not be checked.

Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: disable bh in mt76_dma_rx_poll
Felix Fietkau [Thu, 5 Dec 2019 16:46:42 +0000 (17:46 +0100)]
mt76: disable bh in mt76_dma_rx_poll

Fixes potential RCU issues and avoids calling ieee80211_rx_napi with softirq
enabled.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: fix rx dma ring descriptor state on reset
Felix Fietkau [Thu, 5 Dec 2019 16:32:41 +0000 (17:32 +0100)]
mt76: fix rx dma ring descriptor state on reset

To avoid having the hardware potentially write to memory behind stale
descriptors, set the dma-done flag on all of them before cleaning up
allocated rx buffers

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt7615: replace sta_state callback with sta_add/sta_remove
Felix Fietkau [Thu, 5 Dec 2019 13:26:13 +0000 (14:26 +0100)]
mt7615: replace sta_state callback with sta_add/sta_remove

The MT7615 firmware needs to know the association id at creation time,
which is unavailable during the transition from notexist to none in
.sta_state.
This can cause a number of issues, probably also breaking powersave
support.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: defer mcu initialization via workqueue
Felix Fietkau [Thu, 5 Dec 2019 10:36:51 +0000 (11:36 +0100)]
mt76: mt7615: defer mcu initialization via workqueue

Loading the mcu firmware and waiting for it to boot takes a long time,
which adds a significant amount to the system boot time.
Fix this by running the mcu init from a workqueue and waiting for it to
complete before starting the phy or issuing mcu commands via debugfs

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: update beacon contents on BSS_CHANGED_BEACON
Felix Fietkau [Wed, 6 Nov 2019 19:18:28 +0000 (20:18 +0100)]
mt76: mt7615: update beacon contents on BSS_CHANGED_BEACON

Beacon changes need to be sent to the firmware, otherwise it will
keep sending stale data

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: add support for registering a second wiphy via debugfs
Felix Fietkau [Wed, 30 Oct 2019 22:27:48 +0000 (23:27 +0100)]
mt76: mt7615: add support for registering a second wiphy via debugfs

This is only used for testing for now. In the future it will be possible to
enable the second PHY through an proper API via device tree

Running:
 echo 1 > /sys/kernel/debug/ieee80211/phyX/mt76/dbdc

will register a second wiphy (and limit the primary one to 2 spatial streams).
The second wiphy will only be able to run on 5 GHz, while the primary one can
operate in both bands (if supported by the device).

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: select the correct tx queue for frames sent to the second phy
Felix Fietkau [Tue, 5 Nov 2019 11:55:18 +0000 (12:55 +0100)]
mt76: mt7615: select the correct tx queue for frames sent to the second phy

Beacons and management frames need to explicitly select the alternate tx
queues in order to be sent out on the right phy

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: move radio/mac initialization to .start/stop callbacks
Felix Fietkau [Thu, 31 Oct 2019 13:53:03 +0000 (14:53 +0100)]
mt76: mt7615: move radio/mac initialization to .start/stop callbacks

Run initialization per phy

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: initialize dbdc settings on interface add
Felix Fietkau [Wed, 30 Oct 2019 18:06:19 +0000 (19:06 +0100)]
mt76: mt7615: initialize dbdc settings on interface add

Use the first two WMM slots for the primary phy and the second two for the
secondary phy.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: add multiple wiphy support to the rx path
Felix Fietkau [Wed, 30 Oct 2019 16:50:57 +0000 (17:50 +0100)]
mt76: mt7615: add multiple wiphy support to the rx path

Program the RMAC CHFREQ registers to properly indicate the band that the
frames are received on.
Add some sanity checks to the programmed values, because the firmware
programs these registers differently

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: rework chainmask handling
Felix Fietkau [Wed, 30 Oct 2019 13:16:28 +0000 (14:16 +0100)]
mt76: mt7615: rework chainmask handling

Move chainmask to struct mt7615_phy and instead of needlessly making the
format similar to values for older chips, make it refer to the actual chain
bits used for the rx/tx path.
This is important for multiple wiphy support, where for a secondary phy,
antenna_mask will start at 0, and chainmask will start at the chain offset
(bit 2)

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: add multiple wiphy support to the dfs support code
Felix Fietkau [Wed, 30 Oct 2019 12:11:27 +0000 (13:11 +0100)]
mt76: mt7615: add multiple wiphy support to the dfs support code

There are two DFS detectors on the chip. When using 160 MHz channel bandwidth
(not supported in dual-wiphy mode), both are used. Otherwise, one detector is
used per wiphy.
Rework the code to start/stop them separately per phy and to indicate the
radar event on the right phy based on the detector index

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: remove useless MT_HW_RDD0/1 enum
Felix Fietkau [Wed, 30 Oct 2019 10:19:10 +0000 (11:19 +0100)]
mt76: mt7615: remove useless MT_HW_RDD0/1 enum

Writing 0/1 is shorter and just as clear

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: add missing register init for dual-wiphy support
Felix Fietkau [Wed, 30 Oct 2019 10:02:38 +0000 (11:02 +0100)]
mt76: mt7615: add missing register init for dual-wiphy support

Initialize low-power beacon mode setting

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: add multiple wiphy support for smart carrier sense
Felix Fietkau [Sat, 26 Oct 2019 07:30:42 +0000 (09:30 +0200)]
mt76: mt7615: add multiple wiphy support for smart carrier sense

Use per-phy radio stats and tuning registers

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: mt7615: add dual-phy support for mac80211 ops
Felix Fietkau [Tue, 15 Oct 2019 19:08:49 +0000 (21:08 +0200)]
mt76: mt7615: add dual-phy support for mac80211 ops

Allows them to be used by a separately registered wiphy later

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: do not overwrite max_tx_fragments if it has been set
Shayne Chen [Sat, 14 Dec 2019 11:22:04 +0000 (19:22 +0800)]
mt76: do not overwrite max_tx_fragments if it has been set

Prevent the overwriting of max_tx_fragments if it has already been set
in chip-specific init routine.

Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: move ampdu_ref from mt76_dev to driver struct
Felix Fietkau [Wed, 6 Nov 2019 19:04:56 +0000 (20:04 +0100)]
mt76: move ampdu_ref from mt76_dev to driver struct

It is only used by the driver

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: add ext_phy field to struct mt76_wcid
Felix Fietkau [Mon, 4 Nov 2019 14:16:59 +0000 (15:16 +0100)]
mt76: add ext_phy field to struct mt76_wcid

Will be used to determine the phy from within the driver

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: add function for allocating an extra wiphy
Felix Fietkau [Wed, 30 Oct 2019 20:54:41 +0000 (21:54 +0100)]
mt76: add function for allocating an extra wiphy

Unlike the core phy, this will have extra allocated memory for a driver
private struct.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: add priv pointer to struct mt76_phy
Felix Fietkau [Wed, 30 Oct 2019 19:33:05 +0000 (20:33 +0100)]
mt76: add priv pointer to struct mt76_phy

Will be used for per-phy driver private data

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: add multiple wiphy support to mt76_get_min_avg_rssi
Felix Fietkau [Wed, 16 Oct 2019 14:14:12 +0000 (16:14 +0200)]
mt76: add multiple wiphy support to mt76_get_min_avg_rssi

Allow tracking clients of both wiphys separately

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: move txpower and antenna mask to struct mt76_phy
Felix Fietkau [Wed, 16 Oct 2019 10:41:48 +0000 (12:41 +0200)]
mt76: move txpower and antenna mask to struct mt76_phy

Adds multiple wiphy support to mt76_get_txpower

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: move txpower_conf back to driver specific structs
Felix Fietkau [Wed, 16 Oct 2019 10:36:16 +0000 (12:36 +0200)]
mt76: move txpower_conf back to driver specific structs

Nothing in the core uses it

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: move chainmask back to driver specific structs
Felix Fietkau [Wed, 16 Oct 2019 10:31:46 +0000 (12:31 +0200)]
mt76: move chainmask back to driver specific structs

Nothing in the core uses it

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: move state from struct mt76_dev to mt76_phy
Felix Fietkau [Wed, 16 Oct 2019 10:09:22 +0000 (12:09 +0200)]
mt76: move state from struct mt76_dev to mt76_phy

Allows keeping per-wiphy state separate

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: keep a set of software tx queues per phy
Felix Fietkau [Mon, 14 Oct 2019 08:57:03 +0000 (10:57 +0200)]
mt76: keep a set of software tx queues per phy

Allows tracking tx scheduling separately per phy

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: move channel state to struct mt76_phy
Felix Fietkau [Sat, 12 Oct 2019 17:46:40 +0000 (19:46 +0200)]
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>
4 years agomt76: add support for an extra wiphy in mt76_sta_state()
Felix Fietkau [Sat, 12 Oct 2019 15:42:00 +0000 (17:42 +0200)]
mt76: add support for an extra wiphy in mt76_sta_state()

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>