qcacmn: Separate GetFrameControl API's for LI chipsets
For 802.11 Fragmented frames, currently there is a generic GetFrameControl API from RX TLV for all Li Chipsets. As the offset for frame control in RX TLV is different for QCN9000 and QCA8074V2, reading the frame control with generic API gives wrong frame control value. The Offset is different as the size of RX_MSDU_START struct is 8DWORDS in QCA8074v2 while it is 9DWORDS in QCA9000. In the reo reinject path the destination queue descriptor address read from ring descriptor address is Invalid Fix is Separating out the GetFrameControl API from generic API to Chip specific API. Also fix the reading of queue descriptor address. CRs-Fixed: 3280809 change-Id: Ifc5eca31b9b7e70c84ca455d56a58c27601cd51d
This commit is contained in:

committed by
Madan Koyyalamudi

parent
1a5b0d838e
commit
a16d867018
@@ -2635,4 +2635,22 @@ hal_rx_fst_get_fse_size_li(void)
|
||||
return 0;
|
||||
}
|
||||
#endif /* WLAN_SUPPORT_RX_FISA */
|
||||
|
||||
/**
|
||||
* hal_rx_get_frame_ctrl_field(): Function to retrieve frame control field
|
||||
*
|
||||
* @nbuf: Network buffer
|
||||
* Returns: rx more fragment bit
|
||||
*
|
||||
*/
|
||||
static uint16_t hal_rx_get_frame_ctrl_field_li(uint8_t *buf)
|
||||
{
|
||||
struct rx_pkt_tlvs *pkt_tlvs = hal_rx_get_pkt_tlvs(buf);
|
||||
struct rx_mpdu_info *rx_mpdu_info = hal_rx_get_mpdu_info(pkt_tlvs);
|
||||
uint16_t frame_ctrl = 0;
|
||||
|
||||
frame_ctrl = HAL_RX_MPDU_GET_FRAME_CONTROL_FIELD(rx_mpdu_info);
|
||||
|
||||
return frame_ctrl;
|
||||
}
|
||||
#endif /* _HAL_LI_GENERIC_API_H_ */
|
||||
|
Reference in New Issue
Block a user