mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 23:24:22 -04:00
qcacmn: Add support for DP RX checksum offload
add support for TCP, UDP and IP checksum offload in RX path Change-Id: Id148523419cc48d094e100f51d39e6f95b21928f
This commit is contained in:
parent
dbaf4bed59
commit
105038008d
2 changed files with 61 additions and 0 deletions
|
|
@ -1131,6 +1131,17 @@ done:
|
|||
}
|
||||
|
||||
pdev = vdev->pdev;
|
||||
if (qdf_likely(
|
||||
!hal_rx_attn_tcp_udp_cksum_fail_get(rx_tlv_hdr)
|
||||
&&
|
||||
!hal_rx_attn_ip_cksum_fail_get(rx_tlv_hdr))) {
|
||||
qdf_nbuf_rx_cksum_t cksum = {0};
|
||||
|
||||
cksum.l4_result =
|
||||
QDF_NBUF_RX_CKSUM_TCP_UDP_UNNECESSARY;
|
||||
|
||||
qdf_nbuf_set_rx_cksum(nbuf, &cksum);
|
||||
}
|
||||
|
||||
sgi = hal_rx_msdu_start_sgi_get(rx_tlv_hdr);
|
||||
mcs = hal_rx_msdu_start_rate_mcs_get(rx_tlv_hdr);
|
||||
|
|
|
|||
|
|
@ -683,6 +683,56 @@ hal_rx_attn_first_mpdu_get(uint8_t *buf)
|
|||
return first_mpdu;
|
||||
}
|
||||
|
||||
#define HAL_RX_ATTN_TCP_UDP_CKSUM_FAIL_GET(_rx_attn) \
|
||||
(_HAL_MS((*_OFFSET_TO_WORD_PTR(_rx_attn, \
|
||||
RX_ATTENTION_1_TCP_UDP_CHKSUM_FAIL_OFFSET)), \
|
||||
RX_ATTENTION_1_TCP_UDP_CHKSUM_FAIL_MASK, \
|
||||
RX_ATTENTION_1_TCP_UDP_CHKSUM_FAIL_LSB))
|
||||
|
||||
/*
|
||||
* hal_rx_attn_tcp_udp_cksum_fail_get(): get tcp_udp cksum fail bit
|
||||
* from rx attention
|
||||
* @buf: pointer to rx_pkt_tlvs
|
||||
*
|
||||
* Return: tcp_udp_cksum_fail
|
||||
*/
|
||||
static inline bool
|
||||
hal_rx_attn_tcp_udp_cksum_fail_get(uint8_t *buf)
|
||||
{
|
||||
struct rx_pkt_tlvs *pkt_tlvs = (struct rx_pkt_tlvs *)buf;
|
||||
struct rx_attention *rx_attn = &pkt_tlvs->attn_tlv.rx_attn;
|
||||
bool tcp_udp_cksum_fail;
|
||||
|
||||
tcp_udp_cksum_fail = HAL_RX_ATTN_TCP_UDP_CKSUM_FAIL_GET(rx_attn);
|
||||
|
||||
return tcp_udp_cksum_fail;
|
||||
}
|
||||
|
||||
#define HAL_RX_ATTN_IP_CKSUM_FAIL_GET(_rx_attn) \
|
||||
(_HAL_MS((*_OFFSET_TO_WORD_PTR(_rx_attn, \
|
||||
RX_ATTENTION_1_IP_CHKSUM_FAIL_OFFSET)), \
|
||||
RX_ATTENTION_1_IP_CHKSUM_FAIL_MASK, \
|
||||
RX_ATTENTION_1_IP_CHKSUM_FAIL_LSB))
|
||||
|
||||
/*
|
||||
* hal_rx_attn_ip_cksum_fail_get(): get ip cksum fail bit
|
||||
* from rx attention
|
||||
* @buf: pointer to rx_pkt_tlvs
|
||||
*
|
||||
* Return: ip_cksum_fail
|
||||
*/
|
||||
static inline bool
|
||||
hal_rx_attn_ip_cksum_fail_get(uint8_t *buf)
|
||||
{
|
||||
struct rx_pkt_tlvs *pkt_tlvs = (struct rx_pkt_tlvs *)buf;
|
||||
struct rx_attention *rx_attn = &pkt_tlvs->attn_tlv.rx_attn;
|
||||
bool ip_cksum_fail;
|
||||
|
||||
ip_cksum_fail = HAL_RX_ATTN_IP_CKSUM_FAIL_GET(rx_attn);
|
||||
|
||||
return ip_cksum_fail;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get peer_meta_data from RX_MPDU_INFO within RX_MPDU_START
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in a new issue