qcacmn: Update the peer rssi for entire packet bandwidth
Peer rssi is updated with the rssi measured on primary 20 and not on the entire bandwidth. Scale the peer rssi value by packet bandwidth offset. Packet bandwidth offset for packet bandwidth of 20/40/80/160 is 0/3/6/9 dB. Change-Id: I13eb8c17ec9828c0025d6b3a92a8b26b971268a1 CRs-Fixed: 2518598
This commit is contained in:

committed by
nshrivas

parent
11b7ea2bc5
commit
fdf5499a36
@@ -441,6 +441,7 @@ static void dp_rx_stats_update(struct dp_pdev *pdev, struct dp_peer *peer,
|
||||
uint8_t mcs, preamble, ac = 0;
|
||||
uint16_t num_msdu;
|
||||
bool is_invalid_peer = false;
|
||||
uint8_t pkt_bw_offset;
|
||||
|
||||
mcs = ppdu->u.mcs;
|
||||
preamble = ppdu->u.preamble;
|
||||
@@ -459,7 +460,27 @@ static void dp_rx_stats_update(struct dp_pdev *pdev, struct dp_peer *peer,
|
||||
if (!soc || soc->process_rx_status)
|
||||
return;
|
||||
|
||||
DP_STATS_UPD(peer, rx.rssi, ppdu->rssi);
|
||||
switch (ppdu->u.bw) {
|
||||
case CMN_BW_20MHZ:
|
||||
pkt_bw_offset = PKT_BW_GAIN_20MHZ;
|
||||
break;
|
||||
case CMN_BW_40MHZ:
|
||||
pkt_bw_offset = PKT_BW_GAIN_40MHZ;
|
||||
break;
|
||||
case CMN_BW_80MHZ:
|
||||
pkt_bw_offset = PKT_BW_GAIN_80MHZ;
|
||||
break;
|
||||
case CMN_BW_160MHZ:
|
||||
pkt_bw_offset = PKT_BW_GAIN_160MHZ;
|
||||
break;
|
||||
default:
|
||||
pkt_bw_offset = 0;
|
||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
|
||||
"Invalid BW index = %d", ppdu->u.bw);
|
||||
}
|
||||
|
||||
DP_STATS_UPD(peer, rx.rssi, (ppdu->rssi + pkt_bw_offset));
|
||||
|
||||
if (peer->stats.rx.avg_rssi == INVALID_RSSI)
|
||||
peer->stats.rx.avg_rssi = ppdu->rssi;
|
||||
else
|
||||
|
Reference in New Issue
Block a user