qcacld-3.0: Memory optimize for QCS403 platform

Memory optimize for QCS403 platform, 1x1 chip. Reduce CE1 htt data
dest ring buffer from 512 to 256, reduce CE2 wmi dest ring buffer from
128 to 64, reduce CE9 & CE10 desg ring buffer from 512 to 64, disable
CE11 pktlog. Note: this change only affect specific WLAN build config for
extremely saving memory, for debug purose, there is another build
selecting default WLAN config for reference HW.

Change-Id: I868e74b09cdb11df3dccaa3f9e051da55724983d
CRs-Fixed: 2432631
This commit is contained in:
hangtian 2019-04-10 11:15:20 +08:00 • committed by nshrivas
commit 1c37fb9ccc
5 changed files with 31 additions and 2 deletions

3
Kbuild
View file

@ -2145,6 +2145,9 @@ cppflags-$(CONFIG_FEATURE_BECN_STATS) += -DWLAN_FEATURE_BEACON_RECEPTION_STATS
#Set RX_PERFORMANCE
cppflags-$(CONFIG_RX_PERFORMANCE) += -DRX_PERFORMANCE
#Set QCS403_MEM_OPTIMIZE
cppflags-$(CONFIG_QCS403_MEM_OPTIMIZE) += -DQCS403_MEM_OPTIMIZE
#Enable OL debug and wmi unified functions
cppflags-$(CONFIG_ATH_PERF_PWR_OFFLOAD) += -DATH_PERF_PWR_OFFLOAD

View file

@ -62,6 +62,7 @@ CONFIG_FEATURE_MONITOR_MODE_SUPPORT := n
CONFIG_DESC_DUP_DETECT_DEBUG := n
CONFIG_DEBUG_RX_RING_BUFFER := n
CONFIG_RX_PERFORMANCE := y
CONFIG_QCS403_MEM_OPTIMIZE := y
ifeq ($(CONFIG_INET_LRO), y)
CONFIG_WLAN_LRO := y
@ -87,7 +88,7 @@ CONFIG_FEATURE_TSO_DEBUG := y
CONFIG_MPC_UT_FRAMEWORK := n
CONFIG_FEATURE_EPPING := n
CONFIG_WLAN_NAPI_DEBUG := n
CONFIG_REMOVE_PKT_LOG := n
CONFIG_REMOVE_PKT_LOG := y
CONFIG_FEATURE_STATS_EXT := y
CONFIG_FEATURE_HTC_CREDIT_HISTORY := y
CONFIG_TRACE_RECORD_FEATURE := y

View file

@ -42,6 +42,13 @@ enum wlan_frm_fmt {
wlan_frm_fmt_802_3,
};
/* Max throughput */
#ifdef QCS403_MEM_OPTIMIZE
#define MAX_THROUGHPUT 400
#else
#define MAX_THROUGHPUT 800
#endif
/* Throttle period Different level Duty Cycle values*/
#define THROTTLE_DUTY_CYCLE_LEVEL0 (0)
#define THROTTLE_DUTY_CYCLE_LEVEL1 (50)

View file

@ -127,7 +127,7 @@ struct cdp_cfg *ol_pdev_cfg_attach(qdf_device_t osdev, void *pcfg_param)
cfg_ctx->max_vdev = CFG_TGT_NUM_VDEV;
cfg_ctx->pn_rx_fwd_check = 1;
cfg_ctx->frame_type = wlan_frm_fmt_802_3;
cfg_ctx->max_thruput_mbps = 800;
cfg_ctx->max_thruput_mbps = MAX_THROUGHPUT;
cfg_ctx->max_nbuf_frags = 1;
cfg_ctx->vow_config = vow_config;
cfg_ctx->target_tx_credit = CFG_TGT_NUM_MSDU_DESC;

View file

@ -150,6 +150,22 @@ static void hdd_hif_init_driver_state_callbacks(void *data,
cbk->is_target_ready = hdd_is_target_ready;
}
/**
* hdd_hif_set_attribute() - API to set CE attribute if memory is limited
* @hif_ctx: hif context
*
* Return: None
*/
#ifdef QCS403_MEM_OPTIMIZE
static void hdd_hif_set_attribute(struct hif_opaque_softc *hif_ctx)
{
hif_set_attribute(hif_ctx, HIF_LOWDESC_CE_NO_PKTLOG_CFG);
}
#else
static void hdd_hif_set_attribute(struct hif_opaque_softc *hif_ctx)
{}
#endif
/**
* hdd_init_cds_hif_context() - API to set CDS HIF Context
* @hif: HIF Context
@ -237,6 +253,8 @@ int hdd_hif_open(struct device *dev, void *bdev, const struct hif_bus_id *bid,
goto err_hif_close;
}
hdd_hif_set_attribute(hif_ctx);
status = hif_enable(hif_ctx, dev, bdev, bid, bus_type,
(reinit == true) ? HIF_ENABLE_TYPE_REINIT :
HIF_ENABLE_TYPE_PROBE);