wlan: Add SNR monitoring support
Add support to retrieve SNR from the received frame
and return it to the user space.
CRs-Fixed: 529156
Change-Id: Ic63c41e6bc2d9402dc42554e96637dd829a59a53
diff --git a/CORE/TL/inc/wlan_qct_tl.h b/CORE/TL/inc/wlan_qct_tl.h
index 8d4197c..98b009f 100644
--- a/CORE/TL/inc/wlan_qct_tl.h
+++ b/CORE/TL/inc/wlan_qct_tl.h
@@ -156,6 +156,9 @@
#define WLANTL_HO_DEFAULT_ALPHA 5
#define WLANTL_HO_TDLS_ALPHA 7
+// Choose the largest possible value that can be accomodates in 8 bit signed
+// variable.
+#define SNR_HACK_BMPS (127)
/*--------------------------------------------------------------------------
Access category enum used by TL
- order must be kept as these values are used to setup the AC mask
@@ -1431,6 +1434,51 @@
/*==========================================================================
+ FUNCTION WLANTL_GetSnr
+
+ DESCRIPTION
+ TL will extract the SNR information from every data packet from the
+ ongoing traffic and will store it. It will provide the result to SME
+ upon request.
+
+ DEPENDENCIES
+
+ WARNING: the read and write of this value will not be protected
+ by locks, therefore the information obtained after a read
+ might not always be consistent.
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ or SME's control block can be extracted from its context
+ ucSTAId: station identifier for the requested value
+
+ OUT
+ puSnr: the average value of the SNR
+
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_INVAL: Input parameters are invalid
+ VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer
+ to TL cb is NULL ; access would cause a page fault
+ VOS_STATUS_E_EXISTS: STA was not yet registered
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_GetSnr
+(
+ tANI_U8 ucSTAId,
+ tANI_S8* pSnr
+);
+
+/*==========================================================================
+
FUNCTION WLANTL_GetLinkQuality
DESCRIPTION
@@ -2536,6 +2584,26 @@
void WLANTL_UpdateRssiBmps(v_PVOID_t pvosGCtx, v_U8_t staId, v_S7_t rssi);
+/*===============================================================================
+ FUNCTION WLANTL_UpdateSnrBmps
+
+ DESCRIPTION This function updates the TL's SNR (in BMPS mode)
+
+ DEPENDENCIES None
+
+ PARAMETERS
+
+ pvosGCtx VOS context VOS Global context
+ staId Station ID Station ID
+ snr SNR (BMPS mode) SNR in BMPS mode
+
+ RETURN None
+
+ SIDE EFFECTS none
+ ===============================================================================*/
+
+void WLANTL_UpdateSnrBmps(v_PVOID_t pvosGCtx, v_U8_t staId, v_S7_t snr);
+
/*==========================================================================
FUNCTION WLANTL_SetTxXmitPending