|
@@ -725,6 +725,16 @@ il4965_hdl_rx(struct il_priv *il, struct il_rx_buf *rxb)
|
|
|
if (rate_n_flags & RATE_MCS_SGI_MSK)
|
|
|
rx_status.flag |= RX_FLAG_SHORT_GI;
|
|
|
|
|
|
+ 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 = il->_4965.ampdu_ref;
|
|
|
+ }
|
|
|
+
|
|
|
il4965_pass_packet_to_mac80211(il, header, len, ampdu_status, rxb,
|
|
|
&rx_status);
|
|
|
}
|
|
@@ -736,6 +746,7 @@ il4965_hdl_rx_phy(struct il_priv *il, struct il_rx_buf *rxb)
|
|
|
{
|
|
|
struct il_rx_pkt *pkt = rxb_addr(rxb);
|
|
|
il->_4965.last_phy_res_valid = true;
|
|
|
+ il->_4965.ampdu_ref++;
|
|
|
memcpy(&il->_4965.last_phy_res, pkt->u.raw,
|
|
|
sizeof(struct il_rx_phy_res));
|
|
|
}
|