Commit 4fa42ade authored by Balaji Pothunoori's avatar Balaji Pothunoori Committed by Kalle Valo

ath10k: enabling tx stats support over pktlog

For QCA988X target, pktlog gives details of the tx bitrate
which is used in the driver for station info.

Enabling pktlog by default will cause more interrupts
in target to host CE pipe, which can impact more CPU usage
for targets ex:WCN3990 and also not required for all other
platforms (eg: WCN3990), for getting tx bitrate.

Enable pktlog only for QCA988X based on hardware params.

Tested HW : WCN3990
Tested FW : WLAN.HL.3.1-00784-QCAHLSWMTPLZ-1

Fixes: e8123bb7 ("ath10k: add per peer tx stats support for 10.2.4")
Signed-off-by: default avatarBalaji Pothunoori <bpothuno@codeaurora.org>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent ef9cc0c4
...@@ -85,6 +85,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { ...@@ -85,6 +85,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false, .rri_on_ddr = false,
.hw_filter_reset_required = true, .hw_filter_reset_required = true,
.fw_diag_ce_download = false, .fw_diag_ce_download = false,
.tx_stats_over_pktlog = true,
}, },
{ {
.id = QCA988X_HW_2_0_VERSION, .id = QCA988X_HW_2_0_VERSION,
...@@ -119,6 +120,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { ...@@ -119,6 +120,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false, .rri_on_ddr = false,
.hw_filter_reset_required = true, .hw_filter_reset_required = true,
.fw_diag_ce_download = false, .fw_diag_ce_download = false,
.tx_stats_over_pktlog = true,
}, },
{ {
.id = QCA9887_HW_1_0_VERSION, .id = QCA9887_HW_1_0_VERSION,
...@@ -154,6 +156,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { ...@@ -154,6 +156,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false, .rri_on_ddr = false,
.hw_filter_reset_required = true, .hw_filter_reset_required = true,
.fw_diag_ce_download = false, .fw_diag_ce_download = false,
.tx_stats_over_pktlog = false,
}, },
{ {
.id = QCA6174_HW_3_2_VERSION, .id = QCA6174_HW_3_2_VERSION,
...@@ -181,6 +184,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { ...@@ -181,6 +184,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.ast_skid_limit = 0x10, .ast_skid_limit = 0x10,
.num_wds_entries = 0x20, .num_wds_entries = 0x20,
.uart_pin_workaround = true, .uart_pin_workaround = true,
.tx_stats_over_pktlog = false,
}, },
{ {
.id = QCA6174_HW_2_1_VERSION, .id = QCA6174_HW_2_1_VERSION,
...@@ -215,6 +219,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { ...@@ -215,6 +219,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false, .rri_on_ddr = false,
.hw_filter_reset_required = true, .hw_filter_reset_required = true,
.fw_diag_ce_download = false, .fw_diag_ce_download = false,
.tx_stats_over_pktlog = false,
}, },
{ {
.id = QCA6174_HW_2_1_VERSION, .id = QCA6174_HW_2_1_VERSION,
...@@ -249,6 +254,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { ...@@ -249,6 +254,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false, .rri_on_ddr = false,
.hw_filter_reset_required = true, .hw_filter_reset_required = true,
.fw_diag_ce_download = false, .fw_diag_ce_download = false,
.tx_stats_over_pktlog = false,
}, },
{ {
.id = QCA6174_HW_3_0_VERSION, .id = QCA6174_HW_3_0_VERSION,
...@@ -283,6 +289,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { ...@@ -283,6 +289,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false, .rri_on_ddr = false,
.hw_filter_reset_required = true, .hw_filter_reset_required = true,
.fw_diag_ce_download = false, .fw_diag_ce_download = false,
.tx_stats_over_pktlog = false,
}, },
{ {
.id = QCA6174_HW_3_2_VERSION, .id = QCA6174_HW_3_2_VERSION,
...@@ -320,6 +327,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { ...@@ -320,6 +327,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false, .rri_on_ddr = false,
.hw_filter_reset_required = true, .hw_filter_reset_required = true,
.fw_diag_ce_download = true, .fw_diag_ce_download = true,
.tx_stats_over_pktlog = false,
}, },
{ {
.id = QCA99X0_HW_2_0_DEV_VERSION, .id = QCA99X0_HW_2_0_DEV_VERSION,
...@@ -360,6 +368,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { ...@@ -360,6 +368,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false, .rri_on_ddr = false,
.hw_filter_reset_required = true, .hw_filter_reset_required = true,
.fw_diag_ce_download = false, .fw_diag_ce_download = false,
.tx_stats_over_pktlog = false,
}, },
{ {
.id = QCA9984_HW_1_0_DEV_VERSION, .id = QCA9984_HW_1_0_DEV_VERSION,
...@@ -407,6 +416,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { ...@@ -407,6 +416,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false, .rri_on_ddr = false,
.hw_filter_reset_required = true, .hw_filter_reset_required = true,
.fw_diag_ce_download = false, .fw_diag_ce_download = false,
.tx_stats_over_pktlog = false,
}, },
{ {
.id = QCA9888_HW_2_0_DEV_VERSION, .id = QCA9888_HW_2_0_DEV_VERSION,
...@@ -451,6 +461,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { ...@@ -451,6 +461,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false, .rri_on_ddr = false,
.hw_filter_reset_required = true, .hw_filter_reset_required = true,
.fw_diag_ce_download = false, .fw_diag_ce_download = false,
.tx_stats_over_pktlog = false,
}, },
{ {
.id = QCA9377_HW_1_0_DEV_VERSION, .id = QCA9377_HW_1_0_DEV_VERSION,
...@@ -485,6 +496,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { ...@@ -485,6 +496,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false, .rri_on_ddr = false,
.hw_filter_reset_required = true, .hw_filter_reset_required = true,
.fw_diag_ce_download = false, .fw_diag_ce_download = false,
.tx_stats_over_pktlog = false,
}, },
{ {
.id = QCA9377_HW_1_1_DEV_VERSION, .id = QCA9377_HW_1_1_DEV_VERSION,
...@@ -521,6 +533,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { ...@@ -521,6 +533,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false, .rri_on_ddr = false,
.hw_filter_reset_required = true, .hw_filter_reset_required = true,
.fw_diag_ce_download = true, .fw_diag_ce_download = true,
.tx_stats_over_pktlog = false,
}, },
{ {
.id = QCA4019_HW_1_0_DEV_VERSION, .id = QCA4019_HW_1_0_DEV_VERSION,
...@@ -562,6 +575,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { ...@@ -562,6 +575,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false, .rri_on_ddr = false,
.hw_filter_reset_required = true, .hw_filter_reset_required = true,
.fw_diag_ce_download = false, .fw_diag_ce_download = false,
.tx_stats_over_pktlog = false,
}, },
{ {
.id = WCN3990_HW_1_0_DEV_VERSION, .id = WCN3990_HW_1_0_DEV_VERSION,
...@@ -589,6 +603,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { ...@@ -589,6 +603,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = true, .rri_on_ddr = true,
.hw_filter_reset_required = false, .hw_filter_reset_required = false,
.fw_diag_ce_download = false, .fw_diag_ce_download = false,
.tx_stats_over_pktlog = false,
}, },
}; };
......
...@@ -614,6 +614,9 @@ struct ath10k_hw_params { ...@@ -614,6 +614,9 @@ struct ath10k_hw_params {
* firmware bug * firmware bug
*/ */
bool uart_pin_workaround; bool uart_pin_workaround;
/* tx stats support over pktlog */
bool tx_stats_over_pktlog;
}; };
struct htt_rx_desc; struct htt_rx_desc;
......
...@@ -7877,7 +7877,8 @@ ath10k_mac_op_assign_vif_chanctx(struct ieee80211_hw *hw, ...@@ -7877,7 +7877,8 @@ ath10k_mac_op_assign_vif_chanctx(struct ieee80211_hw *hw,
arvif->vdev_id, ret); arvif->vdev_id, ret);
} }
if (ath10k_peer_stats_enabled(ar)) { if (ath10k_peer_stats_enabled(ar) &&
ar->hw_params.tx_stats_over_pktlog) {
ar->pktlog_filter |= ATH10K_PKTLOG_PEER_STATS; ar->pktlog_filter |= ATH10K_PKTLOG_PEER_STATS;
ret = ath10k_wmi_pdev_pktlog_enable(ar, ret = ath10k_wmi_pdev_pktlog_enable(ar,
ar->pktlog_filter); ar->pktlog_filter);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment