diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 95e8484eb4f17ca0ae6327a710d55a3a3b0b6df1..d315740581f1ebc46de1e4180cc6ad9023cf1897 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h @@ -4195,6 +4195,8 @@ struct ieee80211_ops { struct ieee80211_vif *vif); void (*sta_set_4addr)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, bool enabled); + int (*set_sar_specs)(struct ieee80211_hw *hw, + const struct cfg80211_sar_specs *sar); }; /** diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index e0f4662b3abf4998a6aabf25ab90606f75b2e18f..c4c70e30ad7f02644db03978a3f7ff5dc1687e05 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c @@ -4073,6 +4073,17 @@ static int ieee80211_reset_tid_config(struct wiphy *wiphy, return ret; } +static int ieee80211_set_sar_specs(struct wiphy *wiphy, + struct cfg80211_sar_specs *sar) +{ + struct ieee80211_local *local = wiphy_priv(wiphy); + + if (!local->ops->set_sar_specs) + return -EOPNOTSUPP; + + return local->ops->set_sar_specs(&local->hw, sar); +} + const struct cfg80211_ops mac80211_config_ops = { .add_virtual_intf = ieee80211_add_iface, .del_virtual_intf = ieee80211_del_iface, @@ -4175,4 +4186,5 @@ const struct cfg80211_ops mac80211_config_ops = { .probe_mesh_link = ieee80211_probe_mesh_link, .set_tid_config = ieee80211_set_tid_config, .reset_tid_config = ieee80211_reset_tid_config, + .set_sar_specs = ieee80211_set_sar_specs, };