qcacld-3.0: Support bigger Tx MSDU ID partition
When both host and FW support a new partition, FW uses host use the new parition HTT_TX_IPA_NEW_MSDU_ID_SPACE_BEGIN. If FW doesn't support a new partition, host falls back to use old HTT_TX_IPA_MSDU_ID_SPACE_BEGIN. Handshaking is done through WMI_READY and WMI_INIT. Change-Id: I974c931e1b4b2d84e809ec19537a09b679932568 CRs-Fixed: 1072812
This commit is contained in:
@@ -516,6 +516,7 @@ unsigned int ol_cfg_ipa_uc_rx_ind_ring_size(ol_pdev_handle pdev);
|
||||
* @param pdev - handle to the physical device
|
||||
*/
|
||||
unsigned int ol_cfg_ipa_uc_tx_partition_base(ol_pdev_handle pdev);
|
||||
void ol_cfg_set_ipa_uc_tx_partition_base(ol_pdev_handle pdev, uint32_t value);
|
||||
#else
|
||||
static inline unsigned int ol_cfg_ipa_uc_offload_enabled(
|
||||
ol_pdev_handle pdev)
|
||||
@@ -546,6 +547,12 @@ static inline unsigned int ol_cfg_ipa_uc_tx_partition_base(
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void ol_cfg_set_ipa_uc_tx_partition_base(
|
||||
ol_pdev_handle pdev, uint32_t value)
|
||||
{
|
||||
return;
|
||||
}
|
||||
#endif /* IPA_OFFLOAD */
|
||||
|
||||
/**
|
||||
|
@@ -403,6 +403,12 @@ unsigned int ol_cfg_ipa_uc_tx_partition_base(ol_pdev_handle pdev)
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
return cfg->ipa_uc_rsc.tx_partition_base;
|
||||
}
|
||||
|
||||
void ol_cfg_set_ipa_uc_tx_partition_base(ol_pdev_handle pdev, uint32_t val)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
cfg->ipa_uc_rsc.tx_partition_base = val;
|
||||
}
|
||||
#endif /* IPA_OFFLOAD */
|
||||
|
||||
/**
|
||||
|
@@ -241,6 +241,8 @@ static void wma_set_default_tgt_config(tp_wma_handle wma_handle)
|
||||
tgt_cfg.scan_max_pending_req = wma_handle->max_scan;
|
||||
|
||||
WMI_RSRC_CFG_FLAG_MGMT_COMP_EVT_BUNDLE_SUPPORT_SET(tgt_cfg.flag1, 1);
|
||||
WMI_RSRC_CFG_FLAG_TX_MSDU_ID_NEW_PARTITION_SUPPORT_SET(tgt_cfg.flag1,
|
||||
1);
|
||||
|
||||
WMITLV_SET_HDR(&tgt_cfg.tlv_header,
|
||||
WMITLV_TAG_STRUC_wmi_resource_config,
|
||||
@@ -3723,6 +3725,21 @@ static inline void wma_update_target_services(tp_wma_handle wh,
|
||||
|
||||
if (WMI_SERVICE_IS_ENABLED(wh->wmi_service_bitmap, WMI_SERVICE_RTT))
|
||||
g_fw_wlan_feat_caps |= (1 << RTT);
|
||||
|
||||
if (WMI_SERVICE_IS_ENABLED(wh->wmi_service_bitmap,
|
||||
WMI_SERVICE_TX_MSDU_ID_NEW_PARTITION_SUPPORT)) {
|
||||
ol_cfg_set_ipa_uc_tx_partition_base((ol_pdev_handle)
|
||||
((p_cds_contextType) wh->cds_context)->cfg_ctx,
|
||||
HTT_TX_IPA_NEW_MSDU_ID_SPACE_BEGIN);
|
||||
WMA_LOGI("%s: TX_MSDU_ID_NEW_PARTITION=%d", __func__,
|
||||
HTT_TX_IPA_NEW_MSDU_ID_SPACE_BEGIN);
|
||||
} else {
|
||||
ol_cfg_set_ipa_uc_tx_partition_base((ol_pdev_handle)
|
||||
((p_cds_contextType) wh->cds_context)->cfg_ctx,
|
||||
HTT_TX_IPA_MSDU_ID_SPACE_BEGIN);
|
||||
WMA_LOGI("%s: TX_MSDU_ID_OLD_PARTITION=%d", __func__,
|
||||
HTT_TX_IPA_MSDU_ID_SPACE_BEGIN);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2012-2015 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2012-2016 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||
*
|
||||
@@ -113,8 +113,21 @@ enum htt_pkt_type {
|
||||
htt_pkt_num_types
|
||||
};
|
||||
|
||||
/*
|
||||
* TX MSDU ID partition -
|
||||
* FW supports bigger MSDU ID partition which is defined as
|
||||
* HTT_TX_IPA_NEW_MSDU_ID_SPACE_BEGIN
|
||||
* When both host and FW support new partition, FW uses
|
||||
* HTT_TX_IPA_NEW_MSDU_ID_SPACE_BEGIN
|
||||
* If host doesn't support, FW falls back to HTT_TX_IPA_MSDU_ID_SPACE_BEGIN
|
||||
* Handshaking is done through WMI_READY and WMI_INIT
|
||||
*/
|
||||
#define HTT_TX_HOST_MSDU_ID_SPACE_BEGIN 0
|
||||
#define HTT_TX_IPA_MSDU_ID_SPACE_BEGIN 3000
|
||||
#define TGT_RX2TX_MSDU_ID_SPACE_BEGIN 6000
|
||||
/* 8192 = 0xr2000 */
|
||||
#define HTT_TX_IPA_NEW_MSDU_ID_SPACE_BEGIN 8192
|
||||
/* 12288 = 0x3000 */
|
||||
#define TGT_RX2TX_NEW_MSDU_ID_SPACE_BEGIN 12288
|
||||
|
||||
#endif /* _HTT_COMMON_H_ */
|
||||
|
Viittaa uudesa ongelmassa
Block a user