|
@@ -1628,6 +1628,23 @@ static void ieee80211_mgmt_frame_register(struct wiphy *wiphy,
|
|
ieee80211_queue_work(&local->hw, &local->reconfig_filter);
|
|
ieee80211_queue_work(&local->hw, &local->reconfig_filter);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static int ieee80211_set_antenna(struct wiphy *wiphy, u32 tx_ant, u32 rx_ant)
|
|
|
|
+{
|
|
|
|
+ struct ieee80211_local *local = wiphy_priv(wiphy);
|
|
|
|
+
|
|
|
|
+ if (local->started)
|
|
|
|
+ return -EOPNOTSUPP;
|
|
|
|
+
|
|
|
|
+ return drv_set_antenna(local, tx_ant, rx_ant);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static int ieee80211_get_antenna(struct wiphy *wiphy, u32 *tx_ant, u32 *rx_ant)
|
|
|
|
+{
|
|
|
|
+ struct ieee80211_local *local = wiphy_priv(wiphy);
|
|
|
|
+
|
|
|
|
+ return drv_get_antenna(local, tx_ant, rx_ant);
|
|
|
|
+}
|
|
|
|
+
|
|
struct cfg80211_ops mac80211_config_ops = {
|
|
struct cfg80211_ops mac80211_config_ops = {
|
|
.add_virtual_intf = ieee80211_add_iface,
|
|
.add_virtual_intf = ieee80211_add_iface,
|
|
.del_virtual_intf = ieee80211_del_iface,
|
|
.del_virtual_intf = ieee80211_del_iface,
|
|
@@ -1680,4 +1697,6 @@ struct cfg80211_ops mac80211_config_ops = {
|
|
.mgmt_tx = ieee80211_mgmt_tx,
|
|
.mgmt_tx = ieee80211_mgmt_tx,
|
|
.set_cqm_rssi_config = ieee80211_set_cqm_rssi_config,
|
|
.set_cqm_rssi_config = ieee80211_set_cqm_rssi_config,
|
|
.mgmt_frame_register = ieee80211_mgmt_frame_register,
|
|
.mgmt_frame_register = ieee80211_mgmt_frame_register,
|
|
|
|
+ .set_antenna = ieee80211_set_antenna,
|
|
|
|
+ .get_antenna = ieee80211_get_antenna,
|
|
};
|
|
};
|