qcacmn: Add NAN TX checksum offload INI entry
Currently there is a single INI item tcp_udp_checksumoffload to enable or disable this feature for all the adapters. In some cases, we want to be able to enable this feature selectively for NAN mode. Add nan_tcp_udp_checksumoffload ini item to enable or disable checksum offload feature specifically for NAN mode. If nan_tcp_udp_checksumoffload is 'true' and tcp_udp_checksumoffload is false, hardware checksum offload will be enabled only for the NAN adapter and not for other adapters. CRs-Fixed: 2693638 Change-Id: I6e255ce68ddc7b01ebdefe4e5e8d2c985388fefe
此提交包含在:
@@ -1212,8 +1212,8 @@ static QDF_STATUS dp_tx_hw_enqueue(struct dp_soc *soc, struct dp_vdev *vdev,
|
||||
hal_tx_desc_set_to_fw(hal_tx_desc_cached, 1);
|
||||
|
||||
/* 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)
|
||||
if (vdev->csum_enabled &&
|
||||
((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);
|
||||
@@ -4015,6 +4015,26 @@ qdf_nbuf_t dp_tx_non_std(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
|
||||
}
|
||||
#endif
|
||||
|
||||
static void dp_tx_vdev_update_feature_flags(struct dp_vdev *vdev)
|
||||
{
|
||||
struct wlan_cfg_dp_soc_ctxt *cfg;
|
||||
|
||||
struct dp_soc *soc;
|
||||
|
||||
soc = vdev->pdev->soc;
|
||||
if (!soc)
|
||||
return;
|
||||
|
||||
cfg = soc->wlan_cfg_ctx;
|
||||
if (!cfg)
|
||||
return;
|
||||
|
||||
if (vdev->opmode == wlan_op_mode_ndi)
|
||||
vdev->csum_enabled = wlan_cfg_get_nan_checksum_offload(cfg);
|
||||
else
|
||||
vdev->csum_enabled = wlan_cfg_get_checksum_offload(cfg);
|
||||
}
|
||||
|
||||
/**
|
||||
* dp_tx_vdev_attach() - attach vdev to dp tx
|
||||
* @vdev: virtual device instance
|
||||
@@ -4046,6 +4066,8 @@ QDF_STATUS dp_tx_vdev_attach(struct dp_vdev *vdev)
|
||||
|
||||
dp_tx_vdev_update_search_flags(vdev);
|
||||
|
||||
dp_tx_vdev_update_feature_flags(vdev);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
新增問題並參考
封鎖使用者