Skip to content

Commit

Permalink
mt76: introduce mt76x02_config_mac_addr_list routine
Browse files Browse the repository at this point in the history
Add mt76x02_config_mac_addr_list routine in order to set
the mac address list supported by the driver. Initialize
wiphy->addresses/n_addresses for mt76x0e driver

Signed-off-by: Lorenzo Bianconi <[email protected]>
  • Loading branch information
LorenzoBianconi authored and nbd168 committed Nov 13, 2018
1 parent df5c797 commit 0bfa98e
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 15 deletions.
2 changes: 2 additions & 0 deletions mt76x0/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -289,6 +289,8 @@ int mt76x0_register_device(struct mt76x02_dev *dev)
int ret;

mt76x02_init_device(dev);
mt76x02_config_mac_addr_list(dev);

ret = mt76_register_device(&dev->mt76, true, mt76x02_rates,
ARRAY_SIZE(mt76x02_rates));
if (ret)
Expand Down
1 change: 1 addition & 0 deletions mt76x02.h
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ int mt76x02_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
int mt76x02_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
struct ieee80211_sta *sta);

void mt76x02_config_mac_addr_list(struct mt76x02_dev *dev);
void mt76x02_vif_init(struct mt76x02_dev *dev, struct ieee80211_vif *vif,
unsigned int idx);
int mt76x02_add_interface(struct ieee80211_hw *hw,
Expand Down
22 changes: 22 additions & 0 deletions mt76x02_util.c
Original file line number Diff line number Diff line change
Expand Up @@ -696,4 +696,26 @@ void mt76x02_bss_info_changed(struct ieee80211_hw *hw,
}
EXPORT_SYMBOL_GPL(mt76x02_bss_info_changed);

void mt76x02_config_mac_addr_list(struct mt76x02_dev *dev)
{
struct ieee80211_hw *hw = mt76_hw(dev);
struct wiphy *wiphy = hw->wiphy;
int i;

for (i = 0; i < ARRAY_SIZE(dev->macaddr_list); i++) {
u8 *addr = dev->macaddr_list[i].addr;

memcpy(addr, dev->mt76.macaddr, ETH_ALEN);

if (!i)
continue;

addr[0] |= BIT(1);
addr[0] ^= ((i - 1) << 2);
}
wiphy->addresses = dev->macaddr_list;
wiphy->n_addresses = ARRAY_SIZE(dev->macaddr_list);
}
EXPORT_SYMBOL_GPL(mt76x02_config_mac_addr_list);

MODULE_LICENSE("Dual BSD/GPL");
17 changes: 2 additions & 15 deletions mt76x2/pci_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,7 @@ int mt76x2_register_device(struct mt76x02_dev *dev)
{
struct ieee80211_hw *hw = mt76_hw(dev);
struct wiphy *wiphy = hw->wiphy;
int i, ret;
int ret;

INIT_DELAYED_WORK(&dev->cal_work, mt76x2_phy_calibrate);

Expand All @@ -400,20 +400,7 @@ int mt76x2_register_device(struct mt76x02_dev *dev)
if (ret)
return ret;

for (i = 0; i < ARRAY_SIZE(dev->macaddr_list); i++) {
u8 *addr = dev->macaddr_list[i].addr;

memcpy(addr, dev->mt76.macaddr, ETH_ALEN);

if (!i)
continue;

addr[0] |= BIT(1);
addr[0] ^= ((i - 1) << 2);
}
wiphy->addresses = dev->macaddr_list;
wiphy->n_addresses = ARRAY_SIZE(dev->macaddr_list);

mt76x02_config_mac_addr_list(dev);
wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_VHT_IBSS);

/* init led callbacks */
Expand Down

0 comments on commit 0bfa98e

Please sign in to comment.