Commit c5f8cdb7 authored by Daniel C Halperin's avatar Daniel C Halperin Committed by John W. Linville

iwlwifi: set HT flags in ieee80211_rx_status for received packets

Add code to set the HT flags (HT, 40 MHz, Short guard interval) in
the ieee80211_rx_status field passed to mac80211.  This ensures that mac80211
processes these HT packets correctly.
Signed-off-by: default avatarDaniel C Halperin <daniel.c.halperin@intel.com>
Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 7ebaeff8
...@@ -915,6 +915,7 @@ void iwl_rx_reply_rx(struct iwl_priv *priv, ...@@ -915,6 +915,7 @@ void iwl_rx_reply_rx(struct iwl_priv *priv,
u32 len; u32 len;
u32 ampdu_status; u32 ampdu_status;
u16 fc; u16 fc;
u32 rate_n_flags;
/** /**
* REPLY_RX and REPLY_RX_MPDU_CMD are handled differently. * REPLY_RX and REPLY_RX_MPDU_CMD are handled differently.
...@@ -1032,6 +1033,15 @@ void iwl_rx_reply_rx(struct iwl_priv *priv, ...@@ -1032,6 +1033,15 @@ void iwl_rx_reply_rx(struct iwl_priv *priv,
if (phy_res->phy_flags & RX_RES_PHY_FLAGS_SHORT_PREAMBLE_MSK) if (phy_res->phy_flags & RX_RES_PHY_FLAGS_SHORT_PREAMBLE_MSK)
rx_status.flag |= RX_FLAG_SHORTPRE; rx_status.flag |= RX_FLAG_SHORTPRE;
/* Set up the HT phy flags */
rate_n_flags = le32_to_cpu(phy_res->rate_n_flags);
if (rate_n_flags & RATE_MCS_HT_MSK)
rx_status.flag |= RX_FLAG_HT;
if (rate_n_flags & RATE_MCS_HT40_MSK)
rx_status.flag |= RX_FLAG_40MHZ;
if (rate_n_flags & RATE_MCS_SGI_MSK)
rx_status.flag |= RX_FLAG_SHORT_GI;
if (iwl_is_network_packet(priv, header)) { if (iwl_is_network_packet(priv, header)) {
priv->last_rx_rssi = rx_status.signal; priv->last_rx_rssi = rx_status.signal;
priv->last_beacon_time = priv->ucode_beacon_time; priv->last_beacon_time = priv->ucode_beacon_time;
......
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