qcacmn: update RSSI specific parameters in mon pdev
Before we are updating RSSI params directly into mon_rx_status this structure will reset every PPDU this breaks iwconfig, wlanconfig and monitor packet RSSI values. Fix added to storing the values in the mon_pdev. Change-Id: I9f8fa776c65cbad84fac5e8c2f65b3fce1386e20 CRs-Fixed: 3276503
This commit is contained in:

committed by
Madan Koyyalamudi

parent
a29914f3dc
commit
ea38e7997e
@@ -306,19 +306,17 @@ dp_bb_captured_chan_status(struct dp_pdev *pdev,
|
||||
* bits 21 to 23 = 3, maps BB chain 3 for RF chain 7
|
||||
*/
|
||||
static uint8_t dp_rx_mon_rf_index_conv(uint8_t chain,
|
||||
struct hal_rx_ppdu_info *ppdu_info,
|
||||
struct dp_pdev *pdev)
|
||||
struct dp_mon_pdev *mon_pdev)
|
||||
{
|
||||
uint32_t xbar_config = ppdu_info->rx_status.xbar_config;
|
||||
uint32_t xbar_config = mon_pdev->rssi_offsets.xbar_config;
|
||||
|
||||
if (pdev->soc->features.rssi_dbm_conv_support && xbar_config)
|
||||
if (mon_pdev->rssi_dbm_conv_support && xbar_config)
|
||||
return ((xbar_config >> (3 * chain)) & 0x07);
|
||||
return chain;
|
||||
}
|
||||
#else
|
||||
static uint8_t dp_rx_mon_rf_index_conv(uint8_t chain,
|
||||
struct hal_rx_ppdu_info *ppdu_info,
|
||||
struct dp_pdev *pdev)
|
||||
struct dp_mon_pdev *mon_pdev)
|
||||
{
|
||||
return chain;
|
||||
}
|
||||
@@ -331,11 +329,11 @@ dp_rx_populate_rx_rssi_chain(struct hal_rx_ppdu_info *ppdu_info,
|
||||
uint8_t chain, bw;
|
||||
uint8_t rssi;
|
||||
uint8_t chain_rf;
|
||||
struct dp_mon_pdev *mon_pdev = pdev->monitor_pdev;
|
||||
|
||||
for (chain = 0; chain < SS_COUNT; chain++) {
|
||||
for (bw = 0; bw < MAX_BW; bw++) {
|
||||
chain_rf = dp_rx_mon_rf_index_conv(chain,
|
||||
ppdu_info, pdev);
|
||||
chain_rf = dp_rx_mon_rf_index_conv(chain, mon_pdev);
|
||||
rssi = ppdu_info->rx_status.rssi_chain[chain_rf][bw];
|
||||
if (rssi != DP_RSSI_INVAL)
|
||||
cdp_rx_ppdu->rssi_chain[chain_rf][bw] = rssi;
|
||||
@@ -2029,3 +2027,12 @@ dp_mon_rx_add_tlv(uint8_t id, uint16_t len, void *value, qdf_nbuf_t mpdu_nbuf)
|
||||
|
||||
return num_bytes_pushed;
|
||||
}
|
||||
|
||||
void
|
||||
dp_mon_rx_stats_update_rssi_dbm_params(struct dp_mon_pdev *mon_pdev,
|
||||
struct hal_rx_ppdu_info *ppdu_info)
|
||||
{
|
||||
ppdu_info->rx_status.rssi_offset = mon_pdev->rssi_offsets.rssi_offset;
|
||||
ppdu_info->rx_status.rssi_dbm_conv_support =
|
||||
mon_pdev->rssi_dbm_conv_support;
|
||||
}
|
||||
|
Reference in New Issue
Block a user