diff --git a/mt7603_init.c b/mt7603_init.c index 43aa9a7e..23d80005 100644 --- a/mt7603_init.c +++ b/mt7603_init.c @@ -175,7 +175,6 @@ mt7603_phy_init(struct mt7603_dev *dev) static void mt7603_mac_init(struct mt7603_dev *dev) { - void *dev_addr = dev->mt76.hw->wiphy->perm_addr; u8 bc_addr[ETH_ALEN]; u32 addr; int i; @@ -218,10 +217,6 @@ mt7603_mac_init(struct mt7603_dev *dev) mt76_rmw_field(dev, MT_LPON_BTEIR, MT_LPON_BTEIR_MBSS_MODE, 2); mt76_rmw_field(dev, MT_WF_RMACDR, MT_WF_RMACDR_MBSSID_MASK, 2); - mt76_wr(dev, MT_MAC_ADDR0(0), get_unaligned_le32(dev_addr)); - mt76_wr(dev, MT_MAC_ADDR1(0), - get_unaligned_le16(dev_addr + 4) | MT_MAC_ADDR1_VALID); - mt76_wr(dev, MT_AGG_ARUCR, 0); mt76_wr(dev, MT_AGG_ARDCR, ~0); mt76_wr(dev, MT_AGG_ARCR, (MT_AGG_ARCR_INIT_RATE1 | diff --git a/mt7603_main.c b/mt7603_main.c index 28c781c8..6fe2cfc4 100644 --- a/mt7603_main.c +++ b/mt7603_main.c @@ -68,6 +68,12 @@ mt7603_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) goto out; } + mt76_wr(dev, MT_MAC_ADDR0(mvif->idx), + get_unaligned_le32(vif->addr)); + mt76_wr(dev, MT_MAC_ADDR1(mvif->idx), + (get_unaligned_le16(vif->addr + 4) | + MT_MAC_ADDR1_VALID)); + idx = MT7603_WTBL_RESERVED - 1 - mvif->idx; dev->vif_mask |= BIT(mvif->idx); mvif->sta.wcid.idx = idx;