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
|
* @param pdev - handle to the physical device
|
||||||
*/
|
*/
|
||||||
unsigned int ol_cfg_ipa_uc_tx_partition_base(ol_pdev_handle pdev);
|
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
|
#else
|
||||||
static inline unsigned int ol_cfg_ipa_uc_offload_enabled(
|
static inline unsigned int ol_cfg_ipa_uc_offload_enabled(
|
||||||
ol_pdev_handle pdev)
|
ol_pdev_handle pdev)
|
||||||
@@ -546,6 +547,12 @@ static inline unsigned int ol_cfg_ipa_uc_tx_partition_base(
|
|||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void ol_cfg_set_ipa_uc_tx_partition_base(
|
||||||
|
ol_pdev_handle pdev, uint32_t value)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
#endif /* IPA_OFFLOAD */
|
#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;
|
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||||
return cfg->ipa_uc_rsc.tx_partition_base;
|
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 */
|
#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;
|
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_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_SET_HDR(&tgt_cfg.tlv_header,
|
||||||
WMITLV_TAG_STRUC_wmi_resource_config,
|
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))
|
if (WMI_SERVICE_IS_ENABLED(wh->wmi_service_bitmap, WMI_SERVICE_RTT))
|
||||||
g_fw_wlan_feat_caps |= (1 << 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.
|
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||||
*
|
*
|
||||||
@@ -113,8 +113,21 @@ enum htt_pkt_type {
|
|||||||
htt_pkt_num_types
|
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_HOST_MSDU_ID_SPACE_BEGIN 0
|
||||||
#define HTT_TX_IPA_MSDU_ID_SPACE_BEGIN 3000
|
#define HTT_TX_IPA_MSDU_ID_SPACE_BEGIN 3000
|
||||||
#define TGT_RX2TX_MSDU_ID_SPACE_BEGIN 6000
|
#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_ */
|
#endif /* _HTT_COMMON_H_ */
|
||||||
|
Reference in New Issue
Block a user