qcacmn: Update TID value in skb priority from the MPDU buffer

Update TID value in skb priority from the MPDU buffer.

Change-Id: I707190f0c3095b4c47bd4b3cffd4a94f5952939c
CRs-Fixed: 3037067
This commit is contained in:
Sai Rupesh Chevuru
2021-09-15 10:18:25 +05:30
committed by Madan Koyyalamudi
parent 5479ef4492
commit ba3f9c04c8
3 changed files with 23 additions and 8 deletions

View File

@@ -129,6 +129,16 @@
RX_MPDU_DESC_INFO_BAR_FRAME_MASK) >> \
RX_MPDU_DESC_INFO_BAR_FRAME_LSB)
#define HAL_RX_MPDU_TID_GET(mpdu_info_ptr) \
((mpdu_info_ptr[RX_MPDU_DESC_INFO_TID_OFFSET >> 2] & \
RX_MPDU_DESC_INFO_TID_MASK) >> \
RX_MPDU_DESC_INFO_TID_LSB)
#define HAL_RX_MPDU_MPDU_QOS_CONTROL_VALID_GET(mpdu_info_ptr) \
((mpdu_info_ptr[RX_MPDU_DESC_INFO_MPDU_QOS_CONTROL_VALID_OFFSET >> 2] &\
RX_MPDU_DESC_INFO_MPDU_QOS_CONTROL_VALID_MASK) >> \
RX_MPDU_DESC_INFO_MPDU_QOS_CONTROL_VALID_LSB)
/*
* NOTE: None of the following _GET macros need a right
* shift by the corresponding _LSB. This is because, they are
@@ -243,6 +253,9 @@ static inline uint32_t hal_rx_get_mpdu_flags(uint32_t *mpdu_info)
if (HAL_RX_MPDU_RAW_MPDU_GET(mpdu_info))
mpdu_flags |= HAL_MPDU_F_RAW_AMPDU;
if (HAL_RX_MPDU_MPDU_QOS_CONTROL_VALID_GET(mpdu_info))
mpdu_flags |= HAL_MPDU_F_QOS_CONTROL_VALID;
return mpdu_flags;
}
@@ -255,11 +268,6 @@ static inline uint32_t hal_rx_get_mpdu_flags(uint32_t *mpdu_info)
REO_DESTINATION_RING_REO_DEST_BUFFER_TYPE_MASK) >> \
REO_DESTINATION_RING_REO_DEST_BUFFER_TYPE_LSB)
#define HAL_RX_REO_QUEUE_NUMBER_GET(reo_desc) (((*(((uint32_t *)reo_desc) + \
(REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_TID_OFFSET >> 2))) & \
REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_TID_MASK) >> \
REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_TID_LSB)
#define HAL_RX_REO_ERROR_GET(reo_desc) (((*(((uint32_t *)reo_desc) + \
(REO_DESTINATION_RING_REO_ERROR_CODE_OFFSET >> 2))) & \
REO_DESTINATION_RING_REO_ERROR_CODE_MASK) >> \
@@ -396,6 +404,7 @@ void hal_rx_mpdu_desc_info_get_be(void *desc_addr,
mpdu_desc_info->peer_meta_data =
HAL_RX_MPDU_DESC_PEER_META_DATA_GET(mpdu_info);
mpdu_desc_info->bar_frame = HAL_RX_MPDU_BAR_FRAME_GET(mpdu_info);
mpdu_desc_info->tid = HAL_RX_MPDU_TID_GET(mpdu_info);
}
/*

View File

@@ -216,6 +216,7 @@ enum hal_rx_msdu_desc_flags {
* [3] raw_ampdu
* @peer_meta_data: Upper bits containing peer id, vdev id
* @bar_frame: indicates if received frame is a bar frame
* @tid: tid value of received MPDU
*/
struct hal_rx_mpdu_desc_info {
uint16_t msdu_count;
@@ -223,6 +224,8 @@ struct hal_rx_mpdu_desc_info {
uint32_t mpdu_flags;
uint32_t peer_meta_data; /* sw progamed meta-data:MAC Id & peer Id */
uint16_t bar_frame;
uint8_t tid:4,
reserved:4;
};
/**
@@ -232,12 +235,14 @@ struct hal_rx_mpdu_desc_info {
* @ HAL_MPDU_F_RETRY_BIT: Retry bit is set in FC of MPDU
* @ HAL_MPDU_F_AMPDU_FLAG: MPDU received as part of A-MPDU
* @ HAL_MPDU_F_RAW_AMPDU: MPDU is a Raw MDPU
* @ HAL_MPDU_F_QOS_CONTROL_VALID: MPDU has a QoS control field
*/
enum hal_rx_mpdu_desc_flags {
HAL_MPDU_F_FRAGMENT = (0x1 << 20),
HAL_MPDU_F_RETRY_BIT = (0x1 << 21),
HAL_MPDU_F_AMPDU_FLAG = (0x1 << 22),
HAL_MPDU_F_RAW_AMPDU = (0x1 << 30)
HAL_MPDU_F_RAW_AMPDU = (0x1 << 30),
HAL_MPDU_F_QOS_CONTROL_VALID = (0x1 << 31)
};
/* Return Buffer manager ID */