qcacmn: fix compilation issue without monitor support
Compilation is failing when Monitor support is disabled Moved monitor related API and structure to monitor header files. CRs-Fixed: 3257872 Change-Id: Ie1b3dc16b38c88bfd73fc89aaa395d4b57a61e5c
This commit is contained in:

gecommit door
Madan Koyyalamudi

bovenliggende
c06d7b8d27
commit
c31daef130
@@ -23,9 +23,12 @@
|
|||||||
#include "dp_be.h"
|
#include "dp_be.h"
|
||||||
#include "dp_be_tx.h"
|
#include "dp_be_tx.h"
|
||||||
#include "dp_be_rx.h"
|
#include "dp_be_rx.h"
|
||||||
|
#ifdef WIFI_MONITOR_SUPPORT
|
||||||
#if !defined(DISABLE_MON_CONFIG) && defined(QCA_MONITOR_2_0_SUPPORT)
|
#if !defined(DISABLE_MON_CONFIG) && defined(QCA_MONITOR_2_0_SUPPORT)
|
||||||
#include "dp_mon_2.0.h"
|
#include "dp_mon_2.0.h"
|
||||||
#endif
|
#endif
|
||||||
|
#include "dp_mon.h"
|
||||||
|
#endif
|
||||||
#include <hal_be_api.h>
|
#include <hal_be_api.h>
|
||||||
|
|
||||||
/* Generic AST entry aging timer value */
|
/* Generic AST entry aging timer value */
|
||||||
@@ -89,32 +92,6 @@ qdf_size_t dp_get_context_size_be(enum dp_context_type context_type)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(DISABLE_MON_CONFIG) && defined(QCA_MONITOR_2_0_SUPPORT)
|
|
||||||
qdf_size_t dp_mon_get_context_size_be(enum dp_context_type context_type)
|
|
||||||
{
|
|
||||||
switch (context_type) {
|
|
||||||
case DP_CONTEXT_TYPE_MON_SOC:
|
|
||||||
return sizeof(struct dp_mon_soc_be);
|
|
||||||
case DP_CONTEXT_TYPE_MON_PDEV:
|
|
||||||
return sizeof(struct dp_mon_pdev_be);
|
|
||||||
default:
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
qdf_size_t dp_mon_get_context_size_be(enum dp_context_type context_type)
|
|
||||||
{
|
|
||||||
switch (context_type) {
|
|
||||||
case DP_CONTEXT_TYPE_MON_SOC:
|
|
||||||
return sizeof(struct dp_mon_soc);
|
|
||||||
case DP_CONTEXT_TYPE_MON_PDEV:
|
|
||||||
return sizeof(struct dp_mon_pdev);
|
|
||||||
default:
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef DP_FEATURE_HW_COOKIE_CONVERSION
|
#ifdef DP_FEATURE_HW_COOKIE_CONVERSION
|
||||||
#if defined(WLAN_MAX_PDEVS) && (WLAN_MAX_PDEVS == 1)
|
#if defined(WLAN_MAX_PDEVS) && (WLAN_MAX_PDEVS == 1)
|
||||||
/**
|
/**
|
||||||
@@ -1971,7 +1948,9 @@ void dp_initialize_arch_ops_be(struct dp_arch_ops *arch_ops)
|
|||||||
arch_ops->dp_tx_compute_hw_delay = dp_tx_compute_tx_delay_be;
|
arch_ops->dp_tx_compute_hw_delay = dp_tx_compute_tx_delay_be;
|
||||||
#endif
|
#endif
|
||||||
arch_ops->txrx_get_context_size = dp_get_context_size_be;
|
arch_ops->txrx_get_context_size = dp_get_context_size_be;
|
||||||
|
#ifdef WIFI_MONITOR_SUPPORT
|
||||||
arch_ops->txrx_get_mon_context_size = dp_mon_get_context_size_be;
|
arch_ops->txrx_get_mon_context_size = dp_mon_get_context_size_be;
|
||||||
|
#endif
|
||||||
arch_ops->dp_rx_desc_cookie_2_va =
|
arch_ops->dp_rx_desc_cookie_2_va =
|
||||||
dp_rx_desc_cookie_2_va_be;
|
dp_rx_desc_cookie_2_va_be;
|
||||||
arch_ops->dp_rx_intrabss_handle_nawds = dp_rx_intrabss_handle_nawds_be;
|
arch_ops->dp_rx_intrabss_handle_nawds = dp_rx_intrabss_handle_nawds_be;
|
||||||
|
@@ -26,7 +26,9 @@
|
|||||||
#else
|
#else
|
||||||
#include <dp_peer.h>
|
#include <dp_peer.h>
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef WIFI_MONITOR_SUPPORT
|
||||||
#include <dp_mon.h>
|
#include <dp_mon.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
enum CMEM_MEM_CLIENTS {
|
enum CMEM_MEM_CLIENTS {
|
||||||
COOKIE_CONVERSION,
|
COOKIE_CONVERSION,
|
||||||
@@ -355,14 +357,6 @@ void dp_initialize_arch_ops_be(struct dp_arch_ops *arch_ops);
|
|||||||
*/
|
*/
|
||||||
qdf_size_t dp_get_context_size_be(enum dp_context_type context_type);
|
qdf_size_t dp_get_context_size_be(enum dp_context_type context_type);
|
||||||
|
|
||||||
/**
|
|
||||||
* dp_mon_get_context_size_be() - get BE specific size for mon pdev/soc
|
|
||||||
* @arch_ops: arch ops pointer
|
|
||||||
*
|
|
||||||
* Return: size in bytes for the context_type
|
|
||||||
*/
|
|
||||||
qdf_size_t dp_mon_get_context_size_be(enum dp_context_type context_type);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dp_get_be_soc_from_dp_soc() - get dp_soc_be from dp_soc
|
* dp_get_be_soc_from_dp_soc() - get dp_soc_be from dp_soc
|
||||||
* @soc: dp_soc pointer
|
* @soc: dp_soc pointer
|
||||||
@@ -374,18 +368,6 @@ static inline struct dp_soc_be *dp_get_be_soc_from_dp_soc(struct dp_soc *soc)
|
|||||||
return (struct dp_soc_be *)soc;
|
return (struct dp_soc_be *)soc;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* dp_get_be_mon_soc_from_dp_mon_soc() - get dp_mon_soc_be from dp_mon_soc
|
|
||||||
* @soc: dp_mon_soc pointer
|
|
||||||
*
|
|
||||||
* Return: dp_mon_soc_be pointer
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
struct dp_mon_soc_be *dp_get_be_mon_soc_from_dp_mon_soc(struct dp_mon_soc *soc)
|
|
||||||
{
|
|
||||||
return (struct dp_mon_soc_be *)soc;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef WLAN_MLO_MULTI_CHIP
|
#ifdef WLAN_MLO_MULTI_CHIP
|
||||||
typedef struct dp_mlo_ctxt *dp_mld_peer_hash_obj_t;
|
typedef struct dp_mlo_ctxt *dp_mld_peer_hash_obj_t;
|
||||||
|
|
||||||
@@ -521,20 +503,6 @@ struct dp_pdev_be *dp_get_be_pdev_from_dp_pdev(struct dp_pdev *pdev)
|
|||||||
return (struct dp_pdev_be *)pdev;
|
return (struct dp_pdev_be *)pdev;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef QCA_MONITOR_2_0_SUPPORT
|
|
||||||
/**
|
|
||||||
* dp_get_be_mon_pdev_from_dp_mon_pdev() - get dp_mon_pdev_be from dp_mon_pdev
|
|
||||||
* @pdev: dp_mon_pdev pointer
|
|
||||||
*
|
|
||||||
* Return: dp_mon_pdev_be pointer
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
struct dp_mon_pdev_be *dp_get_be_mon_pdev_from_dp_mon_pdev(struct dp_mon_pdev *mon_pdev)
|
|
||||||
{
|
|
||||||
return (struct dp_mon_pdev_be *)mon_pdev;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dp_get_be_vdev_from_dp_vdev() - get dp_vdev_be from dp_vdev
|
* dp_get_be_vdev_from_dp_vdev() - get dp_vdev_be from dp_vdev
|
||||||
* @vdev: dp_vdev pointer
|
* @vdev: dp_vdev pointer
|
||||||
|
@@ -21,6 +21,7 @@
|
|||||||
#define _DP_INTERNAL_H_
|
#define _DP_INTERNAL_H_
|
||||||
|
|
||||||
#include "dp_types.h"
|
#include "dp_types.h"
|
||||||
|
#include "dp_htt.h"
|
||||||
|
|
||||||
#define RX_BUFFER_SIZE_PKTLOG_LITE 1024
|
#define RX_BUFFER_SIZE_PKTLOG_LITE 1024
|
||||||
|
|
||||||
@@ -562,8 +563,9 @@ static inline void dp_monitor_pktlogmod_exit(struct dp_pdev *pdev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
void dp_monitor_vdev_set_monitor_mode_buf_rings(struct dp_pdev *pdev)
|
QDF_STATUS dp_monitor_vdev_set_monitor_mode_buf_rings(struct dp_pdev *pdev)
|
||||||
{
|
{
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
@@ -717,6 +719,18 @@ dp_monitor_get_chan_band(struct dp_pdev *pdev)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
dp_monitor_get_chan_num(struct dp_pdev *pdev)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline qdf_freq_t
|
||||||
|
dp_monitor_get_chan_freq(struct dp_pdev *pdev)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static inline void dp_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)
|
||||||
@@ -805,6 +819,104 @@ dp_mon_rx_hdr_length_set(struct dp_soc *soc, uint32_t *msg_word,
|
|||||||
struct htt_rx_ring_tlv_filter *tlv_filter)
|
struct htt_rx_ring_tlv_filter *tlv_filter)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void dp_monitor_soc_init(struct dp_soc *soc)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void dp_monitor_soc_deinit(struct dp_soc *soc)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
QDF_STATUS dp_monitor_config_undecoded_metadata_capture(struct dp_pdev *pdev,
|
||||||
|
int val)
|
||||||
|
{
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline QDF_STATUS
|
||||||
|
dp_monitor_config_undecoded_metadata_phyrx_error_mask(struct dp_pdev *pdev,
|
||||||
|
int mask1, int mask2)
|
||||||
|
{
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline QDF_STATUS
|
||||||
|
dp_monitor_get_undecoded_metadata_phyrx_error_mask(struct dp_pdev *pdev,
|
||||||
|
int *mask, int *mask_cont)
|
||||||
|
{
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline QDF_STATUS dp_monitor_soc_htt_srng_setup(struct dp_soc *soc)
|
||||||
|
{
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline bool dp_is_monitor_mode_using_poll(struct dp_soc *soc)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
uint32_t dp_tx_mon_buf_refill(struct dp_intr *int_ctx)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline uint32_t
|
||||||
|
dp_tx_mon_process(struct dp_soc *soc, struct dp_intr *int_ctx,
|
||||||
|
uint32_t mac_id, uint32_t quota)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
uint32_t dp_rx_mon_buf_refill(struct dp_intr *int_ctx)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline bool dp_monitor_is_tx_cap_enabled(struct dp_peer *peer)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline bool dp_monitor_is_rx_cap_enabled(struct dp_peer *peer)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
dp_rx_mon_enable(struct dp_soc *soc, uint32_t *msg_word,
|
||||||
|
struct htt_rx_ring_tlv_filter *tlv_filter)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
dp_mon_rx_packet_length_set(struct dp_soc *soc, uint32_t *msg_word,
|
||||||
|
struct htt_rx_ring_tlv_filter *tlv_filter)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
dp_mon_rx_enable_mpdu_logging(struct dp_soc *soc, uint32_t *msg_word,
|
||||||
|
struct htt_rx_ring_tlv_filter *tlv_filter)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
dp_mon_rx_wmask_subscribe(struct dp_soc *soc, uint32_t *msg_word,
|
||||||
|
struct htt_rx_ring_tlv_filter *tlv_filter)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
void dp_monitor_peer_telemetry_stats(struct dp_peer *peer,
|
||||||
|
struct cdp_peer_telemetry_stats *stats)
|
||||||
|
{
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -1802,10 +1802,8 @@ dp_print_peer_info(struct dp_soc *soc, struct dp_peer *peer, void *arg)
|
|||||||
txrx_peer->nawds_enabled,
|
txrx_peer->nawds_enabled,
|
||||||
txrx_peer->bss_peer,
|
txrx_peer->bss_peer,
|
||||||
txrx_peer->wds_enabled,
|
txrx_peer->wds_enabled,
|
||||||
peer->monitor_peer ?
|
dp_monitor_is_tx_cap_enabled(peer),
|
||||||
peer->monitor_peer->tx_cap_enabled : 0,
|
dp_monitor_is_rx_cap_enabled(peer));
|
||||||
peer->monitor_peer ?
|
|
||||||
peer->monitor_peer->rx_cap_enabled : 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -6138,15 +6136,12 @@ static void dp_soc_deinit(void *txrx_soc)
|
|||||||
{
|
{
|
||||||
struct dp_soc *soc = (struct dp_soc *)txrx_soc;
|
struct dp_soc *soc = (struct dp_soc *)txrx_soc;
|
||||||
struct htt_soc *htt_soc = soc->htt_handle;
|
struct htt_soc *htt_soc = soc->htt_handle;
|
||||||
struct dp_mon_ops *mon_ops;
|
|
||||||
|
|
||||||
qdf_atomic_set(&soc->cmn_init_done, 0);
|
qdf_atomic_set(&soc->cmn_init_done, 0);
|
||||||
|
|
||||||
soc->arch_ops.txrx_soc_deinit(soc);
|
soc->arch_ops.txrx_soc_deinit(soc);
|
||||||
|
|
||||||
mon_ops = dp_mon_ops_get(soc);
|
dp_monitor_soc_deinit(soc);
|
||||||
if (mon_ops && mon_ops->mon_soc_deinit)
|
|
||||||
mon_ops->mon_soc_deinit(soc);
|
|
||||||
|
|
||||||
/* free peer tables & AST tables allocated during peer_map_attach */
|
/* free peer tables & AST tables allocated during peer_map_attach */
|
||||||
if (soc->peer_map_attach_success) {
|
if (soc->peer_map_attach_success) {
|
||||||
@@ -10301,11 +10296,11 @@ static QDF_STATUS dp_get_pdev_param(struct cdp_soc_t *cdp_soc, uint8_t pdev_id,
|
|||||||
break;
|
break;
|
||||||
case CDP_MONITOR_CHANNEL:
|
case CDP_MONITOR_CHANNEL:
|
||||||
val->cdp_pdev_param_monitor_chan =
|
val->cdp_pdev_param_monitor_chan =
|
||||||
((struct dp_pdev *)pdev)->monitor_pdev->mon_chan_num;
|
dp_monitor_get_chan_num((struct dp_pdev *)pdev);
|
||||||
break;
|
break;
|
||||||
case CDP_MONITOR_FREQUENCY:
|
case CDP_MONITOR_FREQUENCY:
|
||||||
val->cdp_pdev_param_mon_freq =
|
val->cdp_pdev_param_mon_freq =
|
||||||
((struct dp_pdev *)pdev)->monitor_pdev->mon_chan_freq;
|
dp_monitor_get_chan_freq((struct dp_pdev *)pdev);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
@@ -14940,7 +14935,6 @@ void *dp_soc_init(struct dp_soc *soc, HTC_HANDLE htc_handle,
|
|||||||
bool is_monitor_mode = false;
|
bool is_monitor_mode = false;
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
int num_dp_msi;
|
int num_dp_msi;
|
||||||
struct dp_mon_ops *mon_ops;
|
|
||||||
|
|
||||||
wlan_minidump_log(soc, sizeof(*soc), soc->ctrl_psoc,
|
wlan_minidump_log(soc, sizeof(*soc), soc->ctrl_psoc,
|
||||||
WLAN_MD_DP_SOC, "dp_soc");
|
WLAN_MD_DP_SOC, "dp_soc");
|
||||||
@@ -15071,9 +15065,7 @@ void *dp_soc_init(struct dp_soc *soc, HTC_HANDLE htc_handle,
|
|||||||
wlan_cfg_get_defrag_timeout_check(soc->wlan_cfg_ctx);
|
wlan_cfg_get_defrag_timeout_check(soc->wlan_cfg_ctx);
|
||||||
qdf_spinlock_create(&soc->rx.defrag.defrag_lock);
|
qdf_spinlock_create(&soc->rx.defrag.defrag_lock);
|
||||||
|
|
||||||
mon_ops = dp_mon_ops_get(soc);
|
dp_monitor_soc_init(soc);
|
||||||
if (mon_ops && mon_ops->mon_soc_init)
|
|
||||||
mon_ops->mon_soc_init(soc);
|
|
||||||
|
|
||||||
qdf_atomic_set(&soc->cmn_init_done, 1);
|
qdf_atomic_set(&soc->cmn_init_done, 1);
|
||||||
|
|
||||||
|
@@ -4167,6 +4167,20 @@ dp_update_no_ack_stats(qdf_nbuf_t nbuf, struct dp_txrx_peer *txrx_peer)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef QCA_ENHANCED_STATS_SUPPORT
|
#ifndef QCA_ENHANCED_STATS_SUPPORT
|
||||||
|
#ifdef DP_PEER_EXTENDED_API
|
||||||
|
static inline uint8_t
|
||||||
|
dp_tx_get_mpdu_retry_threshold(struct dp_txrx_peer *txrx_peer)
|
||||||
|
{
|
||||||
|
return txrx_peer->mpdu_retry_threshold;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static inline uint8_t
|
||||||
|
dp_tx_get_mpdu_retry_threshold(struct dp_txrx_peer *txrx_peer)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dp_tx_update_peer_extd_stats()- Update Tx extended path stats for peer
|
* dp_tx_update_peer_extd_stats()- Update Tx extended path stats for peer
|
||||||
*
|
*
|
||||||
@@ -4180,7 +4194,7 @@ dp_tx_update_peer_extd_stats(struct hal_tx_completion_status *ts,
|
|||||||
struct dp_txrx_peer *txrx_peer)
|
struct dp_txrx_peer *txrx_peer)
|
||||||
{
|
{
|
||||||
uint8_t mcs, pkt_type, dst_mcs_idx;
|
uint8_t mcs, pkt_type, dst_mcs_idx;
|
||||||
uint8_t retry_threshold = txrx_peer->mpdu_retry_threshold;
|
uint8_t retry_threshold = dp_tx_get_mpdu_retry_threshold(txrx_peer);
|
||||||
|
|
||||||
mcs = ts->mcs;
|
mcs = ts->mcs;
|
||||||
pkt_type = ts->pkt_type;
|
pkt_type = ts->pkt_type;
|
||||||
@@ -4943,7 +4957,7 @@ void dp_tx_update_peer_basic_stats(struct dp_txrx_peer *txrx_peer,
|
|||||||
uint32_t length, uint8_t tx_status,
|
uint32_t length, uint8_t tx_status,
|
||||||
bool update)
|
bool update)
|
||||||
{
|
{
|
||||||
if (!peer->hw_txrx_stats_en) {
|
if (!txrx_peer->hw_txrx_stats_en) {
|
||||||
DP_PEER_STATS_FLAT_INC_PKT(txrx_peer, comp_pkt, 1, length);
|
DP_PEER_STATS_FLAT_INC_PKT(txrx_peer, comp_pkt, 1, length);
|
||||||
|
|
||||||
if (tx_status != HAL_TX_TQM_RR_FRAME_ACKED)
|
if (tx_status != HAL_TX_TQM_RR_FRAME_ACKED)
|
||||||
|
@@ -1904,7 +1904,9 @@ struct dp_arch_ops {
|
|||||||
|
|
||||||
/* Misc Arch Ops */
|
/* Misc Arch Ops */
|
||||||
qdf_size_t (*txrx_get_context_size)(enum dp_context_type);
|
qdf_size_t (*txrx_get_context_size)(enum dp_context_type);
|
||||||
|
#ifdef WIFI_MONITOR_SUPPORT
|
||||||
qdf_size_t (*txrx_get_mon_context_size)(enum dp_context_type);
|
qdf_size_t (*txrx_get_mon_context_size)(enum dp_context_type);
|
||||||
|
#endif
|
||||||
int (*dp_srng_test_and_update_nf_params)(struct dp_soc *soc,
|
int (*dp_srng_test_and_update_nf_params)(struct dp_soc *soc,
|
||||||
struct dp_srng *dp_srng,
|
struct dp_srng *dp_srng,
|
||||||
int *max_reap_limit);
|
int *max_reap_limit);
|
||||||
|
@@ -27,6 +27,9 @@
|
|||||||
#include "dp_peer.h"
|
#include "dp_peer.h"
|
||||||
#include <wlan_utility.h>
|
#include <wlan_utility.h>
|
||||||
#include "dp_ipa.h"
|
#include "dp_ipa.h"
|
||||||
|
#ifdef WIFI_MONITOR_SUPPORT
|
||||||
|
#include <dp_mon_1.0.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(WLAN_MAX_PDEVS) && (WLAN_MAX_PDEVS == 1)
|
#if defined(WLAN_MAX_PDEVS) && (WLAN_MAX_PDEVS == 1)
|
||||||
static struct wlan_cfg_tcl_wbm_ring_num_map g_tcl_wbm_map_array[MAX_TCL_DATA_RINGS] = {
|
static struct wlan_cfg_tcl_wbm_ring_num_map g_tcl_wbm_map_array[MAX_TCL_DATA_RINGS] = {
|
||||||
@@ -96,18 +99,6 @@ qdf_size_t dp_get_context_size_li(enum dp_context_type context_type)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
qdf_size_t dp_mon_get_context_size_li(enum dp_context_type context_type)
|
|
||||||
{
|
|
||||||
switch (context_type) {
|
|
||||||
case DP_CONTEXT_TYPE_MON_PDEV:
|
|
||||||
return sizeof(struct dp_mon_pdev_li);
|
|
||||||
case DP_CONTEXT_TYPE_MON_SOC:
|
|
||||||
return sizeof(struct dp_mon_soc_li);
|
|
||||||
default:
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static QDF_STATUS dp_soc_attach_li(struct dp_soc *soc,
|
static QDF_STATUS dp_soc_attach_li(struct dp_soc *soc,
|
||||||
struct cdp_soc_attach_params *params)
|
struct cdp_soc_attach_params *params)
|
||||||
{
|
{
|
||||||
@@ -597,7 +588,9 @@ void dp_initialize_arch_ops_li(struct dp_arch_ops *arch_ops)
|
|||||||
arch_ops->dp_rx_desc_pool_deinit = dp_rx_desc_pool_deinit_generic;
|
arch_ops->dp_rx_desc_pool_deinit = dp_rx_desc_pool_deinit_generic;
|
||||||
#endif
|
#endif
|
||||||
arch_ops->txrx_get_context_size = dp_get_context_size_li;
|
arch_ops->txrx_get_context_size = dp_get_context_size_li;
|
||||||
|
#ifdef WIFI_MONITOR_SUPPORT
|
||||||
arch_ops->txrx_get_mon_context_size = dp_mon_get_context_size_li;
|
arch_ops->txrx_get_mon_context_size = dp_mon_get_context_size_li;
|
||||||
|
#endif
|
||||||
arch_ops->txrx_soc_attach = dp_soc_attach_li;
|
arch_ops->txrx_soc_attach = dp_soc_attach_li;
|
||||||
arch_ops->txrx_soc_detach = dp_soc_detach_li;
|
arch_ops->txrx_soc_detach = dp_soc_detach_li;
|
||||||
arch_ops->txrx_soc_init = dp_soc_init_li;
|
arch_ops->txrx_soc_init = dp_soc_init_li;
|
||||||
|
@@ -20,7 +20,9 @@
|
|||||||
#define __DP_LI_H
|
#define __DP_LI_H
|
||||||
|
|
||||||
#include <dp_types.h>
|
#include <dp_types.h>
|
||||||
|
#ifdef WIFI_MONITOR_SUPPORT
|
||||||
#include <dp_mon.h>
|
#include <dp_mon.h>
|
||||||
|
#endif
|
||||||
#include <hal_li_tx.h>
|
#include <hal_li_tx.h>
|
||||||
#include <hal_li_rx.h>
|
#include <hal_li_rx.h>
|
||||||
|
|
||||||
@@ -59,22 +61,6 @@ struct dp_peer_li {
|
|||||||
struct dp_peer peer;
|
struct dp_peer peer;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* struct dp_mon_soc_li - Extended DP mon soc for LI targets
|
|
||||||
* @mon_soc: dp_mon_soc structure
|
|
||||||
*/
|
|
||||||
struct dp_mon_soc_li {
|
|
||||||
struct dp_mon_soc mon_soc;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* struct dp_mon_pdev_li - Extended DP mon pdev for LI targets
|
|
||||||
* @mon_pdev: dp_mon_pdev structure
|
|
||||||
*/
|
|
||||||
struct dp_mon_pdev_li {
|
|
||||||
struct dp_mon_pdev mon_pdev;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dp_get_soc_context_size_LI() - get context size for dp_soc_li
|
* dp_get_soc_context_size_LI() - get context size for dp_soc_li
|
||||||
*
|
*
|
||||||
@@ -98,13 +84,4 @@ void dp_initialize_arch_ops_li(struct dp_arch_ops *arch_ops);
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
qdf_size_t dp_get_context_size_li(enum dp_context_type context_type);
|
qdf_size_t dp_get_context_size_li(enum dp_context_type context_type);
|
||||||
|
|
||||||
/**
|
|
||||||
* dp_mon_get_context_size_li() - get LI specific size for mon pdev/soc
|
|
||||||
* @arch_ops: arch ops pointer
|
|
||||||
*
|
|
||||||
* Return: size in bytes for the context_type
|
|
||||||
*/
|
|
||||||
|
|
||||||
qdf_size_t dp_mon_get_context_size_li(enum dp_context_type context_type);
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for any
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
@@ -52,4 +53,38 @@ void dp_service_mon_rings(struct dp_soc *soc, uint32_t quota);
|
|||||||
uint32_t dp_mon_drop_packets_for_mac(struct dp_pdev *pdev, uint32_t mac_id,
|
uint32_t dp_mon_drop_packets_for_mac(struct dp_pdev *pdev, uint32_t mac_id,
|
||||||
uint32_t quota);
|
uint32_t quota);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct dp_mon_soc_li - Extended DP mon soc for LI targets
|
||||||
|
* @mon_soc: dp_mon_soc structure
|
||||||
|
*/
|
||||||
|
struct dp_mon_soc_li {
|
||||||
|
struct dp_mon_soc mon_soc;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct dp_mon_pdev_li - Extended DP mon pdev for LI targets
|
||||||
|
* @mon_pdev: dp_mon_pdev structure
|
||||||
|
*/
|
||||||
|
struct dp_mon_pdev_li {
|
||||||
|
struct dp_mon_pdev mon_pdev;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dp_mon_get_context_size_li() - get LI specific size for mon pdev/soc
|
||||||
|
* @arch_ops: arch ops pointer
|
||||||
|
*
|
||||||
|
* Return: size in bytes for the context_type
|
||||||
|
*/
|
||||||
|
static inline
|
||||||
|
qdf_size_t dp_mon_get_context_size_li(enum dp_context_type context_type)
|
||||||
|
{
|
||||||
|
switch (context_type) {
|
||||||
|
case DP_CONTEXT_TYPE_MON_PDEV:
|
||||||
|
return sizeof(struct dp_mon_pdev_li);
|
||||||
|
case DP_CONTEXT_TYPE_MON_SOC:
|
||||||
|
return sizeof(struct dp_mon_soc_li);
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif /* _DP_MON_1_0_H_ */
|
#endif /* _DP_MON_1_0_H_ */
|
||||||
|
@@ -421,4 +421,50 @@ void dp_mon_rx_update_rx_protocol_tag_stats(struct dp_pdev *pdev,
|
|||||||
uint16_t protocol_index);
|
uint16_t protocol_index);
|
||||||
#endif /* WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG */
|
#endif /* WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG */
|
||||||
|
|
||||||
|
#if !defined(DISABLE_MON_CONFIG) && defined(QCA_MONITOR_2_0_SUPPORT)
|
||||||
|
/**
|
||||||
|
* dp_mon_get_context_size_be() - get BE specific size for mon pdev/soc
|
||||||
|
* @arch_ops: arch ops pointer
|
||||||
|
*
|
||||||
|
* Return: size in bytes for the context_type
|
||||||
|
*/
|
||||||
|
static inline
|
||||||
|
qdf_size_t dp_mon_get_context_size_be(enum dp_context_type context_type)
|
||||||
|
{
|
||||||
|
switch (context_type) {
|
||||||
|
case DP_CONTEXT_TYPE_MON_SOC:
|
||||||
|
return sizeof(struct dp_mon_soc_be);
|
||||||
|
case DP_CONTEXT_TYPE_MON_PDEV:
|
||||||
|
return sizeof(struct dp_mon_pdev_be);
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef QCA_MONITOR_2_0_SUPPORT
|
||||||
|
/**
|
||||||
|
* dp_get_be_mon_soc_from_dp_mon_soc() - get dp_mon_soc_be from dp_mon_soc
|
||||||
|
* @soc: dp_mon_soc pointer
|
||||||
|
*
|
||||||
|
* Return: dp_mon_soc_be pointer
|
||||||
|
*/
|
||||||
|
static inline
|
||||||
|
struct dp_mon_soc_be *dp_get_be_mon_soc_from_dp_mon_soc(struct dp_mon_soc *soc)
|
||||||
|
{
|
||||||
|
return (struct dp_mon_soc_be *)soc;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dp_get_be_mon_pdev_from_dp_mon_pdev() - get dp_mon_pdev_be from dp_mon_pdev
|
||||||
|
* @pdev: dp_mon_pdev pointer
|
||||||
|
*
|
||||||
|
* Return: dp_mon_pdev_be pointer
|
||||||
|
*/
|
||||||
|
static inline
|
||||||
|
struct dp_mon_pdev_be *dp_get_be_mon_pdev_from_dp_mon_pdev(struct dp_mon_pdev *mon_pdev)
|
||||||
|
{
|
||||||
|
return (struct dp_mon_pdev_be *)mon_pdev;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#endif /* _DP_MON_2_0_H_ */
|
#endif /* _DP_MON_2_0_H_ */
|
||||||
|
@@ -506,6 +506,7 @@ QDF_STATUS dp_vdev_set_monitor_mode_rings(struct dp_pdev *pdev,
|
|||||||
static inline QDF_STATUS
|
static inline QDF_STATUS
|
||||||
dp_vdev_set_monitor_mode_buf_rings(struct dp_pdev *pdev)
|
dp_vdev_set_monitor_mode_buf_rings(struct dp_pdev *pdev)
|
||||||
{
|
{
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline QDF_STATUS
|
static inline QDF_STATUS
|
||||||
@@ -1504,6 +1505,20 @@ static inline void dp_monitor_set_chan_num(struct dp_pdev *pdev, int chan_num)
|
|||||||
pdev->monitor_pdev->mon_chan_num = chan_num;
|
pdev->monitor_pdev->mon_chan_num = chan_num;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* dp_monitor_get_chan_num() - get channel number
|
||||||
|
* @pdev: DP pdev handle
|
||||||
|
*
|
||||||
|
* Return: channel number
|
||||||
|
*/
|
||||||
|
static inline int dp_monitor_get_chan_num(struct dp_pdev *pdev)
|
||||||
|
{
|
||||||
|
if (qdf_unlikely(!pdev || !pdev->monitor_pdev))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return pdev->monitor_pdev->mon_chan_num;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* dp_monitor_set_chan_freq() - set channel frequency
|
* dp_monitor_set_chan_freq() - set channel frequency
|
||||||
* @pdev: point to dp pdev
|
* @pdev: point to dp pdev
|
||||||
@@ -1519,6 +1534,21 @@ dp_monitor_set_chan_freq(struct dp_pdev *pdev, qdf_freq_t chan_freq)
|
|||||||
pdev->monitor_pdev->mon_chan_freq = chan_freq;
|
pdev->monitor_pdev->mon_chan_freq = chan_freq;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* dp_monitor_get_chan_freq() - get channel frequency
|
||||||
|
* @pdev: DP pdev handle
|
||||||
|
*
|
||||||
|
* @Return: channel frequency
|
||||||
|
*/
|
||||||
|
static inline qdf_freq_t
|
||||||
|
dp_monitor_get_chan_freq(struct dp_pdev *pdev)
|
||||||
|
{
|
||||||
|
if (qdf_unlikely(!pdev || !pdev->monitor_pdev))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return pdev->monitor_pdev->mon_chan_freq;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* dp_monitor_set_chan_band() - set channel band
|
* dp_monitor_set_chan_band() - set channel band
|
||||||
* @pdev: point to dp pdev
|
* @pdev: point to dp pdev
|
||||||
@@ -3943,6 +3973,38 @@ struct cdp_mon_ops *dp_mon_cdp_ops_get(struct dp_soc *soc)
|
|||||||
return ops->mon_ops;
|
return ops->mon_ops;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dp_monitor_soc_init() - Monitor SOC init
|
||||||
|
* @soc: DP soc handle
|
||||||
|
*
|
||||||
|
* Return: void
|
||||||
|
*/
|
||||||
|
static inline void dp_monitor_soc_init(struct dp_soc *soc)
|
||||||
|
{
|
||||||
|
struct dp_mon_ops *mon_ops;
|
||||||
|
|
||||||
|
mon_ops = dp_mon_ops_get(soc);
|
||||||
|
|
||||||
|
if (mon_ops && mon_ops->mon_soc_init)
|
||||||
|
mon_ops->mon_soc_init(soc);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dp_monitor_soc_deinit() - Monitor SOC deinit
|
||||||
|
* @soc: DP soc handle
|
||||||
|
*
|
||||||
|
* Return: void
|
||||||
|
*/
|
||||||
|
static inline void dp_monitor_soc_deinit(struct dp_soc *soc)
|
||||||
|
{
|
||||||
|
struct dp_mon_ops *mon_ops;
|
||||||
|
|
||||||
|
mon_ops = dp_mon_ops_get(soc);
|
||||||
|
|
||||||
|
if (mon_ops && mon_ops->mon_soc_deinit)
|
||||||
|
mon_ops->mon_soc_deinit(soc);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dp_ppdu_desc_user_stats_update(): Function to update TX user stats
|
* dp_ppdu_desc_user_stats_update(): Function to update TX user stats
|
||||||
* @pdev: DP pdev handle
|
* @pdev: DP pdev handle
|
||||||
@@ -4193,4 +4255,47 @@ void dp_monitor_peer_telemetry_stats(struct dp_peer *peer,
|
|||||||
stats->snr = CDP_SNR_OUT(mon_peer_stats->rx.avg_snr);
|
stats->snr = CDP_SNR_OUT(mon_peer_stats->rx.avg_snr);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dp_monitor_is_tx_cap_enabled() - get tx-cature enabled/disabled
|
||||||
|
* @peer: DP peer handle
|
||||||
|
*
|
||||||
|
* Return: true if tx-capture is enabled
|
||||||
|
*/
|
||||||
|
static inline bool dp_monitor_is_tx_cap_enabled(struct dp_peer *peer)
|
||||||
|
{
|
||||||
|
return peer->monitor_peer ? peer->monitor_peer->tx_cap_enabled : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dp_monitor_is_rx_cap_enabled() - get rx-cature enabled/disabled
|
||||||
|
* @peer: DP peer handle
|
||||||
|
*
|
||||||
|
* Return: true if rx-capture is enabled
|
||||||
|
*/
|
||||||
|
static inline bool dp_monitor_is_rx_cap_enabled(struct dp_peer *peer)
|
||||||
|
{
|
||||||
|
return peer->monitor_peer ? peer->monitor_peer->rx_cap_enabled : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if !(!defined(DISABLE_MON_CONFIG) && defined(QCA_MONITOR_2_0_SUPPORT))
|
||||||
|
/**
|
||||||
|
* dp_mon_get_context_size_be() - get BE specific size for mon pdev/soc
|
||||||
|
* @arch_ops: arch ops pointer
|
||||||
|
*
|
||||||
|
* Return: size in bytes for the context_type
|
||||||
|
*/
|
||||||
|
static inline
|
||||||
|
qdf_size_t dp_mon_get_context_size_be(enum dp_context_type context_type)
|
||||||
|
{
|
||||||
|
switch (context_type) {
|
||||||
|
case DP_CONTEXT_TYPE_MON_SOC:
|
||||||
|
return sizeof(struct dp_mon_soc);
|
||||||
|
case DP_CONTEXT_TYPE_MON_PDEV:
|
||||||
|
return sizeof(struct dp_mon_pdev);
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#endif /* _DP_MON_H_ */
|
#endif /* _DP_MON_H_ */
|
||||||
|
Verwijs in nieuw issue
Block a user