|
@@ -33,15 +33,6 @@
|
|
|
#include "dp_lite_mon.h"
|
|
|
#endif
|
|
|
|
|
|
-/* 40MHZ BW 2 20MHZ sub bands */
|
|
|
-#define SUB40BW 2
|
|
|
-/* 80MHZ BW 4 20MHZ sub bands */
|
|
|
-#define SUB80BW 4
|
|
|
-/* 160MHZ BW 8 20MHZ sub bands */
|
|
|
-#define SUB160BW 8
|
|
|
-/* 320MHZ BW 16 20MHZ sub bands */
|
|
|
-#define SUB320BW 16
|
|
|
-
|
|
|
#if !defined(DISABLE_MON_CONFIG)
|
|
|
|
|
|
/**
|
|
@@ -1262,140 +1253,6 @@ QDF_STATUS dp_vdev_set_monitor_mode_rings_2_0(struct dp_pdev *pdev,
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
-#ifdef QCA_RSSI_DB2DBM
|
|
|
-/*
|
|
|
- * dp_mon_compute_min_nf() - calculate the min nf value in the
|
|
|
- * active chains 20MHZ subbands.
|
|
|
- * computation: Need to calculate nfInDbm[][] to A_MIN(nfHwDbm[][])
|
|
|
- * considering row index as active chains and column
|
|
|
- * index as 20MHZ subbands per chain.
|
|
|
- * example: chain_mask = 0x07 (consider 3 active chains 0,1,2 index)
|
|
|
- * BandWidth = 40MHZ (40MHZ includes two 20MHZ subbands so need to
|
|
|
- * consider 0,1 index calculate min_nf value)
|
|
|
- *
|
|
|
- *@conv_params: cdp_rssi_dbm_conv_param_dp structure value
|
|
|
- *@chain_idx: active chain index in nfHwdbm array
|
|
|
- *
|
|
|
- * Return: QDF_STATUS_SUCCESS if value set successfully
|
|
|
- * QDF_STATUS_E_INVAL false if error
|
|
|
- */
|
|
|
-static QDF_STATUS
|
|
|
-dp_mon_compute_min_nf(struct cdp_rssi_dbm_conv_param_dp *conv_params,
|
|
|
- int8_t *min_nf, int chain_idx)
|
|
|
-{
|
|
|
- int j;
|
|
|
- *min_nf = conv_params->nf_hw_dbm[chain_idx][0];
|
|
|
-
|
|
|
- switch (conv_params->curr_bw) {
|
|
|
- case CHAN_WIDTH_20:
|
|
|
- case CHAN_WIDTH_5:
|
|
|
- case CHAN_WIDTH_10:
|
|
|
- break;
|
|
|
- case CHAN_WIDTH_40:
|
|
|
- for (j = 1; j < SUB40BW; j++) {
|
|
|
- if (conv_params->nf_hw_dbm[chain_idx][j] < *min_nf)
|
|
|
- *min_nf = conv_params->nf_hw_dbm[chain_idx][j];
|
|
|
- }
|
|
|
- break;
|
|
|
- case CHAN_WIDTH_80:
|
|
|
- for (j = 1; j < SUB80BW; j++) {
|
|
|
- if (conv_params->nf_hw_dbm[chain_idx][j] < *min_nf)
|
|
|
- *min_nf = conv_params->nf_hw_dbm[chain_idx][j];
|
|
|
- }
|
|
|
- break;
|
|
|
- case CHAN_WIDTH_160:
|
|
|
- case CHAN_WIDTH_80P80:
|
|
|
- case CHAN_WIDTH_165:
|
|
|
- for (j = 1; j < SUB160BW; j++) {
|
|
|
- if (conv_params->nf_hw_dbm[chain_idx][j] < *min_nf)
|
|
|
- *min_nf = conv_params->nf_hw_dbm[chain_idx][j];
|
|
|
- }
|
|
|
- break;
|
|
|
- case CHAN_WIDTH_160P160:
|
|
|
- case CHAN_WIDTH_320:
|
|
|
- for (j = 1; j < SUB320BW; j++) {
|
|
|
- if (conv_params->nf_hw_dbm[chain_idx][j] < *min_nf)
|
|
|
- *min_nf = conv_params->nf_hw_dbm[chain_idx][j];
|
|
|
- }
|
|
|
- break;
|
|
|
- default:
|
|
|
- dp_cdp_err("Invalid bandwidth %u", conv_params->curr_bw);
|
|
|
- return QDF_STATUS_E_INVAL;
|
|
|
- }
|
|
|
- return QDF_STATUS_SUCCESS;
|
|
|
-}
|
|
|
-
|
|
|
-/*
|
|
|
- * dp_mon_pdev_params_rssi_dbm_conv() --> to set rssi in dbm converstion
|
|
|
- * params into monitor pdev.
|
|
|
- *@cdp_soc: dp soc handle.
|
|
|
- *@params: cdp_rssi_db2dbm_param_dp structure value.
|
|
|
- *
|
|
|
- * Return: QDF_STATUS_SUCCESS if value set successfully
|
|
|
- * QDF_STATUS_E_INVAL false if error
|
|
|
- */
|
|
|
-static QDF_STATUS
|
|
|
-dp_mon_pdev_params_rssi_dbm_conv(struct cdp_soc_t *cdp_soc,
|
|
|
- struct cdp_rssi_db2dbm_param_dp *params)
|
|
|
-{
|
|
|
- struct cdp_rssi_db2dbm_param_dp *dp_rssi_params = params;
|
|
|
- uint8_t pdev_id = params->pdev_id;
|
|
|
- struct dp_soc *soc = (struct dp_soc *)cdp_soc;
|
|
|
- struct dp_pdev *pdev =
|
|
|
- dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id);
|
|
|
- struct dp_mon_pdev *mon_pdev;
|
|
|
- struct dp_mon_pdev_be *mon_pdev_be;
|
|
|
- struct cdp_rssi_temp_off_param_dp temp_off_param;
|
|
|
- struct cdp_rssi_dbm_conv_param_dp conv_params;
|
|
|
- int8_t min_nf = 0;
|
|
|
- int i;
|
|
|
-
|
|
|
- if (!soc->features.rssi_dbm_conv_support) {
|
|
|
- dp_cdp_err("rssi dbm converstion support is false");
|
|
|
- return QDF_STATUS_E_INVAL;
|
|
|
- }
|
|
|
- if (!pdev || !pdev->monitor_pdev) {
|
|
|
- dp_cdp_err("Invalid pdev_id %u", pdev_id);
|
|
|
- return QDF_STATUS_E_FAILURE;
|
|
|
- }
|
|
|
-
|
|
|
- mon_pdev = pdev->monitor_pdev;
|
|
|
- mon_pdev_be = dp_get_be_mon_pdev_from_dp_mon_pdev(mon_pdev);
|
|
|
-
|
|
|
- if (dp_rssi_params->rssi_temp_off_present) {
|
|
|
- temp_off_param = dp_rssi_params->temp_off_param;
|
|
|
- mon_pdev_be->rssi_temp_offset = temp_off_param.rssi_temp_offset;
|
|
|
- }
|
|
|
- if (dp_rssi_params->rssi_dbm_info_present) {
|
|
|
- conv_params = dp_rssi_params->rssi_dbm_param;
|
|
|
- for (i = 0; i < CDP_MAX_NUM_ANTENNA; i++) {
|
|
|
- if (conv_params.curr_rx_chainmask & (0x01 << i)) {
|
|
|
- if (QDF_STATUS_E_INVAL == dp_mon_compute_min_nf
|
|
|
- (&conv_params, &min_nf, i))
|
|
|
- return QDF_STATUS_E_INVAL;
|
|
|
- } else {
|
|
|
- continue;
|
|
|
- }
|
|
|
- }
|
|
|
- mon_pdev_be->xlna_bypass_offset =
|
|
|
- conv_params.xlna_bypass_offset;
|
|
|
- mon_pdev_be->xlna_bypass_threshold =
|
|
|
- conv_params.xlna_bypass_threshold;
|
|
|
- mon_pdev_be->xbar_config = conv_params.xbar_config;
|
|
|
-
|
|
|
- mon_pdev_be->min_nf_dbm = min_nf;
|
|
|
- }
|
|
|
- return QDF_STATUS_SUCCESS;
|
|
|
-}
|
|
|
-#else
|
|
|
-static inline QDF_STATUS
|
|
|
-dp_mon_pdev_params_rssi_dbm_conv(struct cdp_soc_t *cdp_soc,
|
|
|
- struct cdp_rssi_db2dbm_param_dp *params)
|
|
|
-{
|
|
|
- return 0;
|
|
|
-}
|
|
|
-#endif
|
|
|
-
|
|
|
#if defined(WDI_EVENT_ENABLE) &&\
|
|
|
(defined(QCA_ENHANCED_STATS_SUPPORT) || !defined(REMOVE_PKT_LOG))
|
|
|
static inline
|
|
@@ -1562,8 +1419,6 @@ dp_mon_register_feature_ops_2_0(struct dp_soc *soc)
|
|
|
mon_ops->mon_filter_reset_undecoded_metadata_capture =
|
|
|
dp_mon_filter_reset_undecoded_metadata_capture_2_0;
|
|
|
#endif
|
|
|
- mon_ops->mon_rx_stats_update_rssi_dbm_params =
|
|
|
- dp_mon_rx_stats_update_rssi_dbm_params_2_0;
|
|
|
mon_ops->mon_rx_print_advanced_stats =
|
|
|
dp_mon_rx_print_advanced_stats_2_0;
|
|
|
}
|