debugfs.c (cdd38c5f1ce4398ec58fec95904b75824daab7b5) | debugfs.c (ab18e3bc1c138f2b4358c6905a45afb7289d5086) |
---|---|
1// SPDX-License-Identifier: BSD-3-Clause-Clear 2/* 3 * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. 4 */ 5 6#include "debugfs.h" 7 8#include "core.h" --- 888 unchanged lines hidden (view full) --- 897 const char __user *ubuf, 898 size_t count, loff_t *ppos) 899{ 900 struct ath11k *ar = file->private_data; 901 struct ath11k_base *ab = ar->ab; 902 struct htt_rx_ring_tlv_filter tlv_filter = {0}; 903 u32 rx_filter = 0, ring_id, filter, mode; 904 u8 buf[128] = {0}; | 1// SPDX-License-Identifier: BSD-3-Clause-Clear 2/* 3 * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. 4 */ 5 6#include "debugfs.h" 7 8#include "core.h" --- 888 unchanged lines hidden (view full) --- 897 const char __user *ubuf, 898 size_t count, loff_t *ppos) 899{ 900 struct ath11k *ar = file->private_data; 901 struct ath11k_base *ab = ar->ab; 902 struct htt_rx_ring_tlv_filter tlv_filter = {0}; 903 u32 rx_filter = 0, ring_id, filter, mode; 904 u8 buf[128] = {0}; |
905 int i, ret; | 905 int i, ret, rx_buf_sz = 0; |
906 ssize_t rc; 907 908 mutex_lock(&ar->conf_mutex); 909 if (ar->state != ATH11K_STATE_ON) { 910 ret = -ENETDOWN; 911 goto out; 912 } 913 --- 21 unchanged lines hidden (view full) --- 935 } else { 936 ret = ath11k_wmi_pdev_pktlog_disable(ar); 937 if (ret) { 938 ath11k_warn(ar->ab, "failed to disable pktlog: %d\n", ret); 939 goto out; 940 } 941 } 942 | 906 ssize_t rc; 907 908 mutex_lock(&ar->conf_mutex); 909 if (ar->state != ATH11K_STATE_ON) { 910 ret = -ENETDOWN; 911 goto out; 912 } 913 --- 21 unchanged lines hidden (view full) --- 935 } else { 936 ret = ath11k_wmi_pdev_pktlog_disable(ar); 937 if (ret) { 938 ath11k_warn(ar->ab, "failed to disable pktlog: %d\n", ret); 939 goto out; 940 } 941 } 942 |
943 /* Clear rx filter set for monitor mode and rx status */ 944 for (i = 0; i < ab->hw_params.num_rxmda_per_pdev; i++) { 945 ring_id = ar->dp.rx_mon_status_refill_ring[i].refill_buf_ring.ring_id; 946 ret = ath11k_dp_tx_htt_rx_filter_setup(ar->ab, ring_id, ar->dp.mac_id, 947 HAL_RXDMA_MONITOR_STATUS, 948 rx_buf_sz, &tlv_filter); 949 if (ret) { 950 ath11k_warn(ar->ab, "failed to set rx filter for monitor status ring\n"); 951 goto out; 952 } 953 } |
|
943#define HTT_RX_FILTER_TLV_LITE_MODE \ 944 (HTT_RX_FILTER_TLV_FLAGS_PPDU_START | \ 945 HTT_RX_FILTER_TLV_FLAGS_PPDU_END | \ 946 HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS | \ 947 HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS_EXT | \ 948 HTT_RX_FILTER_TLV_FLAGS_PPDU_END_STATUS_DONE | \ 949 HTT_RX_FILTER_TLV_FLAGS_MPDU_START) 950 951 if (mode == ATH11K_PKTLOG_MODE_FULL) { 952 rx_filter = HTT_RX_FILTER_TLV_LITE_MODE | 953 HTT_RX_FILTER_TLV_FLAGS_MSDU_START | 954 HTT_RX_FILTER_TLV_FLAGS_MSDU_END | 955 HTT_RX_FILTER_TLV_FLAGS_MPDU_END | 956 HTT_RX_FILTER_TLV_FLAGS_PACKET_HEADER | 957 HTT_RX_FILTER_TLV_FLAGS_ATTENTION; | 954#define HTT_RX_FILTER_TLV_LITE_MODE \ 955 (HTT_RX_FILTER_TLV_FLAGS_PPDU_START | \ 956 HTT_RX_FILTER_TLV_FLAGS_PPDU_END | \ 957 HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS | \ 958 HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS_EXT | \ 959 HTT_RX_FILTER_TLV_FLAGS_PPDU_END_STATUS_DONE | \ 960 HTT_RX_FILTER_TLV_FLAGS_MPDU_START) 961 962 if (mode == ATH11K_PKTLOG_MODE_FULL) { 963 rx_filter = HTT_RX_FILTER_TLV_LITE_MODE | 964 HTT_RX_FILTER_TLV_FLAGS_MSDU_START | 965 HTT_RX_FILTER_TLV_FLAGS_MSDU_END | 966 HTT_RX_FILTER_TLV_FLAGS_MPDU_END | 967 HTT_RX_FILTER_TLV_FLAGS_PACKET_HEADER | 968 HTT_RX_FILTER_TLV_FLAGS_ATTENTION; |
969 rx_buf_sz = DP_RX_BUFFER_SIZE; |
|
958 } else if (mode == ATH11K_PKTLOG_MODE_LITE) { 959 ret = ath11k_dp_tx_htt_h2t_ppdu_stats_req(ar, 960 HTT_PPDU_STATS_TAG_PKTLOG); 961 if (ret) { 962 ath11k_err(ar->ab, "failed to enable pktlog lite: %d\n", ret); 963 goto out; 964 } 965 966 rx_filter = HTT_RX_FILTER_TLV_LITE_MODE; | 970 } else if (mode == ATH11K_PKTLOG_MODE_LITE) { 971 ret = ath11k_dp_tx_htt_h2t_ppdu_stats_req(ar, 972 HTT_PPDU_STATS_TAG_PKTLOG); 973 if (ret) { 974 ath11k_err(ar->ab, "failed to enable pktlog lite: %d\n", ret); 975 goto out; 976 } 977 978 rx_filter = HTT_RX_FILTER_TLV_LITE_MODE; |
979 rx_buf_sz = DP_RX_BUFFER_SIZE_LITE; |
|
967 } else { | 980 } else { |
981 rx_buf_sz = DP_RX_BUFFER_SIZE; 982 tlv_filter = ath11k_mac_mon_status_filter_default; 983 rx_filter = tlv_filter.rx_filter; 984 |
|
968 ret = ath11k_dp_tx_htt_h2t_ppdu_stats_req(ar, 969 HTT_PPDU_STATS_TAG_DEFAULT); 970 if (ret) { 971 ath11k_err(ar->ab, "failed to send htt ppdu stats req: %d\n", 972 ret); 973 goto out; 974 } 975 } --- 7 unchanged lines hidden (view full) --- 983 HTT_RX_FP_DATA_FILTER_FLASG3; 984 } 985 986 for (i = 0; i < ab->hw_params.num_rxmda_per_pdev; i++) { 987 ring_id = ar->dp.rx_mon_status_refill_ring[i].refill_buf_ring.ring_id; 988 ret = ath11k_dp_tx_htt_rx_filter_setup(ab, ring_id, 989 ar->dp.mac_id + i, 990 HAL_RXDMA_MONITOR_STATUS, | 985 ret = ath11k_dp_tx_htt_h2t_ppdu_stats_req(ar, 986 HTT_PPDU_STATS_TAG_DEFAULT); 987 if (ret) { 988 ath11k_err(ar->ab, "failed to send htt ppdu stats req: %d\n", 989 ret); 990 goto out; 991 } 992 } --- 7 unchanged lines hidden (view full) --- 1000 HTT_RX_FP_DATA_FILTER_FLASG3; 1001 } 1002 1003 for (i = 0; i < ab->hw_params.num_rxmda_per_pdev; i++) { 1004 ring_id = ar->dp.rx_mon_status_refill_ring[i].refill_buf_ring.ring_id; 1005 ret = ath11k_dp_tx_htt_rx_filter_setup(ab, ring_id, 1006 ar->dp.mac_id + i, 1007 HAL_RXDMA_MONITOR_STATUS, |
991 DP_RX_BUFFER_SIZE, &tlv_filter); | 1008 rx_buf_sz, &tlv_filter); |
992 993 if (ret) { 994 ath11k_warn(ab, "failed to set rx filter for monitor status ring\n"); 995 goto out; 996 } 997 } 998 | 1009 1010 if (ret) { 1011 ath11k_warn(ab, "failed to set rx filter for monitor status ring\n"); 1012 goto out; 1013 } 1014 } 1015 |
999 ath11k_dbg(ab, ATH11K_DBG_WMI, "pktlog filter %d mode %s\n", 1000 filter, ((mode == ATH11K_PKTLOG_MODE_FULL) ? "full" : "lite")); | 1016 ath11k_info(ab, "pktlog mode %s\n", 1017 ((mode == ATH11K_PKTLOG_MODE_FULL) ? "full" : "lite")); |
1001 1002 ar->debug.pktlog_filter = filter; 1003 ar->debug.pktlog_mode = mode; 1004 ret = count; 1005 1006out: 1007 mutex_unlock(&ar->conf_mutex); 1008 return ret; --- 90 unchanged lines hidden --- | 1018 1019 ar->debug.pktlog_filter = filter; 1020 ar->debug.pktlog_mode = mode; 1021 ret = count; 1022 1023out: 1024 mutex_unlock(&ar->conf_mutex); 1025 return ret; --- 90 unchanged lines hidden --- |