Commit d43de9cf authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Felix Fietkau

mt76: move sar_capa configuration in common code

Move wiphy SAR capability configuration in mt76 module and remove
duplicated code.
Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent 73c7c044
...@@ -185,7 +185,6 @@ const struct cfg80211_sar_capa mt76_sar_capa = { ...@@ -185,7 +185,6 @@ const struct cfg80211_sar_capa mt76_sar_capa = {
.num_freq_ranges = ARRAY_SIZE(mt76_sar_freq_ranges), .num_freq_ranges = ARRAY_SIZE(mt76_sar_freq_ranges),
.freq_ranges = &mt76_sar_freq_ranges[0], .freq_ranges = &mt76_sar_freq_ranges[0],
}; };
EXPORT_SYMBOL_GPL(mt76_sar_capa);
static int mt76_led_init(struct mt76_dev *dev) static int mt76_led_init(struct mt76_dev *dev)
{ {
...@@ -393,7 +392,7 @@ mt76_check_sband(struct mt76_phy *phy, struct mt76_sband *msband, ...@@ -393,7 +392,7 @@ mt76_check_sband(struct mt76_phy *phy, struct mt76_sband *msband,
phy->hw->wiphy->bands[band] = NULL; phy->hw->wiphy->bands[band] = NULL;
} }
static void static int
mt76_phy_init(struct mt76_phy *phy, struct ieee80211_hw *hw) mt76_phy_init(struct mt76_phy *phy, struct ieee80211_hw *hw)
{ {
struct mt76_dev *dev = phy->dev; struct mt76_dev *dev = phy->dev;
...@@ -414,6 +413,13 @@ mt76_phy_init(struct mt76_phy *phy, struct ieee80211_hw *hw) ...@@ -414,6 +413,13 @@ mt76_phy_init(struct mt76_phy *phy, struct ieee80211_hw *hw)
wiphy->available_antennas_tx = phy->antenna_mask; wiphy->available_antennas_tx = phy->antenna_mask;
wiphy->available_antennas_rx = phy->antenna_mask; wiphy->available_antennas_rx = phy->antenna_mask;
wiphy->sar_capa = &mt76_sar_capa;
phy->frp = devm_kcalloc(dev->dev, wiphy->sar_capa->num_freq_ranges,
sizeof(struct mt76_freq_range_power),
GFP_KERNEL);
if (!phy->frp)
return -ENOMEM;
hw->txq_data_size = sizeof(struct mt76_txq); hw->txq_data_size = sizeof(struct mt76_txq);
hw->uapsd_max_sp_len = IEEE80211_WMM_IE_STA_QOSINFO_SP_ALL; hw->uapsd_max_sp_len = IEEE80211_WMM_IE_STA_QOSINFO_SP_ALL;
...@@ -432,6 +438,8 @@ mt76_phy_init(struct mt76_phy *phy, struct ieee80211_hw *hw) ...@@ -432,6 +438,8 @@ mt76_phy_init(struct mt76_phy *phy, struct ieee80211_hw *hw)
ieee80211_hw_set(hw, MFP_CAPABLE); ieee80211_hw_set(hw, MFP_CAPABLE);
ieee80211_hw_set(hw, AP_LINK_PS); ieee80211_hw_set(hw, AP_LINK_PS);
ieee80211_hw_set(hw, REPORTS_TX_ACK_STATUS); ieee80211_hw_set(hw, REPORTS_TX_ACK_STATUS);
return 0;
} }
struct mt76_phy * struct mt76_phy *
...@@ -472,7 +480,9 @@ int mt76_register_phy(struct mt76_phy *phy, bool vht, ...@@ -472,7 +480,9 @@ int mt76_register_phy(struct mt76_phy *phy, bool vht,
{ {
int ret; int ret;
mt76_phy_init(phy, phy->hw); ret = mt76_phy_init(phy, phy->hw);
if (ret)
return ret;
if (phy->cap.has_2ghz) { if (phy->cap.has_2ghz) {
ret = mt76_init_sband_2g(phy, rates, n_rates); ret = mt76_init_sband_2g(phy, rates, n_rates);
...@@ -591,7 +601,9 @@ int mt76_register_device(struct mt76_dev *dev, bool vht, ...@@ -591,7 +601,9 @@ int mt76_register_device(struct mt76_dev *dev, bool vht,
int ret; int ret;
dev_set_drvdata(dev->dev, dev); dev_set_drvdata(dev->dev, dev);
mt76_phy_init(phy, hw); ret = mt76_phy_init(phy, hw);
if (ret)
return ret;
if (phy->cap.has_2ghz) { if (phy->cap.has_2ghz) {
ret = mt76_init_sband_2g(phy, rates, n_rates); ret = mt76_init_sband_2g(phy, rates, n_rates);
......
...@@ -810,7 +810,6 @@ struct mt76_ethtool_worker_info { ...@@ -810,7 +810,6 @@ struct mt76_ethtool_worker_info {
} }
extern struct ieee80211_rate mt76_rates[12]; extern struct ieee80211_rate mt76_rates[12];
extern const struct cfg80211_sar_capa mt76_sar_capa;
#define __mt76_rr(dev, ...) (dev)->bus->rr((dev), __VA_ARGS__) #define __mt76_rr(dev, ...) (dev)->bus->rr((dev), __VA_ARGS__)
#define __mt76_wr(dev, ...) (dev)->bus->wr((dev), __VA_ARGS__) #define __mt76_wr(dev, ...) (dev)->bus->wr((dev), __VA_ARGS__)
......
...@@ -174,13 +174,6 @@ int mt76x02_init_device(struct mt76x02_dev *dev) ...@@ -174,13 +174,6 @@ int mt76x02_init_device(struct mt76x02_dev *dev)
} }
wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_VHT_IBSS); wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_VHT_IBSS);
wiphy->sar_capa = &mt76_sar_capa;
dev->mt76.phy.frp = devm_kcalloc(dev->mt76.dev,
wiphy->sar_capa->num_freq_ranges,
sizeof(struct mt76_freq_range_power),
GFP_KERNEL);
if (!dev->mt76.phy.frp)
return -ENOMEM;
hw->sta_data_size = sizeof(struct mt76x02_sta); hw->sta_data_size = sizeof(struct mt76x02_sta);
hw->vif_data_size = sizeof(struct mt76x02_vif); hw->vif_data_size = sizeof(struct mt76x02_vif);
......
...@@ -76,14 +76,6 @@ mt7921_init_wiphy(struct ieee80211_hw *hw) ...@@ -76,14 +76,6 @@ mt7921_init_wiphy(struct ieee80211_hw *hw)
wiphy->max_sched_scan_reqs = 1; wiphy->max_sched_scan_reqs = 1;
wiphy->flags |= WIPHY_FLAG_HAS_CHANNEL_SWITCH; wiphy->flags |= WIPHY_FLAG_HAS_CHANNEL_SWITCH;
wiphy->reg_notifier = mt7921_regd_notifier; wiphy->reg_notifier = mt7921_regd_notifier;
wiphy->sar_capa = &mt76_sar_capa;
phy->mt76->frp = devm_kcalloc(dev->mt76.dev,
wiphy->sar_capa->num_freq_ranges,
sizeof(struct mt76_freq_range_power),
GFP_KERNEL);
if (!phy->mt76->frp)
return -ENOMEM;
wiphy->features |= NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR | wiphy->features |= NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR |
NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR; NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment