Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a74b03b5 authored by Abhishek Ambure's avatar Abhishek Ambure Committed by Gerrit - the friendly Code Review server
Browse files

qcacld-3.0: Update proper RCPI value in beacon report

In beacon report's RCPI, host updates current RSSI which is incorrect
according to "2008 11k spec reference: 18.4.8.5 RCPI Measurement".
Hence fill RCPI value in beacon report as per "2008 11k spec reference:
18.4.8.5 RCPI Measurement".

Change-Id: I2ce88ad9f5d0db252d96f9e25db336b081cdd9bb
CRs-Fixed: 2776844
parent e02732d9
Loading
Loading
Loading
Loading
+22 −9
Original line number Diff line number Diff line
@@ -202,6 +202,24 @@ QDF_STATUS rrm_set_max_tx_power_rsp(struct mac_context *mac,
	return retCode;
}

/**
 * rrm_calculate_and_fill_rcpi() - calculates and fills RCPI value
 * @rcpi: pointer to hold calculated RCPI value
 * @cur_rssi: value of current RSSI
 *
 * @return None
 */
static void rrm_calculate_and_fill_rcpi(uint8_t *rcpi, int8_t cur_rssi)
{
	/* 2008 11k spec reference: 18.4.8.5 RCPI Measurement */
	if (cur_rssi <= RCPI_LOW_RSSI_VALUE)
		*rcpi = 0;
	else if ((cur_rssi > RCPI_LOW_RSSI_VALUE) && (cur_rssi <= 0))
		*rcpi = CALCULATE_RCPI(cur_rssi);
	else
		*rcpi = RCPI_MAX_VALUE;
}

/* -------------------------------------------------------------------- */
/**
 * rrm_process_link_measurement_request
@@ -274,14 +292,7 @@ rrm_process_link_measurement_request(struct mac_context *mac,

	pe_info("Received Link report frame with %d", currentRSSI);

	/* 2008 11k spec reference: 18.4.8.5 RCPI Measurement */
	if ((currentRSSI) <= RCPI_LOW_RSSI_VALUE)
		LinkReport.rcpi = 0;
	else if ((currentRSSI > RCPI_LOW_RSSI_VALUE) && (currentRSSI <= 0))
		LinkReport.rcpi = CALCULATE_RCPI(currentRSSI);
	else
		LinkReport.rcpi = RCPI_MAX_VALUE;

	rrm_calculate_and_fill_rcpi(&LinkReport.rcpi, currentRSSI);
	LinkReport.rsni = WMA_GET_RX_SNR(pRxPacketInfo);

	pe_debug("Sending Link report frame");
@@ -1014,7 +1025,9 @@ rrm_process_beacon_report_xmit(struct mac_context *mac_ctx,
				beacon_report->phyType = bss_desc->nwType;
				beacon_report->bcnProbeRsp = 1;
				beacon_report->rsni = bss_desc->sinr;
				beacon_report->rcpi = bss_desc->rssi;

				rrm_calculate_and_fill_rcpi(&beacon_report->rcpi,
							    bss_desc->rssi);
				beacon_report->antennaId = 0;
				beacon_report->parentTSF = bss_desc->parentTSF;
				qdf_mem_copy(beacon_report->bssid,