diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/dvm/rx.c')
| -rw-r--r-- | drivers/net/wireless/iwlwifi/dvm/rx.c | 11 | 
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/dvm/rx.c b/drivers/net/wireless/iwlwifi/dvm/rx.c index fee5cffa166..5a9c325804f 100644 --- a/drivers/net/wireless/iwlwifi/dvm/rx.c +++ b/drivers/net/wireless/iwlwifi/dvm/rx.c @@ -667,6 +667,7 @@ static int iwlagn_rx_reply_rx_phy(struct iwl_priv *priv,  	struct iwl_rx_packet *pkt = rxb_addr(rxb);  	priv->last_phy_res_valid = true; +	priv->ampdu_ref++;  	memcpy(&priv->last_phy_res, pkt->data,  	       sizeof(struct iwl_rx_phy_res));  	return 0; @@ -981,6 +982,16 @@ static int iwlagn_rx_reply_rx(struct iwl_priv *priv,  	if (phy_res->phy_flags & RX_RES_PHY_FLAGS_SHORT_PREAMBLE_MSK)  		rx_status.flag |= RX_FLAG_SHORTPRE; +	if (phy_res->phy_flags & RX_RES_PHY_FLAGS_AGG_MSK) { +		/* +		 * We know which subframes of an A-MPDU belong +		 * together since we get a single PHY response +		 * from the firmware for all of them +		 */ +		rx_status.flag |= RX_FLAG_AMPDU_DETAILS; +		rx_status.ampdu_reference = priv->ampdu_ref; +	} +  	/* Set up the HT phy flags */  	if (rate_n_flags & RATE_MCS_HT_MSK)  		rx_status.flag |= RX_FLAG_HT;  |