ath10k: enable wlan hardware checksum for wcn3990
Add checksum offload flag for the TCP/UDP packet in Tx path for the wcn3990 wlan module hardware. CRs-Fixed: 2015363 Change-Id: Icd47de8633bb2375c43c5acdf730a0082bfc1b88 Signed-off-by: Rakesh Pillai <pillair@codeaurora.org>
This commit is contained in:
parent
048c70075f
commit
836015bad3
3 changed files with 22 additions and 5 deletions
|
@ -122,6 +122,19 @@ struct htt_msdu_ext_desc {
|
||||||
| HTT_MSDU_EXT_DESC_FLAG_TCP_IPV4_CSUM_ENABLE \
|
| HTT_MSDU_EXT_DESC_FLAG_TCP_IPV4_CSUM_ENABLE \
|
||||||
| HTT_MSDU_EXT_DESC_FLAG_TCP_IPV6_CSUM_ENABLE)
|
| HTT_MSDU_EXT_DESC_FLAG_TCP_IPV6_CSUM_ENABLE)
|
||||||
|
|
||||||
|
#define HTT_TX_IPV4_CSUM_EN BIT(16)
|
||||||
|
#define HTT_TX_UDP_IPV4_CSUM_EN BIT(17)
|
||||||
|
#define HTT_TX_UDP_IPV6_CSUM_EN BIT(18)
|
||||||
|
#define HTT_TX_TCP_IPV4_CSUM_EN BIT(19)
|
||||||
|
#define HTT_TX_TCP_IPV6_CSUM_EN BIT(20)
|
||||||
|
#define HTT_TX_PARTIAL_CSUM_EN BIT(21)
|
||||||
|
|
||||||
|
#define HTT_TX_CHECKSUM_ENABLE (HTT_TX_IPV4_CSUM_EN \
|
||||||
|
| HTT_TX_UDP_IPV4_CSUM_EN \
|
||||||
|
| HTT_TX_UDP_IPV6_CSUM_EN \
|
||||||
|
| HTT_TX_TCP_IPV4_CSUM_EN \
|
||||||
|
| HTT_TX_TCP_IPV6_CSUM_EN)
|
||||||
|
|
||||||
enum htt_data_tx_desc_flags0 {
|
enum htt_data_tx_desc_flags0 {
|
||||||
HTT_DATA_TX_DESC_FLAGS0_MAC_HDR_PRESENT = 1 << 0,
|
HTT_DATA_TX_DESC_FLAGS0_MAC_HDR_PRESENT = 1 << 0,
|
||||||
HTT_DATA_TX_DESC_FLAGS0_NO_AGGR = 1 << 1,
|
HTT_DATA_TX_DESC_FLAGS0_NO_AGGR = 1 << 1,
|
||||||
|
|
|
@ -1051,8 +1051,14 @@ int ath10k_htt_tx(struct ath10k_htt *htt, enum ath10k_hw_txrx_mode txmode,
|
||||||
!test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags)) {
|
!test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags)) {
|
||||||
flags1 |= HTT_DATA_TX_DESC_FLAGS1_CKSUM_L3_OFFLOAD;
|
flags1 |= HTT_DATA_TX_DESC_FLAGS1_CKSUM_L3_OFFLOAD;
|
||||||
flags1 |= HTT_DATA_TX_DESC_FLAGS1_CKSUM_L4_OFFLOAD;
|
flags1 |= HTT_DATA_TX_DESC_FLAGS1_CKSUM_L4_OFFLOAD;
|
||||||
if (ar->hw_params.continuous_frag_desc)
|
if (ar->hw_params.continuous_frag_desc) {
|
||||||
ext_desc->flags |= HTT_MSDU_CHECKSUM_ENABLE;
|
ext_desc->flags |= HTT_MSDU_CHECKSUM_ENABLE;
|
||||||
|
if (QCA_REV_WCN3990(ar)) {
|
||||||
|
memset(ext_desc->tso_flag, 0,
|
||||||
|
sizeof(ext_desc->tso_flag));
|
||||||
|
ext_desc->tso_flag[3] |= HTT_TX_CHECKSUM_ENABLE;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Prevent firmware from sending up tx inspection requests. There's
|
/* Prevent firmware from sending up tx inspection requests. There's
|
||||||
|
|
|
@ -7998,10 +7998,8 @@ int ath10k_mac_register(struct ath10k *ar)
|
||||||
goto err_free;
|
goto err_free;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!QCA_REV_WCN3990(ar)) {
|
if (!test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags))
|
||||||
if (!test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags))
|
ar->hw->netdev_features = NETIF_F_HW_CSUM;
|
||||||
ar->hw->netdev_features = NETIF_F_HW_CSUM;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IS_ENABLED(CONFIG_ATH10K_DFS_CERTIFIED)) {
|
if (IS_ENABLED(CONFIG_ATH10K_DFS_CERTIFIED)) {
|
||||||
/* Init ath dfs pattern detector */
|
/* Init ath dfs pattern detector */
|
||||||
|
|
Loading…
Add table
Reference in a new issue