diff options
author | Ryder Lee <ryder.lee@mediatek.com> | 2020-10-30 01:11:17 +0800 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2020-12-04 14:31:13 +0100 |
commit | d8d59f66d136bf5d81322fcba261381276e9b094 (patch) | |
tree | ed32cb5c45883ca02344c4e0ecc759cccc618627 /drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h | |
parent | 802145e2ed2f71e1a29f64d5873e9e71e3495676 (diff) | |
download | linux-d8d59f66d136bf5d81322fcba261381276e9b094.tar.gz linux-d8d59f66d136bf5d81322fcba261381276e9b094.tar.bz2 linux-d8d59f66d136bf5d81322fcba261381276e9b094.zip |
mt76: mt7615: support 16 interfaces
When looking for a MAC address slot, start by using main BSSID slots 1-3,
afterwards use 16 repeater mode BSSID slots, then start using the slots
usually used for AP mode.
This search order should prevent unnecessary conflicts with AP mode interfaces
on the same PHY.
Note that two PHYs share global 32 omac slots with each other.
Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h')
-rw-r--r-- | drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h | 27 |
1 files changed, 8 insertions, 19 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h b/drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h index e83501c4df44..2570a8ca424a 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h +++ b/drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h @@ -11,7 +11,7 @@ #include "../mt76.h" #include "regs.h" -#define MT7615_MAX_INTERFACES 4 +#define MT7615_MAX_INTERFACES 16 #define MT7615_MAX_WMM_SETS 4 #define MT7663_WTBL_SIZE 32 #define MT7615_WTBL_SIZE 128 @@ -168,7 +168,7 @@ struct mt7615_phy { u8 n_beacon_vif; u32 rxfilter; - u32 omac_mask; + u64 omac_mask; u16 noise; @@ -246,7 +246,7 @@ struct mt7615_dev { struct tasklet_struct irq_tasklet; struct mt7615_phy phy; - u32 omac_mask; + u64 omac_mask; u16 chainmask; @@ -338,24 +338,13 @@ enum { HW_BSSID_1, HW_BSSID_2, HW_BSSID_3, - HW_BSSID_MAX, + HW_BSSID_MAX = HW_BSSID_3, EXT_BSSID_START = 0x10, EXT_BSSID_1, - EXT_BSSID_2, - EXT_BSSID_3, - EXT_BSSID_4, - EXT_BSSID_5, - EXT_BSSID_6, - EXT_BSSID_7, - EXT_BSSID_8, - EXT_BSSID_9, - EXT_BSSID_10, - EXT_BSSID_11, - EXT_BSSID_12, - EXT_BSSID_13, - EXT_BSSID_14, - EXT_BSSID_15, - EXT_BSSID_END + EXT_BSSID_15 = 0x1f, + EXT_BSSID_MAX = EXT_BSSID_15, + REPEATER_BSSID_START = 0x20, + REPEATER_BSSID_MAX = 0x3f, }; enum { |