Merge "ath10k: enable wlan hardware checksum for wcn3990"

This commit is contained in:
Linux Build Service Account 2017-04-25 21:48:57 -07:00 committed by Gerrit - the friendly Code Review server
commit ce6271aa37
3 changed files with 22 additions and 5 deletions

View file

@ -122,6 +122,19 @@ struct htt_msdu_ext_desc {
| HTT_MSDU_EXT_DESC_FLAG_TCP_IPV4_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 {
HTT_DATA_TX_DESC_FLAGS0_MAC_HDR_PRESENT = 1 << 0,
HTT_DATA_TX_DESC_FLAGS0_NO_AGGR = 1 << 1,

View file

@ -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)) {
flags1 |= HTT_DATA_TX_DESC_FLAGS1_CKSUM_L3_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;
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

View file

@ -7998,10 +7998,8 @@ int ath10k_mac_register(struct ath10k *ar)
goto err_free;
}
if (!QCA_REV_WCN3990(ar)) {
if (!test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags))
ar->hw->netdev_features = NETIF_F_HW_CSUM;
}
if (!test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags))
ar->hw->netdev_features = NETIF_F_HW_CSUM;
if (IS_ENABLED(CONFIG_ATH10K_DFS_CERTIFIED)) {
/* Init ath dfs pattern detector */