Commit Graph
33 Commits
Author SHA1 Message Date
Felix Fietkau 33f29d2345 wifi: mt76: relicense to BSD-3-Clause-Clear
MediaTek has asked to switch from the ISC license to BSD-3-Clause-Clear,
in order to improve clarity and the legal integrity of the code.

The BSD-3-Clause license includes the "no endorsement" clause, which is
important for protecting the reputation of the original authors and
contributors by preventing unauthorized use of their names for endorsement
purposes.

This clause is absent in the BSD-2-Clause license, which is more permissive
but lacks this specific protection.

This change also cleans up the license of some Kconfig/Makefile files,
which were accidentally marked as GPL.

The GPL 2.0 remains in use on mt76x0, as well as two source files in mt7615
for which the license situation still needs to be clarified.

Signed-off-by: Felix Fietkau <[email protected]>
2025-10-13 11:11:19 +02:00
Felix Fietkau b80c997b3f wifi: mt76: partially move channel change code to core
This allows the core code to change the channel. Code deduplication and
preparation for adding scanning code to the core.

Signed-off-by: Felix Fietkau <[email protected]>
2024-08-12 21:08:33 +02:00
Felix Fietkau c03d84c0d0 wifi: mt76: mt7603: improve stuck beacon handling
Before preparing the new beacon, check the queue status, flush out all
previous beacons and buffered multicast packets, then (if necessary)
try to recover more gracefully from a stuck beacon condition by making a
less invasive attempt at getting the MAC un-stuck.

Fixes: c8846e101502 ("mt76: add driver for MT7603E and MT7628/7688")
Signed-off-by: Felix Fietkau <[email protected]>
2023-08-14 14:08:13 +02:00
Felix Fietkau 53edfc7aaa wifi: mt76: mt7603: fix beacon interval after disabling a single vif
When disabling beacons on a vif, intval is 0. Ensure that dev->mt76.beacon_int
is not overwritten in this case, so that beacons continue to work for other
interfaces.

Signed-off-by: Felix Fietkau <[email protected]>
2023-07-25 12:38:02 +02:00
Felix Fietkau ec46d7486a sync with upstream
Signed-off-by: Felix Fietkau <[email protected]>
2022-12-10 13:11:04 +01:00
Felix Fietkau 93e3fce916 mt76: pass original queue id from __mt76_tx_queue_skb to the driver
MT7615 and newer map multiple software tx queues to the hardware id

Signed-off-by: Felix Fietkau <[email protected]>
2022-07-03 17:52:25 +02:00
Yunbo YuandFelix Fietkau 60a8ec12a8 mt76: mt7603: move spin_lock_bh() to spin_lock()
It is unnecessary to call spin_lock_bh() within a tasklet.

Signed-off-by: Yunbo Yu <[email protected]>
2022-04-20 13:23:48 +02:00
Lorenzo BianconiandFelix Fietkau 2e217fb9e9 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 <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2020-11-12 14:59:29 +01:00
Lorenzo BianconiandFelix Fietkau 0f9350bef1 mt76: rely on mt76_queue in tx_queue_skb signature
Rely on mt76_queue instead of qid in tx_queue_skb signature.
This is a preliminary patch to move data queues in mt76_phy and add
dbdc support to mt7915 driver

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2020-11-12 14:59:29 +01:00
Lorenzo BianconiandFelix Fietkau 216cf8b285 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 <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2020-11-12 14:59:29 +01:00
Allen PaisandFelix Fietkau 4f9f79b085 wireless: mt76: convert tasklets to use new tasklet_setup() API
In preparation for unconditionally passing the
struct tasklet_struct pointer to all tasklet
callbacks, switch to using the new tasklet_setup()
and from_tasklet() to pass the tasklet pointer explicitly.

Signed-off-by: Romain Perier <[email protected]>
Signed-off-by: Allen Pais <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2020-11-10 13:15:51 +01:00
Felix Fietkau 3218b914a2 mt76: remove struct mt76_sw_queue
All members except for the struct mt76_queue pointer have been removed

Signed-off-by: Felix Fietkau <[email protected]>
2020-08-24 20:59:30 +02:00
Ryder LeeandFelix Fietkau 8b7bbd0176 mt76: mt7603: fix some checkpatch warnings
This fixes the following checkpatch warnings:

WARNING: Improper SPDX comment style
CHECK: No space is necessary after a cast

Signed-off-by: Ryder Lee <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2019-08-20 15:21:30 +02:00
Lorenzo BianconiandFelix Fietkau 7606c08414 mt76: mt7603: enable/disable pre_tbtt_tasklet in mt7603_set_channel
Disable pre_tbtt_tasklet tasklet before setting the operating channel.
Enable/disable beacon_timer in mt7603_set_channel

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2019-04-30 17:52:28 +02:00
Lorenzo BianconiandFelix Fietkau 74ab2cf617 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 <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2019-04-30 11:43:51 +02:00
Lorenzo BianconiandFelix Fietkau f43fccf099 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 <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2019-04-30 11:43:51 +02:00
Lorenzo BianconiandFelix Fietkau 3ce8a93ae1 mt76: dma: add static qualifier to mt76_dma_tx_queue_skb
As already done for mt76_dma_tx_queue_skb_raw, add static qualifier to
mt76_dma_tx_queue_skb and introduce mt76_tx_queue_skb in order to run
mt76_dma_tx_queue_skb in driver code

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2019-03-16 20:28:17 +01:00
Lorenzo BianconiandFelix Fietkau 06c917faeb mt76: introduce mt76_sw_queue data structure
Introduce mt76_sw_queue data structure in order to support new
chipsets (e.g. mt7615) that have a shared hardware queue for all traffic
identifiers. mt76_sw_queue will be used to track outstanding packets

Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2019-03-13 12:53:23 +01:00
Lorenzo BianconiandFelix Fietkau e97a209226 mt76: remove mt76_queue dependency from tx_queue_skb function pointer
Remove mt76_queue dependency from tx_queue_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 <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
2019-03-12 16:58:06 +01:00
Felix Fietkau 320af65ca1 mt76: mt7603: use the correct hweight8() function
__sw_hweight8() is only defined if CONFIG_GENERIC_HWEIGHT is enabled.
The function that works on all architectures is hweight8().

Signed-off-by: Felix Fietkau <[email protected]>
2019-03-11 14:09:05 +01:00
Felix Fietkau 8027b5d061 mt7603: remove copyright headers
No longer needed because of SPDX License Identifier

Signed-off-by: Felix Fietkau <[email protected]>
2019-01-31 18:30:30 +01:00
Felix Fietkau 7a53138b32 mt7603: trigger watchdog reset if flushing CAB queue fails
Signed-off-by: Felix Fietkau <[email protected]>
2019-01-29 16:20:15 +01:00
Felix Fietkau c3da1aa3b0 mt7603: trigger beacon stuck detection faster
Check against number of active beacon interfaces instead of maximum number
of interfaces

Signed-off-by: Felix Fietkau <[email protected]>
2019-01-29 16:18:19 +01:00
Felix Fietkau aa470d8655 mt7603: fix buffered multicast queue flush
For some reason the BMC queue flush does not work properly if packets were
queued for a BSS0_n interface (secondary vif).
Work around this issue by using the DMA scheduler to filter the queue before
issueing the BMC queue flush.

Signed-off-by: Felix Fietkau <[email protected]>
2019-01-22 15:25:16 +01:00
Felix Fietkau e342cc5c72 mt7603: fix buffered multicast count register
Signed-off-by: Felix Fietkau <[email protected]>
2019-01-22 14:24:43 +01:00
Felix Fietkau 63bf183451 mt76: add channel switch announcement support
Signed-off-by: Felix Fietkau <[email protected]>
2019-01-15 14:27:02 +01:00
Felix Fietkau 44bb37288c mt7603: fix CAB queue flush mask
Only flush queues belonging to hardware BSS 0 (and sub interfaces)

Signed-off-by: Felix Fietkau <[email protected]>
2018-11-28 22:29:23 +01:00
Felix Fietkau d22feb00e9 mt7603: move cab queue enabling to pre-tbtt tasklet
It is not necessary to time the start of the queue in software, the hardware
already does that for us.
Move all processing into the pre-tbtt tasklet to get rid of a race condition
that could happen when the pre-tbtt tasklet takes too long

Signed-off-by: Felix Fietkau <[email protected]>
2018-11-28 22:15:31 +01:00
Felix Fietkau 6ac9653037 mt7603: fix CAB queue limits
Signed-off-by: Felix Fietkau <[email protected]>
2018-11-28 21:22:42 +01:00
Felix Fietkau 471d397e06 mt7603: fix priority for buffered multicast packets
Ensure that they are transmitted immediately after the beacon

Signed-off-by: Felix Fietkau <[email protected]>
2018-11-17 15:41:32 +01:00
Felix Fietkau 498d716353 mt7603: fix checkpatch issues
Signed-off-by: Felix Fietkau <[email protected]>
2018-11-06 15:41:37 +01:00
Felix Fietkau d9b5324ecc mt7603: add SPDX license identifiers
Signed-off-by: Felix Fietkau <[email protected]>
2018-11-06 13:53:26 +01:00
Felix Fietkau 62ce3245da move mt7603 source files to mt7603/
Signed-off-by: Felix Fietkau <[email protected]>
2018-09-28 18:02:01 +02:00