qcacmn: API renaming for monitor module

Add prefix dp for all monitor APIs
Add mon_debug/mon_info/mon_err for logs

Change-Id: I71d49f6bcacd77f5695269817fed83337169227b
CRs-Fixed: 3006497
This commit is contained in:
aloksing
2021-08-03 16:36:17 +05:30
committed by Madan Koyyalamudi
parent 83e0741bf9
commit b158abe417
14 changed files with 880 additions and 603 deletions

View File

@@ -2544,7 +2544,9 @@ static void dp_htt_t2h_msg_handler(void *context, HTC_PACKET *pkt)
case HTT_T2H_MSG_TYPE_PPDU_STATS_IND: case HTT_T2H_MSG_TYPE_PPDU_STATS_IND:
{ {
free_buf = monitor_ppdu_stats_ind_handler(soc, msg_word, free_buf =
dp_monitor_ppdu_stats_ind_handler(soc,
msg_word,
htt_t2h_msg); htt_t2h_msg);
break; break;
} }

View File

@@ -184,129 +184,131 @@ static inline QDF_STATUS dp_mon_soc_detach_wrapper(struct dp_soc *soc)
#ifndef WIFI_MONITOR_SUPPORT #ifndef WIFI_MONITOR_SUPPORT
#define MON_BUF_MIN_ENTRIES 64 #define MON_BUF_MIN_ENTRIES 64
static inline QDF_STATUS monitor_pdev_attach(struct dp_pdev *pdev) static inline QDF_STATUS dp_monitor_pdev_attach(struct dp_pdev *pdev)
{ {
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
static inline QDF_STATUS monitor_pdev_detach(struct dp_pdev *pdev) static inline QDF_STATUS dp_monitor_pdev_detach(struct dp_pdev *pdev)
{ {
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
static inline QDF_STATUS monitor_vdev_attach(struct dp_vdev *vdev) static inline QDF_STATUS dp_monitor_vdev_attach(struct dp_vdev *vdev)
{ {
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }
static inline QDF_STATUS monitor_vdev_detach(struct dp_vdev *vdev) static inline QDF_STATUS dp_monitor_vdev_detach(struct dp_vdev *vdev)
{ {
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }
static inline QDF_STATUS monitor_peer_attach(struct dp_soc *soc, static inline QDF_STATUS dp_monitor_peer_attach(struct dp_soc *soc,
struct dp_peer *peer) struct dp_peer *peer)
{ {
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
static inline QDF_STATUS monitor_peer_detach(struct dp_soc *soc, static inline QDF_STATUS dp_monitor_peer_detach(struct dp_soc *soc,
struct dp_peer *peer) struct dp_peer *peer)
{ {
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }
static inline QDF_STATUS monitor_pdev_init(struct dp_pdev *pdev) static inline QDF_STATUS dp_monitor_pdev_init(struct dp_pdev *pdev)
{ {
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
static inline QDF_STATUS monitor_pdev_deinit(struct dp_pdev *pdev) static inline QDF_STATUS dp_monitor_pdev_deinit(struct dp_pdev *pdev)
{ {
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
static inline QDF_STATUS monitor_soc_cfg_init(struct dp_soc *soc) static inline QDF_STATUS dp_monitor_soc_cfg_init(struct dp_soc *soc)
{ {
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
static inline QDF_STATUS monitor_config_debug_sniffer(struct dp_pdev *pdev, static inline QDF_STATUS dp_monitor_config_debug_sniffer(struct dp_pdev *pdev,
int val) int val)
{ {
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }
static inline void monitor_flush_rings(struct dp_soc *soc) static inline void dp_monitor_flush_rings(struct dp_soc *soc)
{ {
} }
static inline QDF_STATUS monitor_htt_srng_setup(struct dp_soc *soc, static inline QDF_STATUS dp_monitor_htt_srng_setup(struct dp_soc *soc,
struct dp_pdev *pdev, struct dp_pdev *pdev,
int mac_id, int mac_id,
int mac_for_pdev) int mac_for_pdev)
{ {
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
static inline void monitor_service_mon_rings(struct dp_soc *soc, uint32_t quota) static inline void dp_monitor_service_mon_rings(struct dp_soc *soc,
uint32_t quota)
{ {
} }
static inline static inline
uint32_t monitor_process(struct dp_soc *soc, struct dp_intr *int_ctx, uint32_t dp_monitor_process(struct dp_soc *soc, struct dp_intr *int_ctx,
uint32_t mac_id, uint32_t quota) uint32_t mac_id, uint32_t quota)
{ {
return 0; return 0;
} }
static inline static inline
uint32_t monitor_drop_packets_for_mac(struct dp_pdev *pdev, uint32_t dp_monitor_drop_packets_for_mac(struct dp_pdev *pdev,
uint32_t mac_id, uint32_t quota) uint32_t mac_id, uint32_t quota)
{ {
return 0; return 0;
} }
static inline void monitor_peer_tx_init(struct dp_pdev *pdev, static inline void dp_monitor_peer_tx_init(struct dp_pdev *pdev,
struct dp_peer *peer)
{
}
static inline void monitor_peer_tx_cleanup(struct dp_vdev *vdev,
struct dp_peer *peer) struct dp_peer *peer)
{ {
} }
static inline void dp_monitor_peer_tx_cleanup(struct dp_vdev *vdev,
struct dp_peer *peer)
{
}
static inline static inline
void monitor_peer_tid_peer_id_update(struct dp_soc *soc, void dp_monitor_peer_tid_peer_id_update(struct dp_soc *soc,
struct dp_peer *peer, struct dp_peer *peer,
uint16_t peer_id) uint16_t peer_id)
{ {
} }
static inline void monitor_tx_ppdu_stats_attach(struct dp_pdev *pdev) static inline void dp_monitor_tx_ppdu_stats_attach(struct dp_pdev *pdev)
{ {
} }
static inline void monitor_tx_ppdu_stats_detach(struct dp_pdev *pdev) static inline void dp_monitor_tx_ppdu_stats_detach(struct dp_pdev *pdev)
{ {
} }
static inline QDF_STATUS monitor_tx_capture_debugfs_init(struct dp_pdev *pdev) static inline
QDF_STATUS dp_monitor_tx_capture_debugfs_init(struct dp_pdev *pdev)
{ {
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
static inline void monitor_peer_tx_capture_filter_check(struct dp_pdev *pdev, static inline void dp_monitor_peer_tx_capture_filter_check(struct dp_pdev *pdev,
struct dp_peer *peer) struct dp_peer *peer)
{ {
} }
static inline static inline
QDF_STATUS monitor_tx_add_to_comp_queue(struct dp_soc *soc, QDF_STATUS dp_monitor_tx_add_to_comp_queue(struct dp_soc *soc,
struct dp_tx_desc_s *desc, struct dp_tx_desc_s *desc,
struct hal_tx_completion_status *ts, struct hal_tx_completion_status *ts,
struct dp_peer *peer) struct dp_peer *peer)
{ {
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }
@@ -321,163 +323,164 @@ QDF_STATUS monitor_update_msdu_to_list(struct dp_soc *soc,
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }
static inline bool monitor_ppdu_stats_ind_handler(struct htt_soc *soc, static inline bool dp_monitor_ppdu_stats_ind_handler(struct htt_soc *soc,
uint32_t *msg_word, uint32_t *msg_word,
qdf_nbuf_t htt_t2h_msg) qdf_nbuf_t htt_t2h_msg)
{ {
return true; return true;
} }
static inline QDF_STATUS monitor_htt_ppdu_stats_attach(struct dp_pdev *pdev) static inline QDF_STATUS dp_monitor_htt_ppdu_stats_attach(struct dp_pdev *pdev)
{ {
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
static inline void monitor_htt_ppdu_stats_detach(struct dp_pdev *pdev) static inline void dp_monitor_htt_ppdu_stats_detach(struct dp_pdev *pdev)
{ {
} }
static inline void monitor_print_pdev_rx_mon_stats(struct dp_pdev *pdev) static inline void dp_monitor_print_pdev_rx_mon_stats(struct dp_pdev *pdev)
{ {
} }
static inline QDF_STATUS monitor_config_enh_tx_capture(struct dp_pdev *pdev, static inline QDF_STATUS dp_monitor_config_enh_tx_capture(struct dp_pdev *pdev,
uint32_t val) uint32_t val)
{ {
return QDF_STATUS_E_INVAL; return QDF_STATUS_E_INVAL;
} }
static inline QDF_STATUS monitor_config_enh_rx_capture(struct dp_pdev *pdev, static inline QDF_STATUS dp_monitor_config_enh_rx_capture(struct dp_pdev *pdev,
uint32_t val) uint32_t val)
{ {
return QDF_STATUS_E_INVAL; return QDF_STATUS_E_INVAL;
} }
static inline QDF_STATUS monitor_set_bpr_enable(struct dp_pdev *pdev, static inline
uint32_t val) QDF_STATUS dp_monitor_set_bpr_enable(struct dp_pdev *pdev, uint32_t val)
{ {
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }
static inline int monitor_set_filter_neigh_peers(struct dp_pdev *pdev, bool val) static inline
int dp_monitor_set_filter_neigh_peers(struct dp_pdev *pdev, bool val)
{ {
return 0; return 0;
} }
static inline static inline
void monitor_set_atf_stats_enable(struct dp_pdev *pdev, bool value) void dp_monitor_set_atf_stats_enable(struct dp_pdev *pdev, bool value)
{ {
} }
static inline static inline
void monitor_set_bsscolor(struct dp_pdev *pdev, uint8_t bsscolor) void dp_monitor_set_bsscolor(struct dp_pdev *pdev, uint8_t bsscolor)
{ {
} }
static inline static inline
bool monitor_pdev_get_filter_mcast_data(struct cdp_pdev *pdev_handle) bool dp_monitor_pdev_get_filter_mcast_data(struct cdp_pdev *pdev_handle)
{ {
return false; return false;
} }
static inline static inline
bool monitor_pdev_get_filter_non_data(struct cdp_pdev *pdev_handle) bool dp_monitor_pdev_get_filter_non_data(struct cdp_pdev *pdev_handle)
{ {
return false; return false;
} }
static inline static inline
bool monitor_pdev_get_filter_ucast_data(struct cdp_pdev *pdev_handle) bool dp_monitor_pdev_get_filter_ucast_data(struct cdp_pdev *pdev_handle)
{ {
return false; return false;
} }
static inline static inline
int monitor_set_pktlog_wifi3(struct dp_pdev *pdev, uint32_t event, bool enable) int dp_monitor_set_pktlog_wifi3(struct dp_pdev *pdev, uint32_t event,
bool enable)
{ {
return 0; return 0;
} }
static inline void monitor_pktlogmod_exit(struct dp_pdev *pdev) static inline void dp_monitor_pktlogmod_exit(struct dp_pdev *pdev)
{ {
} }
static inline static inline
void monitor_vdev_set_monitor_mode_buf_rings(struct dp_pdev *pdev) void dp_monitor_vdev_set_monitor_mode_buf_rings(struct dp_pdev *pdev)
{ {
} }
static inline static inline
void monitor_neighbour_peers_detach(struct dp_pdev *pdev) void dp_monitor_neighbour_peers_detach(struct dp_pdev *pdev)
{ {
} }
static inline QDF_STATUS monitor_filter_neighbour_peer(struct dp_pdev *pdev, static inline QDF_STATUS dp_monitor_filter_neighbour_peer(struct dp_pdev *pdev,
uint8_t *rx_pkt_hdr) uint8_t *rx_pkt_hdr)
{ {
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }
static inline void monitor_print_pdev_tx_capture_stats(struct dp_pdev *pdev) static inline void dp_monitor_print_pdev_tx_capture_stats(struct dp_pdev *pdev)
{ {
} }
static inline static inline
void monitor_reap_timer_init(struct dp_soc *soc) void dp_monitor_reap_timer_init(struct dp_soc *soc)
{ {
} }
static inline static inline
void monitor_reap_timer_deinit(struct dp_soc *soc) void dp_monitor_reap_timer_deinit(struct dp_soc *soc)
{ {
} }
static inline static inline
void monitor_reap_timer_start(struct dp_soc *soc) void dp_monitor_reap_timer_start(struct dp_soc *soc)
{ {
} }
static inline static inline
bool monitor_reap_timer_stop(struct dp_soc *soc) bool dp_monitor_reap_timer_stop(struct dp_soc *soc)
{ {
return false; return false;
} }
static inline static inline
void monitor_vdev_timer_init(struct dp_soc *soc) void dp_monitor_vdev_timer_init(struct dp_soc *soc)
{ {
} }
static inline static inline
void monitor_vdev_timer_deinit(struct dp_soc *soc) void dp_monitor_vdev_timer_deinit(struct dp_soc *soc)
{ {
} }
static inline static inline
void monitor_vdev_timer_start(struct dp_soc *soc) void dp_monitor_vdev_timer_start(struct dp_soc *soc)
{ {
} }
static inline static inline
bool monitor_vdev_timer_stop(struct dp_soc *soc) bool dp_monitor_vdev_timer_stop(struct dp_soc *soc)
{ {
return false; return false;
} }
static inline struct qdf_mem_multi_page_t* static inline struct qdf_mem_multi_page_t*
monitor_get_link_desc_pages(struct dp_soc *soc, uint32_t mac_id) dp_monitor_get_link_desc_pages(struct dp_soc *soc, uint32_t mac_id)
{ {
return NULL; return NULL;
} }
static inline uint32_t * static inline uint32_t *
monitor_get_total_link_descs(struct dp_soc *soc, uint32_t mac_id) dp_monitor_get_total_link_descs(struct dp_soc *soc, uint32_t mac_id)
{ {
return NULL; return NULL;
} }
static inline QDF_STATUS monitor_drop_inv_peer_pkts(struct dp_vdev *vdev, static inline QDF_STATUS dp_monitor_drop_inv_peer_pkts(struct dp_vdev *vdev)
struct ieee80211_frame *wh)
{ {
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }
@@ -487,22 +490,23 @@ static inline bool dp_is_enable_reap_timer_non_pkt(struct dp_pdev *pdev)
return false; return false;
} }
static inline void monitor_vdev_register_osif(struct dp_vdev *vdev, static inline void dp_monitor_vdev_register_osif(struct dp_vdev *vdev,
struct ol_txrx_ops *txrx_ops) struct ol_txrx_ops *txrx_ops)
{ {
} }
static inline bool monitor_is_vdev_timer_running(struct dp_soc *soc) static inline bool dp_monitor_is_vdev_timer_running(struct dp_soc *soc)
{ {
return false; return false;
} }
static inline static inline
void monitor_pdev_set_mon_vdev(struct dp_vdev *vdev) void dp_monitor_pdev_set_mon_vdev(struct dp_pdev *pdev)
{ {
} }
static inline void monitor_vdev_delete(struct dp_soc *soc, struct dp_vdev *vdev) static inline void dp_monitor_vdev_delete(struct dp_soc *soc,
struct dp_vdev *vdev)
{ {
} }
@@ -510,93 +514,93 @@ static inline void dp_peer_ppdu_delayed_ba_init(struct dp_peer *peer)
{ {
} }
static inline void monitor_neighbour_peer_add_ast(struct dp_pdev *pdev, static inline void dp_monitor_neighbour_peer_add_ast(struct dp_pdev *pdev,
struct dp_peer *ta_peer, struct dp_peer *ta_peer,
uint8_t *mac_addr, uint8_t *mac_addr,
qdf_nbuf_t nbuf, qdf_nbuf_t nbuf,
uint32_t flags) uint32_t flags)
{ {
} }
static inline void static inline void
monitor_set_chan_band(struct dp_pdev *pdev, enum reg_wifi_band chan_band) dp_monitor_set_chan_band(struct dp_pdev *pdev, enum reg_wifi_band chan_band)
{ {
} }
static inline void static inline void
monitor_set_chan_freq(struct dp_pdev *pdev, qdf_freq_t chan_freq) dp_monitor_set_chan_freq(struct dp_pdev *pdev, qdf_freq_t chan_freq)
{ {
} }
static inline void monitor_set_chan_num(struct dp_pdev *pdev, int chan_num) static inline void dp_monitor_set_chan_num(struct dp_pdev *pdev, int chan_num)
{ {
} }
static inline bool monitor_is_enable_mcopy_mode(struct dp_pdev *pdev) static inline bool dp_monitor_is_enable_mcopy_mode(struct dp_pdev *pdev)
{ {
return false; return false;
} }
static inline static inline
void monitor_neighbour_peer_list_remove(struct dp_pdev *pdev, void dp_monitor_neighbour_peer_list_remove(struct dp_pdev *pdev,
struct dp_vdev *vdev, struct dp_vdev *vdev,
struct dp_neighbour_peer *peer) struct dp_neighbour_peer *peer)
{ {
} }
static inline bool monitor_is_chan_band_known(struct dp_pdev *pdev) static inline bool dp_monitor_is_chan_band_known(struct dp_pdev *pdev)
{ {
return false; return false;
} }
static inline enum reg_wifi_band static inline enum reg_wifi_band
monitor_get_chan_band(struct dp_pdev *pdev) dp_monitor_get_chan_band(struct dp_pdev *pdev)
{ {
return 0; return 0;
} }
static inline void monitor_get_mpdu_status(struct dp_pdev *pdev, static inline void dp_monitor_get_mpdu_status(struct dp_pdev *pdev,
struct dp_soc *soc, struct dp_soc *soc,
uint8_t *rx_tlv_hdr) uint8_t *rx_tlv_hdr)
{ {
} }
static inline void monitor_print_tx_stats(struct dp_pdev *pdev) static inline void dp_monitor_print_tx_stats(struct dp_pdev *pdev)
{ {
} }
static inline static inline
QDF_STATUS monitor_mcopy_check_deliver(struct dp_pdev *pdev, QDF_STATUS dp_monitor_mcopy_check_deliver(struct dp_pdev *pdev,
uint16_t peer_id, uint32_t ppdu_id, uint16_t peer_id, uint32_t ppdu_id,
uint8_t first_msdu) uint8_t first_msdu)
{ {
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
static inline bool monitor_is_enable_tx_sniffer(struct dp_pdev *pdev) static inline bool dp_monitor_is_enable_tx_sniffer(struct dp_pdev *pdev)
{ {
return false; return false;
} }
static inline struct dp_vdev* static inline struct dp_vdev*
monitor_get_monitor_vdev_from_pdev(struct dp_pdev *pdev) dp_monitor_get_monitor_vdev_from_pdev(struct dp_pdev *pdev)
{ {
return NULL; return NULL;
} }
static inline QDF_STATUS monitor_check_com_info_ppdu_id(struct dp_pdev *pdev, static inline QDF_STATUS dp_monitor_check_com_info_ppdu_id(struct dp_pdev *pdev,
void *rx_desc) void *rx_desc)
{ {
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }
static inline struct mon_rx_status* static inline struct mon_rx_status*
monitor_get_rx_status(struct dp_pdev *pdev) dp_monitor_get_rx_status(struct dp_pdev *pdev)
{ {
return NULL; return NULL;
} }
static inline bool monitor_is_enable_enhanced_stats(struct dp_pdev *pdev) static inline bool dp_monitor_is_enable_enhanced_stats(struct dp_pdev *pdev)
{ {
return false; return false;
} }

View File

@@ -143,7 +143,7 @@ QDF_STATUS dp_ipa_handle_rx_buf_smmu_mapping(struct dp_soc *soc,
for (i = 0; i < soc->pdev_count; i++) { for (i = 0; i < soc->pdev_count; i++) {
pdev = soc->pdev_list[i]; pdev = soc->pdev_list[i];
if (pdev && monitor_is_configured(pdev)) if (pdev && dp_monitor_is_configured(pdev))
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }

View File

@@ -492,8 +492,8 @@ static void dp_service_lmac_rings(void *arg)
rx_refill_buf_ring = &soc->rx_refill_buf_ring[mac_for_pdev]; rx_refill_buf_ring = &soc->rx_refill_buf_ring[mac_for_pdev];
monitor_process(soc, NULL, mac_for_pdev, dp_monitor_process(soc, NULL, mac_for_pdev,
QCA_NAPI_BUDGET); QCA_NAPI_BUDGET);
for (i = 0; for (i = 0;
i < wlan_cfg_get_num_contexts(soc->wlan_cfg_ctx); i++) i < wlan_cfg_get_num_contexts(soc->wlan_cfg_ctx); i++)
@@ -2250,8 +2250,9 @@ static int dp_process_lmac_rings(struct dp_intr *int_ctx, int total_budget)
if (!pdev) if (!pdev)
continue; continue;
if (int_ctx->rx_mon_ring_mask & (1 << mac_for_pdev)) { if (int_ctx->rx_mon_ring_mask & (1 << mac_for_pdev)) {
work_done = monitor_process(soc, int_ctx, mac_for_pdev, work_done = dp_monitor_process(soc, int_ctx,
remaining_quota); mac_for_pdev,
remaining_quota);
if (work_done) if (work_done)
intr_stats->num_rx_mon_ring_masks++; intr_stats->num_rx_mon_ring_masks++;
budget -= work_done; budget -= work_done;
@@ -2442,7 +2443,7 @@ static uint32_t dp_service_srngs(void *dp_ctx, uint32_t dp_budget)
int_ctx->intr_stats.num_reo_status_ring_masks++; int_ctx->intr_stats.num_reo_status_ring_masks++;
} }
if (qdf_unlikely(!monitor_is_vdev_timer_running(soc))) { if (qdf_unlikely(!dp_monitor_is_vdev_timer_running(soc))) {
work_done = dp_process_lmac_rings(int_ctx, remaining_quota); work_done = dp_process_lmac_rings(int_ctx, remaining_quota);
if (work_done) { if (work_done) {
budget -= work_done; budget -= work_done;
@@ -2483,7 +2484,7 @@ static uint32_t dp_service_srngs(void *dp_ctx, uint32_t dp_budget)
int_ctx->intr_stats.num_reo_status_ring_masks++; int_ctx->intr_stats.num_reo_status_ring_masks++;
} }
if (qdf_unlikely(!monitor_is_vdev_timer_running(soc))) { if (qdf_unlikely(!dp_monitor_is_vdev_timer_running(soc))) {
work_done = dp_process_lmac_rings(int_ctx, remaining_quota); work_done = dp_process_lmac_rings(int_ctx, remaining_quota);
if (work_done) { if (work_done) {
budget -= work_done; budget -= work_done;
@@ -2543,8 +2544,8 @@ static void dp_interrupt_timer(void *arg)
if (!qdf_atomic_read(&soc->cmn_init_done)) if (!qdf_atomic_read(&soc->cmn_init_done))
return; return;
if (monitor_is_chan_band_known(pdev)) { if (dp_monitor_is_chan_band_known(pdev)) {
mon_band = monitor_get_chan_band(pdev); mon_band = dp_monitor_get_chan_band(pdev);
lmac_id = pdev->ch_band_lmac_id_mapping[mon_band]; lmac_id = pdev->ch_band_lmac_id_mapping[mon_band];
if (qdf_likely(lmac_id != DP_MON_INVALID_LMAC_ID)) { if (qdf_likely(lmac_id != DP_MON_INVALID_LMAC_ID)) {
dp_intr_id = soc->mon_intr_id_lmac_map[lmac_id]; dp_intr_id = soc->mon_intr_id_lmac_map[lmac_id];
@@ -2558,13 +2559,12 @@ static void dp_interrupt_timer(void *arg)
while (yield == DP_TIMER_NO_YIELD) { while (yield == DP_TIMER_NO_YIELD) {
for (lmac_iter = 0; lmac_iter < max_mac_rings; lmac_iter++) { for (lmac_iter = 0; lmac_iter < max_mac_rings; lmac_iter++) {
if (lmac_iter == lmac_id) if (lmac_iter == lmac_id)
work_done = work_done = dp_monitor_process(soc,
monitor_process(soc,
&soc->intr_ctx[dp_intr_id], &soc->intr_ctx[dp_intr_id],
lmac_iter, remaining_quota); lmac_iter, remaining_quota);
else else
work_done = work_done =
monitor_drop_packets_for_mac(pdev, dp_monitor_drop_packets_for_mac(pdev,
lmac_iter, lmac_iter,
remaining_quota); remaining_quota);
if (work_done) { if (work_done) {
@@ -3090,7 +3090,7 @@ void dp_hw_link_desc_pool_banks_free(struct dp_soc *soc, uint32_t mac_id)
struct qdf_mem_multi_page_t *pages; struct qdf_mem_multi_page_t *pages;
if (mac_id != WLAN_INVALID_PDEV_ID) { if (mac_id != WLAN_INVALID_PDEV_ID) {
pages = monitor_get_link_desc_pages(soc, mac_id); pages = dp_monitor_get_link_desc_pages(soc, mac_id);
} else { } else {
pages = &soc->link_desc_pages; pages = &soc->link_desc_pages;
} }
@@ -3153,8 +3153,8 @@ QDF_STATUS dp_hw_link_desc_pool_banks_alloc(struct dp_soc *soc, uint32_t mac_id)
* with REO queue descriptors * with REO queue descriptors
*/ */
if (mac_id != WLAN_INVALID_PDEV_ID) { if (mac_id != WLAN_INVALID_PDEV_ID) {
pages = monitor_get_link_desc_pages(soc, mac_id); pages = dp_monitor_get_link_desc_pages(soc, mac_id);
/* monitor_get_link_desc_pages returns NULL only /* dp_monitor_get_link_desc_pages returns NULL only
* if monitor SOC is NULL * if monitor SOC is NULL
*/ */
if (!pages) { if (!pages) {
@@ -3166,7 +3166,7 @@ QDF_STATUS dp_hw_link_desc_pool_banks_alloc(struct dp_soc *soc, uint32_t mac_id)
num_entries = dp_srng->alloc_size / num_entries = dp_srng->alloc_size /
hal_srng_get_entrysize(soc->hal_soc, hal_srng_get_entrysize(soc->hal_soc,
RXDMA_MONITOR_DESC); RXDMA_MONITOR_DESC);
total_link_descs = monitor_get_total_link_descs(soc, mac_id); total_link_descs = dp_monitor_get_total_link_descs(soc, mac_id);
qdf_str_lcopy(minidump_str, "mon_link_desc_bank", qdf_str_lcopy(minidump_str, "mon_link_desc_bank",
MINIDUMP_STR_SIZE); MINIDUMP_STR_SIZE);
} else { } else {
@@ -3426,8 +3426,8 @@ void dp_link_desc_ring_replenish(struct dp_soc *soc, uint32_t mac_id)
total_link_descs = soc->total_link_descs; total_link_descs = soc->total_link_descs;
desc_srng = soc->wbm_idle_link_ring.hal_srng; desc_srng = soc->wbm_idle_link_ring.hal_srng;
} else { } else {
pages = monitor_get_link_desc_pages(soc, mac_id); pages = dp_monitor_get_link_desc_pages(soc, mac_id);
/* monitor_get_link_desc_pages returns NULL only /* dp_monitor_get_link_desc_pages returns NULL only
* if monitor SOC is NULL * if monitor SOC is NULL
*/ */
if (!pages) { if (!pages) {
@@ -3436,7 +3436,7 @@ void dp_link_desc_ring_replenish(struct dp_soc *soc, uint32_t mac_id)
return; return;
} }
total_link_descs_addr = total_link_descs_addr =
monitor_get_total_link_descs(soc, mac_id); dp_monitor_get_total_link_descs(soc, mac_id);
total_link_descs = *total_link_descs_addr; total_link_descs = *total_link_descs_addr;
desc_srng = soc->rxdma_mon_desc_ring[mac_id].hal_srng; desc_srng = soc->rxdma_mon_desc_ring[mac_id].hal_srng;
} }
@@ -4833,8 +4833,8 @@ static inline QDF_STATUS dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
goto fail3; goto fail3;
} }
if (monitor_pdev_attach(pdev)) { if (dp_monitor_pdev_attach(pdev)) {
dp_init_err("%pK: monitor_pdev_attach failed", soc); dp_init_err("%pK: dp_monitor_pdev_attach failed", soc);
goto fail4; goto fail4;
} }
@@ -4869,7 +4869,7 @@ static void dp_rxdma_ring_cleanup(struct dp_soc *soc, struct dp_pdev *pdev)
dp_srng_free(soc, &pdev->rx_mac_buf_ring[i]); dp_srng_free(soc, &pdev->rx_mac_buf_ring[i]);
} }
monitor_reap_timer_deinit(soc); dp_monitor_reap_timer_deinit(soc);
} }
#else #else
static void dp_rxdma_ring_cleanup(struct dp_soc *soc, struct dp_pdev *pdev) static void dp_rxdma_ring_cleanup(struct dp_soc *soc, struct dp_pdev *pdev)
@@ -4956,7 +4956,7 @@ static void dp_pdev_deinit(struct cdp_pdev *txrx_pdev, int force)
if (pdev->invalid_peer) if (pdev->invalid_peer)
qdf_mem_free(pdev->invalid_peer); qdf_mem_free(pdev->invalid_peer);
monitor_pdev_deinit(pdev); dp_monitor_pdev_deinit(pdev);
dp_pdev_srng_deinit(pdev); dp_pdev_srng_deinit(pdev);
@@ -5012,7 +5012,7 @@ static void dp_pdev_post_attach(struct cdp_pdev *txrx_pdev)
{ {
struct dp_pdev *pdev = (struct dp_pdev *)txrx_pdev; struct dp_pdev *pdev = (struct dp_pdev *)txrx_pdev;
monitor_tx_capture_debugfs_init(pdev); dp_monitor_tx_capture_debugfs_init(pdev);
if (dp_pdev_htt_stats_dbgfs_init(pdev)) { if (dp_pdev_htt_stats_dbgfs_init(pdev)) {
dp_init_err("%pK: Failed to initialize pdev HTT stats debugfs", pdev->soc); dp_init_err("%pK: Failed to initialize pdev HTT stats debugfs", pdev->soc);
@@ -5058,7 +5058,7 @@ static void dp_pdev_detach(struct cdp_pdev *txrx_pdev, int force)
dp_pdev_htt_stats_dbgfs_deinit(pdev); dp_pdev_htt_stats_dbgfs_deinit(pdev);
dp_rx_pdev_desc_pool_free(pdev); dp_rx_pdev_desc_pool_free(pdev);
monitor_pdev_detach(pdev); dp_monitor_pdev_detach(pdev);
dp_pdev_srng_free(pdev); dp_pdev_srng_free(pdev);
soc->pdev_count--; soc->pdev_count--;
@@ -5435,9 +5435,9 @@ static QDF_STATUS dp_rxdma_ring_config(struct dp_soc *soc)
RXDMA_DST); RXDMA_DST);
/* Configure monitor mode rings */ /* Configure monitor mode rings */
status = monitor_htt_srng_setup(soc, pdev, status = dp_monitor_htt_srng_setup(soc, pdev,
lmac_id, lmac_id,
mac_for_pdev); mac_for_pdev);
if (status != QDF_STATUS_SUCCESS) { if (status != QDF_STATUS_SUCCESS) {
dp_err("Failed to send htt monitor messages to target"); dp_err("Failed to send htt monitor messages to target");
return status; return status;
@@ -5451,8 +5451,8 @@ static QDF_STATUS dp_rxdma_ring_config(struct dp_soc *soc)
* Timer to reap rxdma status rings. * Timer to reap rxdma status rings.
* Needed until we enable ppdu end interrupts * Needed until we enable ppdu end interrupts
*/ */
monitor_reap_timer_init(soc); dp_monitor_reap_timer_init(soc);
monitor_vdev_timer_init(soc); dp_monitor_vdev_timer_init(soc);
return status; return status;
} }
#else #else
@@ -5477,9 +5477,9 @@ static QDF_STATUS dp_rxdma_ring_config(struct dp_soc *soc)
soc->rx_refill_buf_ring[lmac_id]. soc->rx_refill_buf_ring[lmac_id].
hal_srng, RXDMA_BUF); hal_srng, RXDMA_BUF);
/* Configure monitor mode rings */ /* Configure monitor mode rings */
monitor_htt_srng_setup(soc, pdev, dp_monitor_htt_srng_setup(soc, pdev,
lmac_id, lmac_id,
mac_for_pdev); mac_for_pdev);
htt_srng_setup(soc->htt_handle, mac_for_pdev, htt_srng_setup(soc->htt_handle, mac_for_pdev,
soc->rxdma_err_dst_ring[lmac_id].hal_srng, soc->rxdma_err_dst_ring[lmac_id].hal_srng,
RXDMA_DST); RXDMA_DST);
@@ -5850,19 +5850,18 @@ static QDF_STATUS dp_vdev_attach_wifi3(struct cdp_soc_t *cdp_soc,
qdf_timer_mod(&soc->int_timer, DP_INTR_POLL_TIMER_MS); qdf_timer_mod(&soc->int_timer, DP_INTR_POLL_TIMER_MS);
} else if (soc->intr_mode == DP_INTR_MSI && } else if (soc->intr_mode == DP_INTR_MSI &&
wlan_op_mode_monitor == vdev->opmode) { wlan_op_mode_monitor == vdev->opmode) {
monitor_vdev_timer_start(soc); dp_monitor_vdev_timer_start(soc);
} }
dp_vdev_id_map_tbl_add(soc, vdev, vdev_id); dp_vdev_id_map_tbl_add(soc, vdev, vdev_id);
if (wlan_op_mode_monitor == vdev->opmode) { if (wlan_op_mode_monitor == vdev->opmode) {
if (monitor_vdev_attach(vdev) == QDF_STATUS_SUCCESS) { if (dp_monitor_vdev_attach(vdev) == QDF_STATUS_SUCCESS) {
monitor_pdev_set_mon_vdev(vdev); dp_monitor_pdev_set_mon_vdev(vdev);
monitor_vdev_set_monitor_mode_buf_rings(pdev); dp_monitor_vdev_set_monitor_mode_buf_rings(pdev);
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} else {
return QDF_STATUS_E_FAILURE;
} }
return QDF_STATUS_E_FAILURE;
} }
vdev->tx_encap_type = wlan_cfg_pkt_type(soc->wlan_cfg_ctx); vdev->tx_encap_type = wlan_cfg_pkt_type(soc->wlan_cfg_ctx);
@@ -5886,8 +5885,8 @@ static QDF_STATUS dp_vdev_attach_wifi3(struct cdp_soc_t *cdp_soc,
cdp_soc, vdev->ap_bridge_enabled); cdp_soc, vdev->ap_bridge_enabled);
dp_tx_vdev_attach(vdev); dp_tx_vdev_attach(vdev);
monitor_vdev_attach(vdev);
dp_monitor_vdev_attach(vdev);
if (!pdev->is_lro_hash_configured) { if (!pdev->is_lro_hash_configured) {
if (QDF_IS_STATUS_SUCCESS(dp_lro_hash_setup(soc, pdev))) if (QDF_IS_STATUS_SUCCESS(dp_lro_hash_setup(soc, pdev)))
pdev->is_lro_hash_configured = true; pdev->is_lro_hash_configured = true;
@@ -5980,7 +5979,7 @@ static QDF_STATUS dp_vdev_register_wifi3(struct cdp_soc_t *soc_hdl,
vdev->osif_fisa_rx = txrx_ops->rx.osif_fisa_rx; vdev->osif_fisa_rx = txrx_ops->rx.osif_fisa_rx;
vdev->osif_fisa_flush = txrx_ops->rx.osif_fisa_flush; vdev->osif_fisa_flush = txrx_ops->rx.osif_fisa_flush;
vdev->osif_get_key = txrx_ops->get_key; vdev->osif_get_key = txrx_ops->get_key;
monitor_vdev_register_osif(vdev, txrx_ops); dp_monitor_vdev_register_osif(vdev, txrx_ops);
vdev->osif_tx_free_ext = txrx_ops->tx.tx_free_ext; vdev->osif_tx_free_ext = txrx_ops->tx.tx_free_ext;
vdev->tx_comp = txrx_ops->tx.tx_comp; vdev->tx_comp = txrx_ops->tx.tx_comp;
vdev->stats_cb = txrx_ops->rx.stats_rx; vdev->stats_cb = txrx_ops->rx.stats_rx;
@@ -6130,7 +6129,7 @@ static QDF_STATUS dp_vdev_detach_wifi3(struct cdp_soc_t *cdp_soc,
*/ */
dp_vdev_id_map_tbl_remove(soc, vdev); dp_vdev_id_map_tbl_remove(soc, vdev);
monitor_neighbour_peer_list_remove(pdev, vdev, peer); dp_monitor_neighbour_peer_list_remove(pdev, vdev, peer);
dp_tx_vdev_multipass_deinit(vdev); dp_tx_vdev_multipass_deinit(vdev);
@@ -6294,7 +6293,7 @@ dp_peer_create_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
* when unassociated peer get associated peer need to * when unassociated peer get associated peer need to
* update tx_cap_enabled flag to support peer filter. * update tx_cap_enabled flag to support peer filter.
*/ */
monitor_peer_tx_capture_filter_check(pdev, peer); dp_monitor_peer_tx_capture_filter_check(pdev, peer);
dp_set_peer_isolation(peer, false); dp_set_peer_isolation(peer, false);
@@ -6433,7 +6432,7 @@ dp_peer_create_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
QDF_STATUS_SUCCESS) QDF_STATUS_SUCCESS)
dp_warn("peer ext_stats ctx alloc failed"); dp_warn("peer ext_stats ctx alloc failed");
if (monitor_peer_attach(soc, peer) != if (dp_monitor_peer_attach(soc, peer) !=
QDF_STATUS_SUCCESS) QDF_STATUS_SUCCESS)
dp_warn("peer monitor ctx alloc failed"); dp_warn("peer monitor ctx alloc failed");
@@ -6612,7 +6611,7 @@ dp_peer_setup_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
* which is REO2TCL ring. for this reason we should * which is REO2TCL ring. for this reason we should
* not setup reo_queues and default route for bss_peer. * not setup reo_queues and default route for bss_peer.
*/ */
monitor_peer_tx_init(pdev, peer); dp_monitor_peer_tx_init(pdev, peer);
if (peer->bss_peer && vdev->opmode == wlan_op_mode_ap) { if (peer->bss_peer && vdev->opmode == wlan_op_mode_ap) {
status = QDF_STATUS_E_FAILURE; status = QDF_STATUS_E_FAILURE;
goto fail; goto fail;
@@ -7079,7 +7078,7 @@ void dp_vdev_unref_delete(struct dp_soc *soc, struct dp_vdev *vdev,
vdev, QDF_MAC_ADDR_REF(vdev->mac_addr.raw)); vdev, QDF_MAC_ADDR_REF(vdev->mac_addr.raw));
if (wlan_op_mode_monitor == vdev->opmode) { if (wlan_op_mode_monitor == vdev->opmode) {
monitor_vdev_delete(soc, vdev); dp_monitor_vdev_delete(soc, vdev);
goto free_vdev; goto free_vdev;
} }
@@ -7087,7 +7086,7 @@ void dp_vdev_unref_delete(struct dp_soc *soc, struct dp_vdev *vdev,
dp_tx_flow_pool_unmap_handler(pdev, vdev_id, dp_tx_flow_pool_unmap_handler(pdev, vdev_id,
FLOW_TYPE_VDEV, vdev_id); FLOW_TYPE_VDEV, vdev_id);
dp_tx_vdev_detach(vdev); dp_tx_vdev_detach(vdev);
monitor_vdev_detach(vdev); dp_monitor_vdev_detach(vdev);
free_vdev: free_vdev:
qdf_spinlock_destroy(&vdev->peer_list_lock); qdf_spinlock_destroy(&vdev->peer_list_lock);
@@ -7202,7 +7201,7 @@ void dp_peer_unref_delete(struct dp_peer *peer, enum dp_mod_id mod_id)
/* cleanup the peer data */ /* cleanup the peer data */
dp_peer_cleanup(vdev, peer); dp_peer_cleanup(vdev, peer);
monitor_peer_detach(soc, peer); dp_monitor_peer_detach(soc, peer);
for (tid = 0; tid < DP_MAX_TIDS; tid++) for (tid = 0; tid < DP_MAX_TIDS; tid++)
qdf_spinlock_destroy(&peer->rx_tid[tid].tid_lock); qdf_spinlock_destroy(&peer->rx_tid[tid].tid_lock);
@@ -7703,7 +7702,7 @@ void dp_aggregate_pdev_stats(struct dp_pdev *pdev)
qdf_mem_zero(&pdev->stats.rx, sizeof(pdev->stats.rx)); qdf_mem_zero(&pdev->stats.rx, sizeof(pdev->stats.rx));
qdf_mem_zero(&pdev->stats.tx_i, sizeof(pdev->stats.tx_i)); qdf_mem_zero(&pdev->stats.tx_i, sizeof(pdev->stats.tx_i));
if (monitor_is_enable_mcopy_mode(pdev)) if (dp_monitor_is_enable_mcopy_mode(pdev))
DP_UPDATE_STATS(pdev, pdev->invalid_peer); DP_UPDATE_STATS(pdev, pdev->invalid_peer);
soc = pdev->soc; soc = pdev->soc;
@@ -8132,7 +8131,7 @@ dp_print_host_stats(struct dp_vdev *vdev,
dp_print_ring_stats(pdev); dp_print_ring_stats(pdev);
break; break;
case TXRX_RX_MON_STATS: case TXRX_RX_MON_STATS:
monitor_print_pdev_rx_mon_stats(pdev); dp_monitor_print_pdev_rx_mon_stats(pdev);
break; break;
case TXRX_REO_QUEUE_STATS: case TXRX_REO_QUEUE_STATS:
dp_get_host_peer_stats((struct cdp_soc_t *)pdev->soc, dp_get_host_peer_stats((struct cdp_soc_t *)pdev->soc,
@@ -8411,15 +8410,15 @@ static QDF_STATUS dp_get_pdev_param(struct cdp_soc_t *cdp_soc, uint8_t pdev_id,
break; break;
case CDP_FILTER_MCAST_DATA: case CDP_FILTER_MCAST_DATA:
val->cdp_pdev_param_fltr_mcast = val->cdp_pdev_param_fltr_mcast =
monitor_pdev_get_filter_mcast_data(pdev); dp_monitor_pdev_get_filter_mcast_data(pdev);
break; break;
case CDP_FILTER_NO_DATA: case CDP_FILTER_NO_DATA:
val->cdp_pdev_param_fltr_none = val->cdp_pdev_param_fltr_none =
monitor_pdev_get_filter_non_data(pdev); dp_monitor_pdev_get_filter_non_data(pdev);
break; break;
case CDP_FILTER_UCAST_DATA: case CDP_FILTER_UCAST_DATA:
val->cdp_pdev_param_fltr_ucast = val->cdp_pdev_param_fltr_ucast =
monitor_pdev_get_filter_ucast_data(pdev); dp_monitor_pdev_get_filter_ucast_data(pdev);
break; break;
default: default:
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
@@ -8467,14 +8466,14 @@ static QDF_STATUS dp_set_pdev_param(struct cdp_soc_t *cdp_soc, uint8_t pdev_id,
switch (param) { switch (param) {
case CDP_CONFIG_TX_CAPTURE: case CDP_CONFIG_TX_CAPTURE:
return monitor_config_debug_sniffer(pdev, return dp_monitor_config_debug_sniffer(pdev,
val.cdp_pdev_param_tx_capture); val.cdp_pdev_param_tx_capture);
case CDP_CONFIG_DEBUG_SNIFFER: case CDP_CONFIG_DEBUG_SNIFFER:
return monitor_config_debug_sniffer(pdev, return dp_monitor_config_debug_sniffer(pdev,
val.cdp_pdev_param_dbg_snf); val.cdp_pdev_param_dbg_snf);
case CDP_CONFIG_BPR_ENABLE: case CDP_CONFIG_BPR_ENABLE:
return monitor_set_bpr_enable(pdev, return dp_monitor_set_bpr_enable(pdev,
val.cdp_pdev_param_bpr_enable); val.cdp_pdev_param_bpr_enable);
case CDP_CONFIG_PRIMARY_RADIO: case CDP_CONFIG_PRIMARY_RADIO:
pdev->is_primary = val.cdp_pdev_param_primary_radio; pdev->is_primary = val.cdp_pdev_param_primary_radio;
break; break;
@@ -8490,10 +8489,10 @@ static QDF_STATUS dp_set_pdev_param(struct cdp_soc_t *cdp_soc, uint8_t pdev_id,
val.cdp_pdev_param_osif_drop); val.cdp_pdev_param_osif_drop);
break; break;
case CDP_CONFIG_ENH_RX_CAPTURE: case CDP_CONFIG_ENH_RX_CAPTURE:
return monitor_config_enh_rx_capture(pdev, return dp_monitor_config_enh_rx_capture(pdev,
val.cdp_pdev_param_en_rx_cap); val.cdp_pdev_param_en_rx_cap);
case CDP_CONFIG_ENH_TX_CAPTURE: case CDP_CONFIG_ENH_TX_CAPTURE:
return monitor_config_enh_tx_capture(pdev, return dp_monitor_config_enh_tx_capture(pdev,
val.cdp_pdev_param_en_tx_cap); val.cdp_pdev_param_en_tx_cap);
case CDP_CONFIG_HMMC_TID_OVERRIDE: case CDP_CONFIG_HMMC_TID_OVERRIDE:
pdev->hmmc_tid_override_en = val.cdp_pdev_param_hmmc_tid_ovrd; pdev->hmmc_tid_override_en = val.cdp_pdev_param_hmmc_tid_ovrd;
@@ -8509,28 +8508,28 @@ static QDF_STATUS dp_set_pdev_param(struct cdp_soc_t *cdp_soc, uint8_t pdev_id,
val.cdp_pdev_param_tidmap_prty); val.cdp_pdev_param_tidmap_prty);
break; break;
case CDP_FILTER_NEIGH_PEERS: case CDP_FILTER_NEIGH_PEERS:
monitor_set_filter_neigh_peers(pdev, dp_monitor_set_filter_neigh_peers(pdev,
val.cdp_pdev_param_fltr_neigh_peers); val.cdp_pdev_param_fltr_neigh_peers);
break; break;
case CDP_MONITOR_CHANNEL: case CDP_MONITOR_CHANNEL:
monitor_set_chan_num(pdev, val.cdp_pdev_param_monitor_chan); dp_monitor_set_chan_num(pdev, val.cdp_pdev_param_monitor_chan);
break; break;
case CDP_MONITOR_FREQUENCY: case CDP_MONITOR_FREQUENCY:
chan_band = wlan_reg_freq_to_band(val.cdp_pdev_param_mon_freq); chan_band = wlan_reg_freq_to_band(val.cdp_pdev_param_mon_freq);
monitor_set_chan_freq(pdev, val.cdp_pdev_param_mon_freq); dp_monitor_set_chan_freq(pdev, val.cdp_pdev_param_mon_freq);
monitor_set_chan_band(pdev, chan_band); dp_monitor_set_chan_band(pdev, chan_band);
break; break;
case CDP_CONFIG_BSS_COLOR: case CDP_CONFIG_BSS_COLOR:
monitor_set_bsscolor(pdev, val.cdp_pdev_param_bss_color); dp_monitor_set_bsscolor(pdev, val.cdp_pdev_param_bss_color);
break; break;
case CDP_SET_ATF_STATS_ENABLE: case CDP_SET_ATF_STATS_ENABLE:
monitor_set_atf_stats_enable(pdev, dp_monitor_set_atf_stats_enable(pdev,
val.cdp_pdev_param_atf_stats_enable); val.cdp_pdev_param_atf_stats_enable);
break; break;
case CDP_CONFIG_SPECIAL_VAP: case CDP_CONFIG_SPECIAL_VAP:
dp_monitor_pdev_config_spcl_vap(pdev, dp_monitor_pdev_config_spcl_vap(pdev,
val.cdp_pdev_param_config_special_vap); val.cdp_pdev_param_config_special_vap);
monitor_vdev_set_monitor_mode_buf_rings(pdev); dp_monitor_vdev_set_monitor_mode_buf_rings(pdev);
break; break;
case CDP_RESET_SPCL_VAP_STATS_ENABLE: case CDP_RESET_SPCL_VAP_STATS_ENABLE:
dp_monitor_pdev_reset_spcl_vap_stats_enable(pdev, dp_monitor_pdev_reset_spcl_vap_stats_enable(pdev,
@@ -11339,7 +11338,7 @@ static QDF_STATUS dp_bus_suspend(struct cdp_soc_t *soc_hdl, uint8_t pdev_id)
qdf_timer_stop(&soc->int_timer); qdf_timer_stop(&soc->int_timer);
/* Stop monitor reap timer and reap any pending frames in ring */ /* Stop monitor reap timer and reap any pending frames in ring */
monitor_pktlog_reap_pending_frames(pdev); dp_monitor_pktlog_reap_pending_frames(pdev);
dp_suspend_fse_cache_flush(soc); dp_suspend_fse_cache_flush(soc);
@@ -11360,7 +11359,7 @@ static QDF_STATUS dp_bus_resume(struct cdp_soc_t *soc_hdl, uint8_t pdev_id)
qdf_timer_mod(&soc->int_timer, DP_INTR_POLL_TIMER_MS); qdf_timer_mod(&soc->int_timer, DP_INTR_POLL_TIMER_MS);
/* Start monitor reap timer */ /* Start monitor reap timer */
monitor_pktlog_start_reap_timer(pdev); dp_monitor_pktlog_start_reap_timer(pdev);
dp_resume_fse_cache_flush(soc); dp_resume_fse_cache_flush(soc);
@@ -11389,7 +11388,7 @@ static void dp_process_wow_ack_rsp(struct cdp_soc_t *soc_hdl, uint8_t pdev_id)
* response from FW reap mon status ring to make sure no packets pending * response from FW reap mon status ring to make sure no packets pending
* in the ring. * in the ring.
*/ */
monitor_pktlog_reap_pending_frames(pdev); dp_monitor_pktlog_reap_pending_frames(pdev);
} }
/** /**
@@ -11411,7 +11410,7 @@ static void dp_process_target_suspend_req(struct cdp_soc_t *soc_hdl,
} }
/* Stop monitor reap timer and reap any pending frames in ring */ /* Stop monitor reap timer and reap any pending frames in ring */
monitor_pktlog_reap_pending_frames(pdev); dp_monitor_pktlog_reap_pending_frames(pdev);
} }
static struct cdp_bus_ops dp_ops_bus = { static struct cdp_bus_ops dp_ops_bus = {
@@ -11735,7 +11734,7 @@ void *dp_soc_init(struct dp_soc *soc, HTC_HANDLE htc_handle,
dp_soc_cfg_init(soc); dp_soc_cfg_init(soc);
monitor_soc_cfg_init(soc); dp_monitor_soc_cfg_init(soc);
/* Reset/Initialize wbm sg list and flags */ /* Reset/Initialize wbm sg list and flags */
dp_rx_wbm_sg_list_reset(soc); dp_rx_wbm_sg_list_reset(soc);
@@ -13250,8 +13249,8 @@ static QDF_STATUS dp_pdev_init(struct cdp_soc_t *txrx_soc,
goto fail8; goto fail8;
} }
if (monitor_pdev_init(pdev)) { if (dp_monitor_pdev_init(pdev)) {
dp_init_err("%pK: monitor_pdev_init failed\n", soc); dp_init_err("%pK: dp_monitor_pdev_init failed\n", soc);
goto fail9; goto fail9;
} }

View File

@@ -2274,8 +2274,8 @@ static inline struct dp_peer *dp_peer_find_add_id(struct dp_soc *soc,
dp_peer_find_id_to_obj_add(soc, peer, peer_id); dp_peer_find_id_to_obj_add(soc, peer, peer_id);
if (peer->peer_id == HTT_INVALID_PEER) { if (peer->peer_id == HTT_INVALID_PEER) {
peer->peer_id = peer_id; peer->peer_id = peer_id;
monitor_peer_tid_peer_id_update(soc, peer, dp_monitor_peer_tid_peer_id_update(soc, peer,
peer->peer_id); peer->peer_id);
} else { } else {
QDF_ASSERT(0); QDF_ASSERT(0);
} }
@@ -3327,7 +3327,7 @@ void dp_peer_cleanup(struct dp_vdev *vdev, struct dp_peer *peer)
/* save vdev related member in case vdev freed */ /* save vdev related member in case vdev freed */
vdev_opmode = vdev->opmode; vdev_opmode = vdev->opmode;
monitor_peer_tx_cleanup(vdev, peer); dp_monitor_peer_tx_cleanup(vdev, peer);
if (vdev_opmode != wlan_op_mode_monitor) if (vdev_opmode != wlan_op_mode_monitor)
/* cleanup the Rx reorder queues for this peer */ /* cleanup the Rx reorder queues for this peer */

View File

@@ -909,7 +909,7 @@ uint8_t dp_rx_process_invalid_peer(struct dp_soc *soc, qdf_nbuf_t mpdu,
goto free; goto free;
} }
if (monitor_filter_neighbour_peer(pdev, rx_pkt_hdr) == if (dp_monitor_filter_neighbour_peer(pdev, rx_pkt_hdr) ==
QDF_STATUS_SUCCESS) QDF_STATUS_SUCCESS)
return 0; return 0;
@@ -939,9 +939,11 @@ out:
* in order to avoid HM_WDS false addition. * in order to avoid HM_WDS false addition.
*/ */
if (pdev->soc->cdp_soc.ol_ops->rx_invalid_peer) { if (pdev->soc->cdp_soc.ol_ops->rx_invalid_peer) {
if (monitor_drop_inv_peer_pkts(vdev, wh) == QDF_STATUS_SUCCESS) if (dp_monitor_drop_inv_peer_pkts(vdev) == QDF_STATUS_SUCCESS) {
dp_rx_warn("%pK: Drop inv peer pkts with STA RA:%pm",
soc, wh->i_addr1);
goto free; goto free;
}
pdev->soc->cdp_soc.ol_ops->rx_invalid_peer( pdev->soc->cdp_soc.ol_ops->rx_invalid_peer(
(struct cdp_ctrl_objmgr_psoc *)soc->ctrl_psoc, (struct cdp_ctrl_objmgr_psoc *)soc->ctrl_psoc,
pdev->pdev_id, &msg); pdev->pdev_id, &msg);

View File

@@ -320,6 +320,10 @@ dp_rx_msdus_drop(struct dp_soc *soc, hal_ring_desc_t ring_desc,
&buf_info); &buf_info);
link_desc_va = dp_rx_cookie_2_link_desc_va(soc, &buf_info); link_desc_va = dp_rx_cookie_2_link_desc_va(soc, &buf_info);
if (!link_desc_va) {
dp_rx_err_debug("link desc va is null, soc %pk", soc);
return rx_bufs_used;
}
more_msdu_link_desc: more_msdu_link_desc:
/* No UNMAP required -- this is "malloc_consistent" memory */ /* No UNMAP required -- this is "malloc_consistent" memory */
@@ -917,7 +921,7 @@ dp_rx_chain_msdus(struct dp_soc *soc, qdf_nbuf_t nbuf,
dp_pdev->invalid_peer_head_msdu = NULL; dp_pdev->invalid_peer_head_msdu = NULL;
dp_pdev->invalid_peer_tail_msdu = NULL; dp_pdev->invalid_peer_tail_msdu = NULL;
monitor_get_mpdu_status(dp_pdev, soc, rx_tlv_hdr); dp_monitor_get_mpdu_status(dp_pdev, soc, rx_tlv_hdr);
} }
if (dp_pdev->ppdu_id == hal_rx_attn_phy_ppdu_id_get(soc->hal_soc, if (dp_pdev->ppdu_id == hal_rx_attn_phy_ppdu_id_get(soc->hal_soc,

View File

@@ -6216,7 +6216,7 @@ dp_print_pdev_tx_stats(struct dp_pdev *pdev)
DP_PRINT_STATS("BA not received for delayed_ba: %d", DP_PRINT_STATS("BA not received for delayed_ba: %d",
pdev->stats.cdp_delayed_ba_not_recev); pdev->stats.cdp_delayed_ba_not_recev);
monitor_print_tx_stats(pdev); dp_monitor_print_tx_stats(pdev);
DP_PRINT_STATS("tx_ppdu_proc: %llu", DP_PRINT_STATS("tx_ppdu_proc: %llu",
pdev->stats.tx_ppdu_proc); pdev->stats.tx_ppdu_proc);
@@ -6233,7 +6233,7 @@ dp_print_pdev_tx_stats(struct dp_pdev *pdev)
i, pdev->stats.wdi_event[i]); i, pdev->stats.wdi_event[i]);
} }
monitor_print_pdev_tx_capture_stats(pdev); dp_monitor_print_pdev_tx_capture_stats(pdev);
} }
void void

View File

@@ -1994,7 +1994,7 @@ dp_tx_send_msdu_single(struct dp_vdev *vdev, qdf_nbuf_t nbuf,
HTT_TX_TCL_METADATA_VALID_HTT_SET(htt_tcl_metadata, 1); HTT_TX_TCL_METADATA_VALID_HTT_SET(htt_tcl_metadata, 1);
dp_tx_desc_update_fast_comp_flag(soc, tx_desc, dp_tx_desc_update_fast_comp_flag(soc, tx_desc,
!monitor_is_enable_enhanced_stats(pdev)); !dp_monitor_is_enable_enhanced_stats(pdev));
dp_tx_update_mesh_flags(soc, vdev, tx_desc); dp_tx_update_mesh_flags(soc, vdev, tx_desc);
@@ -3839,7 +3839,7 @@ static inline void dp_tx_sojourn_stats_process(struct dp_pdev *pdev,
uint64_t delta_ms; uint64_t delta_ms;
struct cdp_tx_sojourn_stats *sojourn_stats; struct cdp_tx_sojourn_stats *sojourn_stats;
if (qdf_unlikely(!monitor_is_enable_enhanced_stats(pdev))) if (qdf_unlikely(!dp_monitor_is_enable_enhanced_stats(pdev)))
return; return;
if (qdf_unlikely(tid == HTT_INVALID_TID || if (qdf_unlikely(tid == HTT_INVALID_TID ||
@@ -3929,7 +3929,7 @@ dp_tx_comp_process_desc(struct dp_soc *soc,
dp_tx_enh_unmap(soc, desc); dp_tx_enh_unmap(soc, desc);
if (QDF_STATUS_SUCCESS == if (QDF_STATUS_SUCCESS ==
monitor_tx_add_to_comp_queue(soc, desc, ts, peer)) { dp_monitor_tx_add_to_comp_queue(soc, desc, ts, peer)) {
return; return;
} }

View File

@@ -1179,8 +1179,8 @@ dp_get_completion_indication_for_stack(struct dp_soc *soc,
uint8_t last_msdu = ts->last_msdu; uint8_t last_msdu = ts->last_msdu;
uint32_t txcap_hdr_size = sizeof(struct tx_capture_hdr); uint32_t txcap_hdr_size = sizeof(struct tx_capture_hdr);
if (qdf_unlikely(!monitor_is_enable_tx_sniffer(pdev) && if (qdf_unlikely(!dp_monitor_is_enable_tx_sniffer(pdev) &&
!monitor_is_enable_mcopy_mode(pdev) && !dp_monitor_is_enable_mcopy_mode(pdev) &&
!pdev->latency_capture_enable)) !pdev->latency_capture_enable))
return QDF_STATUS_E_NOSUPPORT; return QDF_STATUS_E_NOSUPPORT;
@@ -1194,8 +1194,10 @@ dp_get_completion_indication_for_stack(struct dp_soc *soc,
* per PPDU. If mcopy_mode is M_COPY_EXTENDED deliver 1st MSDU * per PPDU. If mcopy_mode is M_COPY_EXTENDED deliver 1st MSDU
* for each MPDU * for each MPDU
*/ */
if (monitor_mcopy_check_deliver(pdev, peer_id, ppdu_id, first_msdu) != if (dp_monitor_mcopy_check_deliver(pdev,
QDF_STATUS_SUCCESS) peer_id,
ppdu_id,
first_msdu) != QDF_STATUS_SUCCESS)
return QDF_STATUS_E_INVAL; return QDF_STATUS_E_INVAL;
if (qdf_unlikely(qdf_nbuf_headroom(netbuf) < txcap_hdr_size)) { if (qdf_unlikely(qdf_nbuf_headroom(netbuf) < txcap_hdr_size)) {

View File

@@ -234,9 +234,9 @@ dp_rx_wds_add_or_update_ast(struct dp_soc *soc, struct dp_peer *ta_peer,
* smart monitor is enabled and send add_ast command * smart monitor is enabled and send add_ast command
* to FW. * to FW.
*/ */
monitor_neighbour_peer_add_ast(pdev, ta_peer, dp_monitor_neighbour_peer_add_ast(pdev, ta_peer,
wds_src_mac, nbuf, wds_src_mac, nbuf,
flags); flags);
return; return;
} }
} }

View File

@@ -188,7 +188,7 @@ dp_wdi_event_sub(
return -EINVAL; return -EINVAL;
} }
monitor_set_pktlog_wifi3(txrx_pdev, event, true); dp_monitor_set_pktlog_wifi3(txrx_pdev, event, true);
event_index = event - WDI_EVENT_BASE; event_index = event - WDI_EVENT_BASE;
wdi_sub = txrx_pdev->wdi_event_list[event_index]; wdi_sub = txrx_pdev->wdi_event_list[event_index];
@@ -250,7 +250,7 @@ dp_wdi_event_unsub(
return -EINVAL; return -EINVAL;
} }
monitor_set_pktlog_wifi3(txrx_pdev, event, false); dp_monitor_set_pktlog_wifi3(txrx_pdev, event, false);
if (!event_cb_sub->priv.prev) { if (!event_cb_sub->priv.prev) {
txrx_pdev->wdi_event_list[event_index] = event_cb_sub->priv.next; txrx_pdev->wdi_event_list[event_index] = event_cb_sub->priv.next;

View File

@@ -32,10 +32,6 @@
#include "dp_ratetable.h" #include "dp_ratetable.h"
#endif #endif
#define RNG_ERR "SRNG setup failed for"
#define mon_init_err(params...) QDF_TRACE_ERROR(QDF_MODULE_ID_DP_INIT, params)
#define mon_init_info(params...) \
__QDF_TRACE_FL(QDF_TRACE_LEVEL_INFO_HIGH, QDF_MODULE_ID_DP_INIT, ## params)
#define HTT_MGMT_CTRL_TLV_HDR_RESERVERD_LEN 16 #define HTT_MGMT_CTRL_TLV_HDR_RESERVERD_LEN 16
#define HTT_TLV_HDR_LEN HTT_T2H_EXT_STATS_CONF_TLV_HDR_SIZE #define HTT_TLV_HDR_LEN HTT_T2H_EXT_STATS_CONF_TLV_HDR_SIZE
#define HTT_SHIFT_UPPER_TIMESTAMP 32 #define HTT_SHIFT_UPPER_TIMESTAMP 32
@@ -165,21 +161,21 @@ QDF_STATUS dp_mon_dest_rings_init(struct dp_pdev *pdev, int lmac_id)
if (soc->wlan_cfg_ctx->rxdma1_enable) { if (soc->wlan_cfg_ctx->rxdma1_enable) {
if (dp_srng_init(soc, &soc->rxdma_mon_buf_ring[lmac_id], if (dp_srng_init(soc, &soc->rxdma_mon_buf_ring[lmac_id],
RXDMA_MONITOR_BUF, 0, lmac_id)) { RXDMA_MONITOR_BUF, 0, lmac_id)) {
mon_init_err("%pK: " RNG_ERR "rxdma_mon_buf_ring ", dp_mon_err("%pK: " RNG_ERR "rxdma_mon_buf_ring ",
soc); soc);
goto fail1; goto fail1;
} }
if (dp_srng_init(soc, &soc->rxdma_mon_dst_ring[lmac_id], if (dp_srng_init(soc, &soc->rxdma_mon_dst_ring[lmac_id],
RXDMA_MONITOR_DST, 0, lmac_id)) { RXDMA_MONITOR_DST, 0, lmac_id)) {
mon_init_err("%pK: " RNG_ERR "rxdma_mon_dst_ring", soc); dp_mon_err("%pK: " RNG_ERR "rxdma_mon_dst_ring", soc);
goto fail1; goto fail1;
} }
if (dp_srng_init(soc, &soc->rxdma_mon_desc_ring[lmac_id], if (dp_srng_init(soc, &soc->rxdma_mon_desc_ring[lmac_id],
RXDMA_MONITOR_DESC, 0, lmac_id)) { RXDMA_MONITOR_DESC, 0, lmac_id)) {
mon_init_err("%pK: " RNG_ERR "rxdma_mon_desc_ring", dp_mon_err("%pK: " RNG_ERR "rxdma_mon_desc_ring",
soc); soc);
goto fail1; goto fail1;
} }
} }
@@ -217,8 +213,8 @@ QDF_STATUS dp_mon_rings_init(struct dp_soc *soc, struct dp_pdev *pdev)
if (dp_srng_init(soc, &soc->rxdma_mon_status_ring[lmac_id], if (dp_srng_init(soc, &soc->rxdma_mon_status_ring[lmac_id],
RXDMA_MONITOR_STATUS, 0, lmac_id)) { RXDMA_MONITOR_STATUS, 0, lmac_id)) {
mon_init_err("%pK: " RNG_ERR "rxdma_mon_status_ring", dp_mon_err("%pK: " RNG_ERR "rxdma_mon_status_ring",
soc); soc);
goto fail1; goto fail1;
} }
@@ -244,21 +240,21 @@ QDF_STATUS dp_mon_dest_rings_alloc(struct dp_pdev *pdev, int lmac_id)
entries = wlan_cfg_get_dma_mon_buf_ring_size(pdev_cfg_ctx); entries = wlan_cfg_get_dma_mon_buf_ring_size(pdev_cfg_ctx);
if (dp_srng_alloc(soc, &soc->rxdma_mon_buf_ring[lmac_id], if (dp_srng_alloc(soc, &soc->rxdma_mon_buf_ring[lmac_id],
RXDMA_MONITOR_BUF, entries, 0)) { RXDMA_MONITOR_BUF, entries, 0)) {
mon_init_err("%pK: " RNG_ERR "rxdma_mon_buf_ring ", dp_mon_err("%pK: " RNG_ERR "rxdma_mon_buf_ring ",
soc); soc);
goto fail1; goto fail1;
} }
entries = wlan_cfg_get_dma_mon_dest_ring_size(pdev_cfg_ctx); entries = wlan_cfg_get_dma_mon_dest_ring_size(pdev_cfg_ctx);
if (dp_srng_alloc(soc, &soc->rxdma_mon_dst_ring[lmac_id], if (dp_srng_alloc(soc, &soc->rxdma_mon_dst_ring[lmac_id],
RXDMA_MONITOR_DST, entries, 0)) { RXDMA_MONITOR_DST, entries, 0)) {
mon_init_err("%pK: " RNG_ERR "rxdma_mon_dst_ring", soc); dp_mon_err("%pK: " RNG_ERR "rxdma_mon_dst_ring", soc);
goto fail1; goto fail1;
} }
entries = wlan_cfg_get_dma_mon_desc_ring_size(pdev_cfg_ctx); entries = wlan_cfg_get_dma_mon_desc_ring_size(pdev_cfg_ctx);
if (dp_srng_alloc(soc, &soc->rxdma_mon_desc_ring[lmac_id], if (dp_srng_alloc(soc, &soc->rxdma_mon_desc_ring[lmac_id],
RXDMA_MONITOR_DESC, entries, 0)) { RXDMA_MONITOR_DESC, entries, 0)) {
mon_init_err("%pK: " RNG_ERR "rxdma_mon_desc_ring", dp_mon_err("%pK: " RNG_ERR "rxdma_mon_desc_ring",
soc); soc);
goto fail1; goto fail1;
} }
} }
@@ -298,8 +294,8 @@ QDF_STATUS dp_mon_rings_alloc(struct dp_soc *soc, struct dp_pdev *pdev)
entries = wlan_cfg_get_dma_mon_stat_ring_size(pdev_cfg_ctx); entries = wlan_cfg_get_dma_mon_stat_ring_size(pdev_cfg_ctx);
if (dp_srng_alloc(soc, &soc->rxdma_mon_status_ring[lmac_id], if (dp_srng_alloc(soc, &soc->rxdma_mon_status_ring[lmac_id],
RXDMA_MONITOR_STATUS, entries, 0)) { RXDMA_MONITOR_STATUS, entries, 0)) {
mon_init_err("%pK: " RNG_ERR "rxdma_mon_status_ring", dp_mon_err("%pK: " RNG_ERR "rxdma_mon_status_ring",
soc); soc);
goto fail1; goto fail1;
} }
@@ -822,7 +818,7 @@ static void dp_flush_monitor_rings(struct dp_soc *soc)
qdf_spin_lock_bh(&mon_pdev->mon_lock); qdf_spin_lock_bh(&mon_pdev->mon_lock);
dp_mon_filter_reset_mon_mode(pdev); dp_mon_filter_reset_mon_mode(pdev);
if (dp_mon_filter_update(pdev) != QDF_STATUS_SUCCESS) if (dp_mon_filter_update(pdev) != QDF_STATUS_SUCCESS)
dp_info("failed to reset monitor filters"); dp_mon_info("failed to reset monitor filters");
qdf_spin_unlock_bh(&mon_pdev->mon_lock); qdf_spin_unlock_bh(&mon_pdev->mon_lock);
if (mon_pdev->mon_chan_band == REG_BAND_UNKNOWN) if (mon_pdev->mon_chan_band == REG_BAND_UNKNOWN)
@@ -839,12 +835,12 @@ static void dp_flush_monitor_rings(struct dp_soc *soc)
budget = wlan_cfg_get_dma_mon_stat_ring_size(pdev->wlan_cfg_ctx); budget = wlan_cfg_get_dma_mon_stat_ring_size(pdev->wlan_cfg_ctx);
hal_get_sw_hptp(hal_soc, mon_dst_srng, &tp, &hp); hal_get_sw_hptp(hal_soc, mon_dst_srng, &tp, &hp);
dp_info("Before reap: Monitor DST ring HP %u TP %u", hp, tp); dp_mon_info("Before reap: Monitor DST ring HP %u TP %u", hp, tp);
dp_mon_process(soc, &soc->intr_ctx[dp_intr_id], lmac_id, budget); dp_mon_process(soc, &soc->intr_ctx[dp_intr_id], lmac_id, budget);
hal_get_sw_hptp(hal_soc, mon_dst_srng, &tp, &hp); hal_get_sw_hptp(hal_soc, mon_dst_srng, &tp, &hp);
dp_info("After reap: Monitor DST ring HP %u TP %u", hp, tp); dp_mon_info("After reap: Monitor DST ring HP %u TP %u", hp, tp);
} }
#if !defined(DISABLE_MON_CONFIG) #if !defined(DISABLE_MON_CONFIG)
@@ -865,7 +861,7 @@ QDF_STATUS dp_mon_htt_dest_srng_setup(struct dp_soc *soc,
RXDMA_MONITOR_BUF); RXDMA_MONITOR_BUF);
if (status != QDF_STATUS_SUCCESS) { if (status != QDF_STATUS_SUCCESS) {
dp_err("Failed to send htt srng setup message for Rxdma mon buf ring"); dp_mon_err("Failed to send htt srng setup message for Rxdma mon buf ring");
return status; return status;
} }
@@ -875,7 +871,7 @@ QDF_STATUS dp_mon_htt_dest_srng_setup(struct dp_soc *soc,
RXDMA_MONITOR_DST); RXDMA_MONITOR_DST);
if (status != QDF_STATUS_SUCCESS) { if (status != QDF_STATUS_SUCCESS) {
dp_err("Failed to send htt srng setup message for Rxdma mon dst ring"); dp_mon_err("Failed to send htt srng setup message for Rxdma mon dst ring");
return status; return status;
} }
@@ -885,7 +881,7 @@ QDF_STATUS dp_mon_htt_dest_srng_setup(struct dp_soc *soc,
RXDMA_MONITOR_DESC); RXDMA_MONITOR_DESC);
if (status != QDF_STATUS_SUCCESS) { if (status != QDF_STATUS_SUCCESS) {
dp_err("Failed to send htt srng message for Rxdma mon desc ring"); dp_mon_err("Failed to send htt srng message for Rxdma mon desc ring");
return status; return status;
} }
} }
@@ -930,7 +926,7 @@ QDF_STATUS dp_mon_htt_srng_setup(struct dp_soc *soc,
RXDMA_MONITOR_STATUS); RXDMA_MONITOR_STATUS);
if (status != QDF_STATUS_SUCCESS) { if (status != QDF_STATUS_SUCCESS) {
dp_err("Failed to send htt srng setup message for Rxdma mon status ring"); dp_mon_err("Failed to send htt srng setup message for Rxdma mon status ring");
return status; return status;
} }
@@ -958,7 +954,7 @@ QDF_STATUS dp_mon_htt_srng_setup(struct dp_soc *soc,
RXDMA_MONITOR_STATUS); RXDMA_MONITOR_STATUS);
if (status != QDF_STATUS_SUCCESS) { if (status != QDF_STATUS_SUCCESS) {
dp_err("Failed to send htt srng setup message for Rxdma mon status ring"); dp_mon_err("Failed to send htt srng setup msg for Rxdma mon status ring");
return status; return status;
} }
@@ -2940,13 +2936,13 @@ void dp_ppdu_desc_deliver(struct dp_pdev *pdev,
if (!s_ppdu_info->done && !recv_ack_ba_done) { if (!s_ppdu_info->done && !recv_ack_ba_done) {
if (time_delta < MAX_SCHED_STARVE) { if (time_delta < MAX_SCHED_STARVE) {
dp_info("pdev[%d] ppdu_id[%d] sched_cmdid[%d] TLV_B[0x%x] TSF[%u] D[%d]", dp_mon_info("pdev[%d] ppdu_id[%d] sched_cmdid[%d] TLV_B[0x%x] TSF[%u] D[%d]",
pdev->pdev_id, pdev->pdev_id,
s_ppdu_info->ppdu_id, s_ppdu_info->ppdu_id,
s_ppdu_info->sched_cmdid, s_ppdu_info->sched_cmdid,
s_ppdu_info->tlv_bitmap, s_ppdu_info->tlv_bitmap,
s_ppdu_info->tsf_l32, s_ppdu_info->tsf_l32,
s_ppdu_info->done); s_ppdu_info->done);
break; break;
} }
starved = 1; starved = 1;
@@ -2964,11 +2960,11 @@ void dp_ppdu_desc_deliver(struct dp_pdev *pdev,
ppdu_desc->tlv_bitmap = s_ppdu_info->tlv_bitmap; ppdu_desc->tlv_bitmap = s_ppdu_info->tlv_bitmap;
if (starved) { if (starved) {
dp_err("ppdu starved fc[0x%x] h_ftype[%d] tlv_bitmap[0x%x] cs[%d]\n", dp_mon_err("ppdu starved fc[0x%x] h_ftype[%d] tlv_bitmap[0x%x] cs[%d]\n",
ppdu_desc->frame_ctrl, ppdu_desc->frame_ctrl,
ppdu_desc->htt_frame_type, ppdu_desc->htt_frame_type,
ppdu_desc->tlv_bitmap, ppdu_desc->tlv_bitmap,
ppdu_desc->user[0].completion_status); ppdu_desc->user[0].completion_status);
starved = 0; starved = 0;
} }
@@ -3885,7 +3881,7 @@ static int dp_set_pktlog_wifi3(struct dp_pdev *pdev, uint32_t event,
} }
if (mon_soc->reap_timer_init && if (mon_soc->reap_timer_init &&
(!monitor_is_enable_reap_timer_non_pkt(pdev))) (!dp_mon_is_enable_reap_timer_non_pkt(pdev)))
qdf_timer_mod(&mon_soc->mon_reap_timer, qdf_timer_mod(&mon_soc->mon_reap_timer,
DP_INTR_POLL_TIMER_MS); DP_INTR_POLL_TIMER_MS);
} }
@@ -3916,7 +3912,7 @@ static int dp_set_pktlog_wifi3(struct dp_pdev *pdev, uint32_t event,
} }
if (mon_soc->reap_timer_init && if (mon_soc->reap_timer_init &&
(!monitor_is_enable_reap_timer_non_pkt(pdev))) (!dp_mon_is_enable_reap_timer_non_pkt(pdev)))
qdf_timer_mod(&mon_soc->mon_reap_timer, qdf_timer_mod(&mon_soc->mon_reap_timer,
DP_INTR_POLL_TIMER_MS); DP_INTR_POLL_TIMER_MS);
} }
@@ -3939,7 +3935,7 @@ static int dp_set_pktlog_wifi3(struct dp_pdev *pdev, uint32_t event,
/* Nothing needs to be done if monitor mode is /* Nothing needs to be done if monitor mode is
* enabled * enabled
*/ */
dp_info("Monitor mode, CBF setting filters"); dp_mon_info("Mon mode, CBF setting filters");
mon_pdev->rx_pktlog_cbf = true; mon_pdev->rx_pktlog_cbf = true;
return 0; return 0;
} }
@@ -3950,12 +3946,12 @@ static int dp_set_pktlog_wifi3(struct dp_pdev *pdev, uint32_t event,
/* /*
* Set the packet log lite mode filter. * Set the packet log lite mode filter.
*/ */
qdf_info("Non monitor mode: Enable destination ring"); qdf_info("Non mon mode: Enable destination ring");
dp_mon_filter_setup_rx_pkt_log_cbf(pdev); dp_mon_filter_setup_rx_pkt_log_cbf(pdev);
if (dp_mon_filter_update(pdev) != if (dp_mon_filter_update(pdev) !=
QDF_STATUS_SUCCESS) { QDF_STATUS_SUCCESS) {
dp_err("Pktlog set CBF filters failed"); dp_mon_err("Pktlog set CBF filters failed");
dp_mon_filter_reset_rx_pktlog_cbf(pdev); dp_mon_filter_reset_rx_pktlog_cbf(pdev);
mon_pdev->rx_pktlog_mode = mon_pdev->rx_pktlog_mode =
DP_RX_PKTLOG_DISABLED; DP_RX_PKTLOG_DISABLED;
@@ -3964,7 +3960,7 @@ static int dp_set_pktlog_wifi3(struct dp_pdev *pdev, uint32_t event,
} }
if (mon_soc->reap_timer_init && if (mon_soc->reap_timer_init &&
!monitor_is_enable_reap_timer_non_pkt(pdev)) !dp_mon_is_enable_reap_timer_non_pkt(pdev))
qdf_timer_mod(&mon_soc->mon_reap_timer, qdf_timer_mod(&mon_soc->mon_reap_timer,
DP_INTR_POLL_TIMER_MS); DP_INTR_POLL_TIMER_MS);
} }
@@ -4004,7 +4000,7 @@ static int dp_set_pktlog_wifi3(struct dp_pdev *pdev, uint32_t event,
} }
if (mon_soc->reap_timer_init && if (mon_soc->reap_timer_init &&
(!monitor_is_enable_reap_timer_non_pkt(pdev))) (!dp_mon_is_enable_reap_timer_non_pkt(pdev)))
qdf_timer_stop(&mon_soc->mon_reap_timer); qdf_timer_stop(&mon_soc->mon_reap_timer);
} }
break; break;
@@ -4067,14 +4063,14 @@ static void dp_pktlogmod_exit(struct dp_pdev *pdev)
struct dp_mon_pdev *mon_pdev = pdev->monitor_pdev; struct dp_mon_pdev *mon_pdev = pdev->monitor_pdev;
if (!scn) { if (!scn) {
dp_err("Invalid hif(scn) handle"); dp_mon_err("Invalid hif(scn) handle");
return; return;
} }
/* stop mon_reap_timer if it has been started */ /* stop mon_reap_timer if it has been started */
if (mon_pdev->rx_pktlog_mode != DP_RX_PKTLOG_DISABLED && if (mon_pdev->rx_pktlog_mode != DP_RX_PKTLOG_DISABLED &&
mon_soc->reap_timer_init && mon_soc->reap_timer_init &&
(!monitor_is_enable_reap_timer_non_pkt(pdev))) (!dp_mon_is_enable_reap_timer_non_pkt(pdev)))
qdf_timer_sync_cancel(&mon_soc->mon_reap_timer); qdf_timer_sync_cancel(&mon_soc->mon_reap_timer);
pktlogmod_exit(scn); pktlogmod_exit(scn);
@@ -4411,14 +4407,14 @@ static void dp_cfr_filter(struct cdp_soc_t *soc_hdl,
pdev = dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id); pdev = dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id);
if (!pdev) { if (!pdev) {
dp_err("pdev is NULL"); dp_mon_err("pdev is NULL");
return; return;
} }
mon_pdev = pdev->monitor_pdev; mon_pdev = pdev->monitor_pdev;
if (mon_pdev->mvdev) { if (mon_pdev->mvdev) {
dp_info("No action is needed since monitor mode is enabled\n"); dp_mon_info("No action is needed since mon mode is enabled\n");
return; return;
} }
soc = pdev->soc; soc = pdev->soc;
@@ -4426,8 +4422,8 @@ static void dp_cfr_filter(struct cdp_soc_t *soc_hdl,
max_mac_rings = wlan_cfg_get_num_mac_rings(pdev->wlan_cfg_ctx); max_mac_rings = wlan_cfg_get_num_mac_rings(pdev->wlan_cfg_ctx);
dp_is_hw_dbs_enable(soc, &max_mac_rings); dp_is_hw_dbs_enable(soc, &max_mac_rings);
dp_debug("Max_mac_rings %d", max_mac_rings); dp_mon_debug("Max_mac_rings %d", max_mac_rings);
dp_info("enable : %d, mode: 0x%x", enable, filter_val->mode); dp_mon_info("enable : %d, mode: 0x%x", enable, filter_val->mode);
if (enable) { if (enable) {
pdev->cfr_rcc_mode = true; pdev->cfr_rcc_mode = true;
@@ -4487,19 +4483,19 @@ dp_enable_mon_reap_timer(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
pdev = dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id); pdev = dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id);
if (!pdev) { if (!pdev) {
dp_err("pdev is NULL"); dp_mon_err("pdev is NULL");
return; return;
} }
mon_pdev = pdev->monitor_pdev; mon_pdev = pdev->monitor_pdev;
mon_pdev->enable_reap_timer_non_pkt = enable; mon_pdev->enable_reap_timer_non_pkt = enable;
if (mon_pdev->rx_pktlog_mode != DP_RX_PKTLOG_DISABLED) { if (mon_pdev->rx_pktlog_mode != DP_RX_PKTLOG_DISABLED) {
dp_debug("pktlog enabled %d", mon_pdev->rx_pktlog_mode); dp_mon_debug("pktlog enabled %d", mon_pdev->rx_pktlog_mode);
return; return;
} }
if (!mon_soc->reap_timer_init) { if (!mon_soc->reap_timer_init) {
dp_err("reap timer not init"); dp_mon_err("reap timer not init");
return; return;
} }
@@ -4529,14 +4525,14 @@ void dp_pkt_log_init(struct cdp_soc_t *soc_hdl, uint8_t pdev_id, void *scn)
struct dp_mon_pdev *mon_pdev; struct dp_mon_pdev *mon_pdev;
if (!handle) { if (!handle) {
dp_err("pdev handle is NULL"); dp_mon_err("pdev handle is NULL");
return; return;
} }
mon_pdev = handle->monitor_pdev; mon_pdev = handle->monitor_pdev;
if (mon_pdev->pkt_log_init) { if (mon_pdev->pkt_log_init) {
mon_init_err("%pK: Packet log not initialized", soc); dp_mon_err("%pK: Packet log not initialized", soc);
return; return;
} }
@@ -4717,7 +4713,7 @@ QDF_STATUS dp_peer_qos_stats_notify(struct dp_pdev *dp_pdev,
struct cdp_interface_peer_qos_stats qos_stats_intf; struct cdp_interface_peer_qos_stats qos_stats_intf;
if (ppdu_user->peer_id == HTT_INVALID_PEER) { if (ppdu_user->peer_id == HTT_INVALID_PEER) {
dp_err("Invalid peer id"); dp_mon_err("Invalid peer id");
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }
qdf_mem_zero(&qos_stats_intf, sizeof(qos_stats_intf)); qdf_mem_zero(&qos_stats_intf, sizeof(qos_stats_intf));
@@ -4776,7 +4772,7 @@ dp_enable_peer_based_pktlog(struct cdp_soc_t *soc, uint8_t pdev_id,
0, DP_VDEV_ALL, DP_MOD_ID_CDP); 0, DP_VDEV_ALL, DP_MOD_ID_CDP);
if (!peer) { if (!peer) {
dp_err("Invalid Peer"); dp_mon_err("Invalid Peer");
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }
@@ -4871,8 +4867,8 @@ static QDF_STATUS dp_vdev_set_monitor_mode_rings(struct dp_pdev *pdev,
/* Allocate sw rx descriptor pool for mon RxDMA buffer ring */ /* Allocate sw rx descriptor pool for mon RxDMA buffer ring */
status = dp_rx_pdev_mon_buf_desc_pool_alloc(pdev, mac_for_pdev); status = dp_rx_pdev_mon_buf_desc_pool_alloc(pdev, mac_for_pdev);
if (!QDF_IS_STATUS_SUCCESS(status)) { if (!QDF_IS_STATUS_SUCCESS(status)) {
dp_err("%s: dp_rx_pdev_mon_buf_desc_pool_alloc() failed\n", dp_mon_err("%s: dp_rx_pdev_mon_buf_desc_pool_alloc() failed\n",
__func__); __func__);
goto fail0; goto fail0;
} }
@@ -4902,8 +4898,8 @@ static QDF_STATUS dp_vdev_set_monitor_mode_rings(struct dp_pdev *pdev,
/* Allocate link descriptors for the mon link descriptor ring */ /* Allocate link descriptors for the mon link descriptor ring */
status = dp_hw_link_desc_pool_banks_alloc(soc, mac_for_pdev); status = dp_hw_link_desc_pool_banks_alloc(soc, mac_for_pdev);
if (!QDF_IS_STATUS_SUCCESS(status)) { if (!QDF_IS_STATUS_SUCCESS(status)) {
dp_err("%s: dp_hw_link_desc_pool_banks_alloc() failed", dp_mon_err("%s: dp_hw_link_desc_pool_banks_alloc() failed",
__func__); __func__);
goto fail0; goto fail0;
} }
dp_link_desc_ring_replenish(soc, mac_for_pdev); dp_link_desc_ring_replenish(soc, mac_for_pdev);
@@ -4959,14 +4955,14 @@ static void dp_mon_vdev_timer(void *arg)
while (yield == DP_TIMER_NO_YIELD) { while (yield == DP_TIMER_NO_YIELD) {
for (lmac_iter = 0; lmac_iter < max_mac_rings; lmac_iter++) { for (lmac_iter = 0; lmac_iter < max_mac_rings; lmac_iter++) {
if (lmac_iter == lmac_id) if (lmac_iter == lmac_id)
work_done = monitor_process(soc, NULL, work_done = dp_mon_process(soc, NULL,
lmac_iter, lmac_iter,
remaining_quota); remaining_quota);
else else
work_done = work_done =
monitor_drop_packets_for_mac(pdev, dp_mon_drop_packets_for_mac(pdev,
lmac_iter, lmac_iter,
remaining_quota); remaining_quota);
if (work_done) { if (work_done) {
budget -= work_done; budget -= work_done;
if (budget <= 0) { if (budget <= 0) {
@@ -5341,13 +5337,13 @@ QDF_STATUS dp_mon_soc_cfg_init(struct dp_soc *soc)
mon_soc->hw_nac_monitor_support = 1; mon_soc->hw_nac_monitor_support = 1;
break; break;
default: default:
qdf_print("%s: Unknown tgt type %d\n", __func__, target_type); dp_mon_info("%s: Unknown tgt type %d\n", __func__, target_type);
qdf_assert_always(0); qdf_assert_always(0);
break; break;
} }
mon_init_info("hw_nac_monitor_support = %d", dp_mon_info("hw_nac_monitor_support = %d",
mon_soc->hw_nac_monitor_support); mon_soc->hw_nac_monitor_support);
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
@@ -5358,7 +5354,7 @@ QDF_STATUS dp_mon_pdev_attach(struct dp_pdev *pdev)
struct dp_mon_pdev *mon_pdev; struct dp_mon_pdev *mon_pdev;
if (!pdev) { if (!pdev) {
mon_init_err("pdev is NULL"); dp_mon_err("pdev is NULL");
goto fail0; goto fail0;
} }
@@ -5366,18 +5362,19 @@ QDF_STATUS dp_mon_pdev_attach(struct dp_pdev *pdev)
mon_pdev = (struct dp_mon_pdev *)qdf_mem_malloc(sizeof(*mon_pdev)); mon_pdev = (struct dp_mon_pdev *)qdf_mem_malloc(sizeof(*mon_pdev));
if (!mon_pdev) { if (!mon_pdev) {
mon_init_err("%pK: MONITOR pdev allocation failed", pdev); dp_mon_err("%pK: MONITOR pdev allocation failed", pdev);
goto fail0; goto fail0;
} }
if (dp_mon_rings_alloc(soc, pdev)) { if (dp_mon_rings_alloc(soc, pdev)) {
mon_init_err("%pK: MONITOR rings setup failed", pdev); dp_mon_err("%pK: MONITOR rings setup failed", pdev);
goto fail1; goto fail1;
} }
/* Rx monitor mode specific init */ /* Rx monitor mode specific init */
if (dp_rx_pdev_mon_desc_pool_alloc(pdev)) { if (dp_rx_pdev_mon_desc_pool_alloc(pdev)) {
mon_init_err("%pK: dp_rx_pdev_mon_attach failed", pdev); dp_mon_err("%pK: dp_rx_pdev_mon_desc_pool_alloc failed",
pdev);
goto fail2; goto fail2;
} }
@@ -5398,7 +5395,7 @@ QDF_STATUS dp_mon_pdev_detach(struct dp_pdev *pdev)
struct dp_mon_pdev *mon_pdev; struct dp_mon_pdev *mon_pdev;
if (!pdev) { if (!pdev) {
mon_init_err("pdev is NULL"); dp_mon_err("pdev is NULL");
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }
mon_pdev = pdev->monitor_pdev; mon_pdev = pdev->monitor_pdev;
@@ -5415,7 +5412,7 @@ QDF_STATUS dp_mon_pdev_init(struct dp_pdev *pdev)
struct dp_mon_pdev *mon_pdev; struct dp_mon_pdev *mon_pdev;
if (!pdev) { if (!pdev) {
mon_init_err("pdev is NULL"); dp_mon_err("pdev is NULL");
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }
@@ -5424,8 +5421,8 @@ QDF_STATUS dp_mon_pdev_init(struct dp_pdev *pdev)
mon_pdev->filter = dp_mon_filter_alloc(mon_pdev); mon_pdev->filter = dp_mon_filter_alloc(mon_pdev);
if (!mon_pdev->filter) { if (!mon_pdev->filter) {
mon_init_err("%pK: Memory allocation failed for monitor filter", dp_mon_err("%pK: Memory allocation failed for monitor filter",
pdev); pdev);
return QDF_STATUS_E_NOMEM; return QDF_STATUS_E_NOMEM;
} }
@@ -5463,7 +5460,7 @@ QDF_STATUS dp_mon_pdev_init(struct dp_pdev *pdev)
goto fail0; goto fail0;
if (dp_mon_rings_init(soc, pdev)) { if (dp_mon_rings_init(soc, pdev)) {
mon_init_err("%pK: MONITOR rings setup failed", pdev); dp_mon_err("%pK: MONITOR rings setup failed", pdev);
goto fail1; goto fail1;
} }
/* initialize sw monitor rx descriptors */ /* initialize sw monitor rx descriptors */
@@ -5513,7 +5510,7 @@ static QDF_STATUS dp_mon_vdev_attach(struct dp_vdev *vdev)
mon_vdev = (struct dp_mon_vdev *)qdf_mem_malloc(sizeof(*mon_vdev)); mon_vdev = (struct dp_mon_vdev *)qdf_mem_malloc(sizeof(*mon_vdev));
if (!mon_vdev) { if (!mon_vdev) {
mon_init_err("%pK: Monitor vdev allocation failed", vdev); dp_mon_err("%pK: Monitor vdev allocation failed", vdev);
return QDF_STATUS_E_NOMEM; return QDF_STATUS_E_NOMEM;
} }
@@ -5544,7 +5541,7 @@ static QDF_STATUS dp_mon_peer_attach(struct dp_peer *peer)
mon_peer = (struct dp_mon_peer *)qdf_mem_malloc(sizeof(*mon_peer)); mon_peer = (struct dp_mon_peer *)qdf_mem_malloc(sizeof(*mon_peer));
if (!mon_peer) { if (!mon_peer) {
mon_init_err("%pK: MONITOR peer allocation failed", peer); dp_mon_err("%pK: MONITOR peer allocation failed", peer);
return QDF_STATUS_E_NOMEM; return QDF_STATUS_E_NOMEM;
} }
@@ -5677,7 +5674,7 @@ void dp_mon_cdp_ops_register(struct dp_soc *soc)
struct cdp_ops *ops = soc->cdp_soc.ops; struct cdp_ops *ops = soc->cdp_soc.ops;
if (!ops) { if (!ops) {
mon_init_err("cdp_ops is NULL"); dp_mon_err("cdp_ops is NULL");
return; return;
} }
@@ -5727,7 +5724,7 @@ void dp_mon_cdp_ops_deregister(struct dp_soc *soc)
struct cdp_ops *ops = soc->cdp_soc.ops; struct cdp_ops *ops = soc->cdp_soc.ops;
if (!ops) { if (!ops) {
mon_init_err("cdp_ops is NULL"); dp_mon_err("cdp_ops is NULL");
return; return;
} }
@@ -5768,13 +5765,13 @@ QDF_STATUS dp_mon_soc_attach(struct dp_soc *soc)
struct dp_mon_soc *mon_soc; struct dp_mon_soc *mon_soc;
if (!soc) { if (!soc) {
mon_init_err("dp_soc is NULL"); dp_mon_err("dp_soc is NULL");
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }
mon_soc = (struct dp_mon_soc *)qdf_mem_malloc(sizeof(*mon_soc)); mon_soc = (struct dp_mon_soc *)qdf_mem_malloc(sizeof(*mon_soc));
if (!mon_soc) { if (!mon_soc) {
mon_init_err("%pK: mem allocation failed", soc); dp_mon_err("%pK: mem allocation failed", soc);
return QDF_STATUS_E_NOMEM; return QDF_STATUS_E_NOMEM;
} }
/* register monitor ops */ /* register monitor ops */
@@ -5790,7 +5787,7 @@ QDF_STATUS dp_mon_soc_detach(struct dp_soc *soc)
struct dp_mon_soc *mon_soc; struct dp_mon_soc *mon_soc;
if (!soc) { if (!soc) {
mon_init_err("dp_soc is NULL"); dp_mon_err("dp_soc is NULL");
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }

File diff suppressed because it is too large Load Diff