qcacmn: Hook checksum offload INI key to DP TX path

Enable or disable TCP\UCP checksum offload for TX according
to the flag in wlan cfg module, which is determined by INI
(MCL) or initialization setting(WIN).

CRs-Fixed: 2155236
Change-Id: I0e30fc062a000c2d9c47674fe80da59a2ac0de51
This commit is contained in:
chenguo
2017-12-01 19:35:53 +08:00
committed by snandini
parent 4c1468fb23
commit 8d0c219dde
3 changed files with 19 additions and 2 deletions

View File

@@ -828,8 +828,10 @@ static QDF_STATUS dp_tx_hw_enqueue(struct dp_soc *soc, struct dp_vdev *vdev,
hal_tx_desc_set_addr_search_flags(hal_tx_desc_cached,
vdev->hal_desc_addr_search_flags);
if ((qdf_nbuf_get_tx_cksum(tx_desc->nbuf) == QDF_NBUF_TX_CKSUM_TCP_UDP)
|| qdf_nbuf_is_tso(tx_desc->nbuf)) {
/* verify checksum offload configuration*/
if ((wlan_cfg_get_checksum_offload(soc->wlan_cfg_ctx)) &&
((qdf_nbuf_get_tx_cksum(tx_desc->nbuf) == QDF_NBUF_TX_CKSUM_TCP_UDP)
|| qdf_nbuf_is_tso(tx_desc->nbuf))) {
hal_tx_desc_set_l3_checksum_en(hal_tx_desc_cached, 1);
hal_tx_desc_set_l4_checksum_en(hal_tx_desc_cached, 1);
}

View File

@@ -348,6 +348,8 @@ struct wlan_cfg_dp_soc_ctxt *wlan_cfg_soc_attach()
wlan_cfg_set_hw_macid(wlan_cfg_ctx, 2, 2);
wlan_cfg_ctx->base_hw_macid = 1;
/*Enable checksum offload by default*/
wlan_cfg_ctx->tcp_udp_checksumoffload = 1;
return wlan_cfg_ctx;
}
@@ -690,6 +692,11 @@ int wlan_cfg_get_int_timer_threshold_other(struct wlan_cfg_dp_soc_ctxt *cfg)
{
return cfg->int_timer_threshold_other;
}
int wlan_cfg_get_checksum_offload(struct wlan_cfg_dp_soc_ctxt *cfg)
{
return cfg->tcp_udp_checksumoffload;
}
#ifdef QCA_LL_TX_FLOW_CONTROL_V2
/**
* wlan_cfg_get_tx_flow_stop_queue_th() - Get flow control stop threshold

View File

@@ -626,6 +626,14 @@ int wlan_cfg_get_int_batch_threshold_other(struct wlan_cfg_dp_soc_ctxt *cfg);
*/
int wlan_cfg_get_int_timer_threshold_other(struct wlan_cfg_dp_soc_ctxt *cfg);
/*
* wlan_cfg_get_checksum_offload - Get checksum offload enable or disable status
* @wlan_cfg_soc_ctx
*
* Return: Checksum offload enable or disable
*/
int wlan_cfg_get_checksum_offload(struct wlan_cfg_dp_soc_ctxt *cfg);
/*
* wlan_cfg_tx_ring_size - Get Tx DMA ring size (TCL Data Ring)
* @wlan_cfg_soc_ctx