qcacmn: Add INI support for packet log buffer size
Add INI parameter "PacketLogBufSize" to populate packet log buffer size. Change-Id: Ic9b963a88a6f6d884d5fa3a63b4fed6768ba2fc4 CRs-Fixed: 2611409
This commit is contained in:
@@ -585,10 +585,14 @@ static void pktlog_callback_registration(uint8_t callback_type)
|
||||
}
|
||||
#endif
|
||||
|
||||
#define ONE_MEGABYTE (1024 * 1024)
|
||||
|
||||
void pktlog_init(struct hif_opaque_softc *scn)
|
||||
{
|
||||
struct pktlog_dev_t *pl_dev = get_pktlog_handle();
|
||||
struct ath_pktlog_info *pl_info;
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
uint32_t buff_size;
|
||||
|
||||
if (!pl_dev || !pl_dev->pl_info) {
|
||||
qdf_print("pl_dev or pl_info is invalid");
|
||||
@@ -601,7 +605,9 @@ void pktlog_init(struct hif_opaque_softc *scn)
|
||||
PKTLOG_LOCK_INIT(pl_info);
|
||||
mutex_init(&pl_info->pktlog_mutex);
|
||||
|
||||
pl_info->buf_size = PKTLOG_DEFAULT_BUFSIZE;
|
||||
buff_size = cdp_cfg_get(soc, cfg_dp_pktlog_buffer_size) * ONE_MEGABYTE;
|
||||
|
||||
pl_info->buf_size = (buff_size ? buff_size : ONE_MEGABYTE);
|
||||
pl_info->buf = NULL;
|
||||
pl_info->log_state = 0;
|
||||
pl_info->init_saved_state = 0;
|
||||
@@ -780,14 +786,14 @@ int pktlog_enable(struct hif_opaque_softc *scn, int32_t log_state,
|
||||
return err;
|
||||
}
|
||||
|
||||
#define ONE_MEGABYTE (1024 * 1024)
|
||||
#define MAX_ALLOWED_PKTLOG_SIZE (64 * ONE_MEGABYTE)
|
||||
|
||||
static int __pktlog_setsize(struct hif_opaque_softc *scn, int32_t size)
|
||||
{
|
||||
struct pktlog_dev_t *pl_dev;
|
||||
struct ath_pktlog_info *pl_info;
|
||||
uint8_t pdev_id = WMI_PDEV_ID_SOC;
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
uint32_t buff_size;
|
||||
uint32_t max_allowed_buff_size;
|
||||
|
||||
pl_dev = get_pktlog_handle();
|
||||
|
||||
@@ -815,10 +821,13 @@ static int __pktlog_setsize(struct hif_opaque_softc *scn, int32_t size)
|
||||
|
||||
pl_info->curr_pkt_state = PKTLOG_OPR_IN_PROGRESS;
|
||||
|
||||
if (size < ONE_MEGABYTE || size > MAX_ALLOWED_PKTLOG_SIZE) {
|
||||
buff_size = cdp_cfg_get(soc, cfg_dp_pktlog_buffer_size) * ONE_MEGABYTE;
|
||||
max_allowed_buff_size = (buff_size ? buff_size : ONE_MEGABYTE);
|
||||
|
||||
if (size < ONE_MEGABYTE || size > max_allowed_buff_size) {
|
||||
qdf_print("%s: Cannot Set Pktlog Buffer size of %d bytes.Min required is %d MB and Max allowed is %d MB.",
|
||||
__func__, size, (ONE_MEGABYTE / ONE_MEGABYTE),
|
||||
(MAX_ALLOWED_PKTLOG_SIZE / ONE_MEGABYTE));
|
||||
(max_allowed_buff_size / ONE_MEGABYTE));
|
||||
pl_info->curr_pkt_state = PKTLOG_OPR_NOT_IN_PROGRESS;
|
||||
qdf_print("%s: Invalid requested buff size", __func__);
|
||||
return -EINVAL;
|
||||
|
@@ -316,6 +316,10 @@
|
||||
#define WLAN_CFG_RX_FLOW_SEARCH_TABLE_SIZE_MIN 1
|
||||
#define WLAN_CFG_RX_FLOW_SEARCH_TABLE_SIZE_MAX 16384
|
||||
|
||||
#define WLAN_CFG_PKTLOG_BUFFER_SIZE 10
|
||||
#define WLAN_CFG_PKTLOG_MIN_BUFFER_SIZE 1
|
||||
#define WLAN_CFG_PKTLOG_MAX_BUFFER_SIZE 10
|
||||
|
||||
/* DP INI Declerations */
|
||||
#define CFG_DP_HTT_PACKET_TYPE \
|
||||
CFG_INI_UINT("dp_htt_packet_type", \
|
||||
@@ -781,6 +785,13 @@
|
||||
#define CFG_DP_CONFIG_PKT_CAPTURE_MODE_ALL
|
||||
#endif /* WLAN_FEATURE_PKT_CAPTURE */
|
||||
|
||||
#define CFG_DP_PKTLOG_BUFFER_SIZE \
|
||||
CFG_INI_UINT("PktlogBufSize", \
|
||||
WLAN_CFG_PKTLOG_MIN_BUFFER_SIZE, \
|
||||
WLAN_CFG_PKTLOG_MAX_BUFFER_SIZE, \
|
||||
WLAN_CFG_PKTLOG_BUFFER_SIZE, \
|
||||
CFG_VALUE_OR_DEFAULT, "Packet Log buffer size")
|
||||
|
||||
#define CFG_DP \
|
||||
CFG(CFG_DP_HTT_PACKET_TYPE) \
|
||||
CFG(CFG_DP_INT_BATCH_THRESHOLD_OTHER) \
|
||||
@@ -852,6 +863,7 @@
|
||||
CFG(CFG_DP_RX_FLOW_SEARCH_TABLE_PER_PDEV) \
|
||||
CFG(CFG_DP_RX_MON_PROTOCOL_FLOW_TAG_ENABLE) \
|
||||
CFG(CFG_DP_RXDMA_MONITOR_RX_DROP_THRESHOLD) \
|
||||
CFG_DP_CONFIG_PKT_CAPTURE_MODE_ALL
|
||||
CFG_DP_CONFIG_PKT_CAPTURE_MODE_ALL \
|
||||
CFG(CFG_DP_PKTLOG_BUFFER_SIZE)
|
||||
|
||||
#endif /* _CFG_DP_H_ */
|
||||
|
@@ -473,6 +473,8 @@ wlan_cfg_soc_attach(struct cdp_ctrl_objmgr_psoc *psoc)
|
||||
cfg_get(psoc, CFG_DP_INT_BATCH_THRESHOLD_OTHER);
|
||||
wlan_cfg_ctx->int_timer_threshold_other =
|
||||
cfg_get(psoc, CFG_DP_INT_TIMER_THRESHOLD_OTHER);
|
||||
wlan_cfg_ctx->pktlog_buffer_size =
|
||||
cfg_get(psoc, CFG_DP_PKTLOG_BUFFER_SIZE);
|
||||
|
||||
/* This is default mapping and can be overridden by HW config
|
||||
* received from FW */
|
||||
|
@@ -179,6 +179,7 @@ struct wlan_srng_cfg {
|
||||
* @rx_flow_max_search: max skid length for each hash entry
|
||||
* @rx_toeplitz_hash_key: toeplitz key pointer used for hash computation over
|
||||
* 5 tuple flow entry
|
||||
* @pktlog_buffer_size: packet log buffer size
|
||||
*/
|
||||
struct wlan_cfg_dp_soc_ctxt {
|
||||
int num_int_ctxts;
|
||||
@@ -274,6 +275,7 @@ struct wlan_cfg_dp_soc_ctxt {
|
||||
uint16_t rx_flow_search_table_size;
|
||||
uint16_t rx_flow_max_search;
|
||||
uint8_t *rx_toeplitz_hash_key;
|
||||
uint8_t pktlog_buffer_size;
|
||||
};
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user