diff options
author | tamizhr@codeaurora.org <tamizhr@codeaurora.org> | 2018-03-27 09:46:16 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2018-03-29 04:19:55 -0400 |
commit | 57566b20033f23bdc9f25d5fa4c36a7287aa08d2 (patch) | |
tree | 305656d75bf16a8f45fdb7ce429543ab9fdcb0c5 | |
parent | 5e78abd075e562fd5748ac3bfb067941e8baf6c7 (diff) |
mac80211: Use proper smps_mode enum in sta opmode event
SMPS_MODE change value notified via nl80211 contains mac80211
specific value(ieee80211_smps_mode) and user space application
will not know those values. This patch add support to map
the mac80211 enum value to nl80211_smps_mode which will be
understood by the userspace application.
Signed-off-by: Tamizh chelvam <tamizhr@codeaurora.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r-- | net/mac80211/ht.c | 15 | ||||
-rw-r--r-- | net/mac80211/ieee80211_i.h | 2 | ||||
-rw-r--r-- | net/mac80211/rx.c | 3 |
3 files changed, 19 insertions, 1 deletions
diff --git a/net/mac80211/ht.c b/net/mac80211/ht.c index d7523530d3f8..c78036a0ac94 100644 --- a/net/mac80211/ht.c +++ b/net/mac80211/ht.c | |||
@@ -466,6 +466,21 @@ void ieee80211_process_delba(struct ieee80211_sub_if_data *sdata, | |||
466 | __ieee80211_stop_tx_ba_session(sta, tid, AGG_STOP_PEER_REQUEST); | 466 | __ieee80211_stop_tx_ba_session(sta, tid, AGG_STOP_PEER_REQUEST); |
467 | } | 467 | } |
468 | 468 | ||
469 | enum nl80211_smps_mode | ||
470 | ieee80211_smps_mode_to_smps_mode(enum ieee80211_smps_mode smps) | ||
471 | { | ||
472 | switch (smps) { | ||
473 | case IEEE80211_SMPS_OFF: | ||
474 | return NL80211_SMPS_OFF; | ||
475 | case IEEE80211_SMPS_STATIC: | ||
476 | return NL80211_SMPS_STATIC; | ||
477 | case IEEE80211_SMPS_DYNAMIC: | ||
478 | return NL80211_SMPS_DYNAMIC; | ||
479 | default: | ||
480 | return NL80211_SMPS_OFF; | ||
481 | } | ||
482 | } | ||
483 | |||
469 | int ieee80211_send_smps_action(struct ieee80211_sub_if_data *sdata, | 484 | int ieee80211_send_smps_action(struct ieee80211_sub_if_data *sdata, |
470 | enum ieee80211_smps_mode smps, const u8 *da, | 485 | enum ieee80211_smps_mode smps, const u8 *da, |
471 | const u8 *bssid) | 486 | const u8 *bssid) |
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index ae9c33cd8ada..9237ffb4e986 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -1788,6 +1788,8 @@ void ieee80211_tx_ba_session_handle_start(struct sta_info *sta, int tid); | |||
1788 | void ieee80211_release_reorder_timeout(struct sta_info *sta, int tid); | 1788 | void ieee80211_release_reorder_timeout(struct sta_info *sta, int tid); |
1789 | 1789 | ||
1790 | u8 ieee80211_mcs_to_chains(const struct ieee80211_mcs_info *mcs); | 1790 | u8 ieee80211_mcs_to_chains(const struct ieee80211_mcs_info *mcs); |
1791 | enum nl80211_smps_mode | ||
1792 | ieee80211_smps_mode_to_smps_mode(enum ieee80211_smps_mode smps); | ||
1791 | 1793 | ||
1792 | /* VHT */ | 1794 | /* VHT */ |
1793 | void | 1795 | void |
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 27bb1f0b5e52..f8c69acfda48 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -2883,7 +2883,8 @@ ieee80211_rx_h_action(struct ieee80211_rx_data *rx) | |||
2883 | if (rx->sta->sta.smps_mode == smps_mode) | 2883 | if (rx->sta->sta.smps_mode == smps_mode) |
2884 | goto handled; | 2884 | goto handled; |
2885 | rx->sta->sta.smps_mode = smps_mode; | 2885 | rx->sta->sta.smps_mode = smps_mode; |
2886 | sta_opmode.smps_mode = smps_mode; | 2886 | sta_opmode.smps_mode = |
2887 | ieee80211_smps_mode_to_smps_mode(smps_mode); | ||
2887 | sta_opmode.changed = STA_OPMODE_SMPS_MODE_CHANGED; | 2888 | sta_opmode.changed = STA_OPMODE_SMPS_MODE_CHANGED; |
2888 | 2889 | ||
2889 | sband = rx->local->hw.wiphy->bands[status->band]; | 2890 | sband = rx->local->hw.wiphy->bands[status->band]; |