mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-15 09:14:18 -04:00
qcacmn: Add Indication for MSDU or MPDU level aggregation
populate flags for MPDU or MSDU level aggregation in mon_rx_status structure. Change-Id: I5d8d026a42ffef9e95f579178b4f8cdc581699ec
This commit is contained in:
parent
5aa8c07392
commit
4d36b32991
2 changed files with 33 additions and 0 deletions
|
|
@ -118,6 +118,24 @@
|
|||
#define HAL_TID_INVALID 31
|
||||
#define HAL_AST_IDX_INVALID 0xFFFF
|
||||
|
||||
#ifdef GET_MSDU_AGGREGATION
|
||||
#define HAL_RX_GET_MSDU_AGGREGATION(rx_desc, rs)\
|
||||
{\
|
||||
struct rx_msdu_end *rx_msdu_end;\
|
||||
bool first_msdu, last_msdu; \
|
||||
rx_msdu_end = &rx_desc->msdu_end_tlv.rx_msdu_end;\
|
||||
first_msdu = HAL_RX_GET(rx_msdu_end, RX_MSDU_END_5, FIRST_MSDU);\
|
||||
last_msdu = HAL_RX_GET(rx_msdu_end, RX_MSDU_END_5, LAST_MSDU);\
|
||||
if (first_msdu && last_msdu)\
|
||||
rs->rs_flags &= (~IEEE80211_AMSDU_FLAG);\
|
||||
else\
|
||||
rs->rs_flags |= (IEEE80211_AMSDU_FLAG); \
|
||||
} \
|
||||
|
||||
#else
|
||||
#define HAL_RX_GET_MSDU_AGGREGATION(rx_desc, rs)
|
||||
#endif
|
||||
|
||||
enum {
|
||||
HAL_HW_RX_DECAP_FORMAT_RAW = 0,
|
||||
HAL_HW_RX_DECAP_FORMAT_NWIFI,
|
||||
|
|
@ -391,6 +409,7 @@ void hal_rx_mon_hw_desc_get_mpdu_status(void *hw_desc_addr,
|
|||
};
|
||||
|
||||
rx_msdu_start = &rx_desc->msdu_start_tlv.rx_msdu_start;
|
||||
HAL_RX_GET_MSDU_AGGREGATION(rx_desc, rs);
|
||||
|
||||
rs->ant_signal_db = HAL_RX_GET(rx_msdu_start,
|
||||
RX_MSDU_START_5, USER_RSSI);
|
||||
|
|
@ -572,6 +591,12 @@ hal_rx_status_get_tlv_info(void *rx_tlv, struct hal_rx_ppdu_info *ppdu_info)
|
|||
ppdu_info->com_info.mpdu_cnt_fcs_err =
|
||||
HAL_RX_GET(rx_tlv, RX_PPDU_END_USER_STATS_2,
|
||||
MPDU_CNT_FCS_ERR);
|
||||
if ((ppdu_info->com_info.mpdu_cnt_fcs_ok |
|
||||
ppdu_info->com_info.mpdu_cnt_fcs_err) > 1)
|
||||
ppdu_info->rx_status.rs_flags |= IEEE80211_AMPDU_FLAG;
|
||||
else
|
||||
ppdu_info->rx_status.rs_flags &=
|
||||
(~IEEE80211_AMPDU_FLAG);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -119,6 +119,12 @@
|
|||
#define TSO_DEBUG(fmt, args ...)
|
||||
#endif
|
||||
|
||||
#define IEEE80211_AMPDU_FLAG 0x01
|
||||
|
||||
#ifdef GET_MSDU_AGGREGATION
|
||||
#define IEEE80211_AMSDU_FLAG 0x02
|
||||
#endif
|
||||
|
||||
/**
|
||||
* struct mon_rx_status - This will have monitor mode rx_status extracted from
|
||||
* htt_rx_desc used later to update radiotap information.
|
||||
|
|
@ -161,6 +167,7 @@
|
|||
* @ast_index: AST table hash index
|
||||
* @tid: QoS traffic tid number
|
||||
* @rs_fcs_err: FCS error flag
|
||||
* @rs_flags: Flags to indicate AMPDU or AMSDU aggregation
|
||||
* @he_per_user_1: HE per user info1
|
||||
* @he_per_user_2: HE per user info2
|
||||
* @he_per_user_position: HE per user position info
|
||||
|
|
@ -224,6 +231,7 @@ struct mon_rx_status {
|
|||
uint32_t ast_index;
|
||||
uint32_t tid;
|
||||
uint8_t rs_fcs_err;
|
||||
uint8_t rs_flags;
|
||||
/* New HE radiotap fields */
|
||||
uint16_t he_per_user_1;
|
||||
uint16_t he_per_user_2;
|
||||
|
|
|
|||
Loading…
Reference in a new issue