158391efdSNathan Chancellor /* SPDX-License-Identifier: GPL-2.0 */
2554c0a3aSHans de Goede /******************************************************************************
3554c0a3aSHans de Goede  *
4554c0a3aSHans de Goede  * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
5554c0a3aSHans de Goede  *
6554c0a3aSHans de Goede  ******************************************************************************/
7554c0a3aSHans de Goede 
8554c0a3aSHans de Goede #ifndef	__ODMCFOTRACK_H__
9554c0a3aSHans de Goede #define    __ODMCFOTRACK_H__
10554c0a3aSHans de Goede 
11554c0a3aSHans de Goede #define		CFO_TH_XTAL_HIGH		20		/*  kHz */
12554c0a3aSHans de Goede #define		CFO_TH_XTAL_LOW			10		/*  kHz */
13554c0a3aSHans de Goede #define		CFO_TH_ATC			80		/*  kHz */
14554c0a3aSHans de Goede 
150c10f844SMarco Cesati struct cfo_tracking {
16554c0a3aSHans de Goede 	bool bATCStatus;
17554c0a3aSHans de Goede 	bool largeCFOHit;
18554c0a3aSHans de Goede 	bool bAdjust;
19554c0a3aSHans de Goede 	u8 CrystalCap;
20554c0a3aSHans de Goede 	u8 DefXCap;
21554c0a3aSHans de Goede 	int CFO_tail[2];
22554c0a3aSHans de Goede 	int CFO_ave_pre;
23554c0a3aSHans de Goede 	u32 packetCount;
24554c0a3aSHans de Goede 	u32 packetCount_pre;
25554c0a3aSHans de Goede 
26554c0a3aSHans de Goede 	bool bForceXtalCap;
27554c0a3aSHans de Goede 	bool bReset;
286d12413cSMarco Cesati };
29554c0a3aSHans de Goede 
30554c0a3aSHans de Goede void ODM_CfoTrackingReset(void *pDM_VOID
31554c0a3aSHans de Goede );
32554c0a3aSHans de Goede 
33554c0a3aSHans de Goede void ODM_CfoTrackingInit(void *pDM_VOID);
34554c0a3aSHans de Goede 
35554c0a3aSHans de Goede void ODM_CfoTracking(void *pDM_VOID);
36554c0a3aSHans de Goede 
37*caa976ebSFabio Aiuto void odm_parsing_cfo(void *pDM_VOID, void *pPktinfo_VOID, s8 *pcfotail);
38554c0a3aSHans de Goede 
39554c0a3aSHans de Goede #endif
40