qcacld-3.0: Enable pktlog based on bandwidth
Enable pktlog when bandwidth is less than PLD_BUS_WIDTH_MEDIUM and disable pktlog when bandwidth is greater than PLD_BUS_WIDTH_HIGH. Change-Id: I9ee979b08779397bc6d24aca8e241fd64eb93029 CRs-Fixed: 2525901
This commit is contained in:

committed by
nshrivas

parent
8ddafdf9c8
commit
f0296dde04
@@ -8725,6 +8725,14 @@ static int __wlan_hdd_cfg80211_wifi_logger_start(struct wiphy *wiphy,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (hdd_ctx->is_pktlog_enabled &&
|
||||||
|
(start_log.verbose_level == WLAN_LOG_LEVEL_ACTIVE))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if ((!hdd_ctx->is_pktlog_enabled) &&
|
||||||
|
(start_log.verbose_level != WLAN_LOG_LEVEL_ACTIVE))
|
||||||
|
return 0;
|
||||||
|
|
||||||
mac_handle = hdd_ctx->mac_handle;
|
mac_handle = hdd_ctx->mac_handle;
|
||||||
status = sme_wifi_start_logger(mac_handle, start_log);
|
status = sme_wifi_start_logger(mac_handle, start_log);
|
||||||
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
||||||
@@ -8732,6 +8740,12 @@ static int __wlan_hdd_cfg80211_wifi_logger_start(struct wiphy *wiphy,
|
|||||||
status);
|
status);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (start_log.verbose_level != WLAN_LOG_LEVEL_ACTIVE)
|
||||||
|
hdd_ctx->is_pktlog_enabled = true;
|
||||||
|
else
|
||||||
|
hdd_ctx->is_pktlog_enabled = false;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -8299,6 +8299,15 @@ static void hdd_pld_request_bus_bandwidth(struct hdd_context *hdd_ctx,
|
|||||||
hdd_disable_rx_ol_for_low_tput(hdd_ctx, true);
|
hdd_disable_rx_ol_for_low_tput(hdd_ctx, true);
|
||||||
else
|
else
|
||||||
hdd_disable_rx_ol_for_low_tput(hdd_ctx, false);
|
hdd_disable_rx_ol_for_low_tput(hdd_ctx, false);
|
||||||
|
|
||||||
|
if (hdd_ctx->is_pktlog_enabled) {
|
||||||
|
if (next_vote_level >= PLD_BUS_WIDTH_HIGH)
|
||||||
|
hdd_pktlog_enable_disable(hdd_ctx, false,
|
||||||
|
0, 0);
|
||||||
|
else
|
||||||
|
hdd_pktlog_enable_disable(hdd_ctx, true,
|
||||||
|
0, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
qdf_dp_trace_apply_tput_policy(dptrace_high_tput_req);
|
qdf_dp_trace_apply_tput_policy(dptrace_high_tput_req);
|
||||||
@@ -10741,21 +10750,29 @@ int hdd_process_pktlog_command(struct hdd_context *hdd_ctx, uint32_t set_value,
|
|||||||
/**
|
/**
|
||||||
* hdd_pktlog_enable_disable() - Enable/Disable packet logging
|
* hdd_pktlog_enable_disable() - Enable/Disable packet logging
|
||||||
* @hdd_ctx: HDD context
|
* @hdd_ctx: HDD context
|
||||||
* @enable: Flag to enable/disable
|
* @enable_disable_flag: Flag to enable/disable
|
||||||
* @user_triggered: triggered through iwpriv
|
* @user_triggered: triggered through iwpriv
|
||||||
* @size: buffer size to be used for packetlog
|
* @size: buffer size to be used for packetlog
|
||||||
*
|
*
|
||||||
* Return: 0 on success; error number otherwise
|
* Return: 0 on success; error number otherwise
|
||||||
*/
|
*/
|
||||||
int hdd_pktlog_enable_disable(struct hdd_context *hdd_ctx, bool enable,
|
int hdd_pktlog_enable_disable(struct hdd_context *hdd_ctx,
|
||||||
|
bool enable_disable_flag,
|
||||||
uint8_t user_triggered, int size)
|
uint8_t user_triggered, int size)
|
||||||
{
|
{
|
||||||
struct sir_wifi_start_log start_log;
|
struct sir_wifi_start_log start_log;
|
||||||
QDF_STATUS status;
|
QDF_STATUS status;
|
||||||
|
|
||||||
|
if (hdd_ctx->is_pktlog_enabled && enable_disable_flag)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if ((!hdd_ctx->is_pktlog_enabled) && (!enable_disable_flag))
|
||||||
|
return 0;
|
||||||
|
|
||||||
start_log.ring_id = RING_ID_PER_PACKET_STATS;
|
start_log.ring_id = RING_ID_PER_PACKET_STATS;
|
||||||
start_log.verbose_level =
|
start_log.verbose_level =
|
||||||
enable ? WLAN_LOG_LEVEL_ACTIVE : WLAN_LOG_LEVEL_OFF;
|
enable_disable_flag ?
|
||||||
|
WLAN_LOG_LEVEL_ACTIVE : WLAN_LOG_LEVEL_OFF;
|
||||||
start_log.ini_triggered = cds_is_packet_log_enabled();
|
start_log.ini_triggered = cds_is_packet_log_enabled();
|
||||||
start_log.user_triggered = user_triggered;
|
start_log.user_triggered = user_triggered;
|
||||||
start_log.size = size;
|
start_log.size = size;
|
||||||
@@ -10769,6 +10786,7 @@ int hdd_pktlog_enable_disable(struct hdd_context *hdd_ctx, bool enable,
|
|||||||
* but for iwpriv command, host will send it to fw.
|
* but for iwpriv command, host will send it to fw.
|
||||||
*/
|
*/
|
||||||
start_log.is_iwpriv_command = 1;
|
start_log.is_iwpriv_command = 1;
|
||||||
|
|
||||||
status = sme_wifi_start_logger(hdd_ctx->mac_handle, start_log);
|
status = sme_wifi_start_logger(hdd_ctx->mac_handle, start_log);
|
||||||
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
||||||
hdd_err("sme_wifi_start_logger failed(err=%d)", status);
|
hdd_err("sme_wifi_start_logger failed(err=%d)", status);
|
||||||
@@ -10776,10 +10794,7 @@ int hdd_pktlog_enable_disable(struct hdd_context *hdd_ctx, bool enable,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (enable == true)
|
hdd_ctx->is_pktlog_enabled = enable_disable_flag;
|
||||||
hdd_ctx->is_pktlog_enabled = 1;
|
|
||||||
else
|
|
||||||
hdd_ctx->is_pktlog_enabled = 0;
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user