📄 d0899.c
字号:
0x00000a08 , /* FINALAGCCGAIN */
0x00000000 , /* EQUILIZERINIT */
0x00054802 , /* EQCNTL */
0x00000000 , /* EQIINITCOEFF0 */
0x00000000 , /* EQIINITCOEFF1 */
0x00000000 , /* EQIINITCOEFF2 */
0x00000000 , /* EQIINITCOEFF3 */
0x00000000 , /* EQIINITCOEFF4 */
0x00000400 , /* EQIINITCOEFF5 */
0x00000000 , /* EQIINITCOEFF6 */
0x00000000 , /* EQIINITCOEFF7 */
0x00000000 , /* EQIINITCOEFF8 */
0x00000000 , /* EQIINITCOEFF9 */
0x00000000 , /* EQIINITCOEFF10 */
0x00000000 , /* EQQINITCOEFF0 */
0x00000000 , /* EQQINITCOEFF1 */
0x00000000 , /* EQQINITCOEFF2 */
0x00000000 , /* EQQINITCOEFF3 */
0x00000000 , /* EQQINITCOEFF4 */
0x00000000 , /* EQQINITCOEFF5 */
0x00000000 , /* EQQINITCOEFF6 */
0x00000000 , /* EQQINITCOEFF7 */
0x00000000 , /* EQQINITCOEFF8 */
0x00000000 , /* EQQINITCOEFF9 */
0x00000000 , /* EQQINITCOEFF10 */
0x00000ffd , /* EQICOEFFSOUT0 */
0x00000002 , /* EQICOEFFSOUT1 */
0x00000ffe , /* EQICOEFFSOUT2 */
0x00000006 , /* EQICOEFFSOUT3 */
0x00000fdd , /* EQICOEFFSOUT4 */
0x000002ee , /* EQICOEFFSOUT5 */
0x0000000e , /* EQICOEFFSOUT6 */
0x00000000 , /* EQICOEFFSOUT7 */
0x00000fff , /* EQICOEFFSOUT8 */
0x00000ffe , /* EQICOEFFSOUT9 */
0x00000000 , /* EQICOEFFSOUT10 */
0x00000fff , /* EQQCOEFFSOUT0 */
0x00000000 , /* EQQCOEFFSOUT1 */
0x00000ffc , /* EQQCOEFFSOUT2 */
0x0000000e , /* EQQCOEFFSOUT3 */
0x00000fd9 , /* EQQCOEFFSOUT4 */
0x00000ffd , /* EQQCOEFFSOUT5 */
0x00000008 , /* EQQCOEFFSOUT6 */
0x00000ffc , /* EQQCOEFFSOUT7 */
0x00000ffc , /* EQQCOEFFSOUT8 */
0x00000002 , /* EQQCOEFFSOUT9 */
0x00000ffd , /* EQQCOEFFSOUT10 */
0x00000000 , /* DEMOD */
0x000000c9 , /* RCOMPC */
0x00000001 , /* AGC1CN */
0x00000010 , /* AGC1REF */
0x0000007a , /* RTC */
0x0000004e , /* TMGCFG */
0x00000034 , /* AGC2REF */
0x00000084 , /* TLSR */
0x000000c7 , /* CFD */
0x00000087 , /* ACLC */
0x00000094 , /* BCLC */
0x00000041 , /* EQON */
0x000000dd , /* LDT */
0x000000c9 , /* LDT2 */
0x000000b4 , /* EQUALREF */
0x00000010 , /* TMGRAMP */
0x00000030 , /* TMGTHD */
0x000000fd , /* IDCCOMP */
0x00000001 , /* QDCCOMP */
0x00000008 , /* POWERI */
0x00000009 , /* POWERQ */
0x0000006f , /* RCOMP */
0x00000080 , /* AGCIQIN */
0x00000009 , /* AGC2I1 */
0x000000d9 , /* AGC2I2 */
0x00000030 , /* TLIR */
0x0000007e , /* RTF */
0x00000000 , /* DSTATUS */
0x000000b0 , /* LDI */
0x000000fd , /* CFRM */
0x00000045 , /* CFRL */
0x0000002c , /* NIRM */
0x00000003 , /* NIRL */
0x0000001d , /* ISYMB */
0x000000ff , /* QSYMB */
0x0000002f , /* SFRH */
0x00000068 , /* SFRM */
0x00000040 , /* SFRL */
0x0000002f , /* SFRUPH */
0x00000068 , /* SFRUPM */
0x00000040 , /* SFRUPL */
0x00000000 , /* EQUAI1 */
0x000000fd , /* EQUAQ1 */
0x00000001 , /* EQUAI2 */
0x000000fd , /* EQUAQ2 */
0x00000003 , /* EQUAI3 */
0x000000fc , /* EQUAQ3 */
0x00000002 , /* EQUAI4 */
0x000000fe , /* EQUAQ4 */
0x00000007 , /* EQUAI5 */
0x000000fe , /* EQUAQ5 */
0x00000000 , /* DSTATUS2 */
0x00000000 , /* VSTATUS */
0x000000ff , /* VERROR */
0x00000020 , /* IQSWAP */
0x00000000 , /* ECNTM */
0x00000030 , /* ECNTL */
0x00000000 , /* ECNT2M */
0x00000021 , /* ECNT2L */
0x0000002f , /* ECNT3M */
0x00000009 , /* ECNT3L */
0x00000006 , /* FECAUTO1 */
0x00000000 , /* FECM */
0x000000b0 , /* VTH12 */
0x0000007a , /* VTH23 */
0x00000058 , /* VTH34 */
0x00000038 , /* VTH56 */
0x00000034 , /* VTH67 */
0x00000024 , /* VTH78 */
0x000000ff , /* PRVIT */
0x00000019 , /* VITSYNC */
0x000000b1 , /* RSULC */
0x00000042 , /* TSULC */
0x00000041 , /* RSLLC */
0x00000012 , /* TSLPL */
0x0000000c , /* TSCFGH */
0x00000000 , /* TSCFGM */
0x00000000 , /* TSCFGL */
0x00000073 , /* TSOUT */
0x00000000 , /* RSSYNC */
0x00000002 , /* TSINSDELH */
0x00000000 , /* TSINSDELM */
0x00000000 , /* TSINSDELL */
0x00000013 , /* TSLLSTKM */
0x000000f7 , /* TSLLSTKL */
0x00000000 , /* TSULSTKM */
0x00000000 , /* TSULSTKL */
0x000000bc , /* PCKLENUL */
0x000000cc , /* PCKLENLL */
0x00000083 , /* RSPCKLEN */
0x00000080 , /* TSSTATUS */
0x000000b6 , /* ERRCTRL1 */
0x00000096 , /* ERRCTRL2 */
0x00000089 , /* ERRCTRL3 */
0x00000027 , /* DMONMSK1 */
0x00000003 , /* DMONMSK0 */
0x0000005c , /* DEMAPVIT */
0x0000000d , /* PLPARM */
0x00000048 , /* PDELCTRL */
0x00000000 , /* PDELCTRL2 */
0x00000000 , /* BBHCTRL1 */
0x00000000 , /* BBHCTRL2 */
0x00000077 , /* HYSTTHRESH */
0x00000000 , /* MATCSTM */
0x00000000 , /* MATCSTL */
0x00000000 , /* UPLCSTM */
0x00000000 , /* UPLCSTL */
0x00000000 , /* DFLCSTM */
0x00000000 , /* DFLCSTL */
0x00000000 , /* SYNCCST */
0x00000000 , /* SYNCDCSTM */
0x00000000 , /* SYNCDCSTL */
0x00000000 , /* ISIENTRY */
0x00000000 , /* ISIBITEN */
0x0000001f , /* MATSTRM */
0x000000ff , /* MATSTRL */
0x000000da , /* UPLSTRM */
0x0000001e , /* UPLSTRL */
0x00000078 , /* DFLSTRM */
0x0000002e , /* DFLSTRL */
0x000000b1 , /* SYNCSTR */
0x000000d9 , /* SYNCDSTRM */
0x00000025 , /* SYNCDSTRL */
0x0000001d , /* CFGPDELSTATUS1 */
0x00000027 , /* CFGPKTDELSTTS2 */
0x00000000 , /* BBFERRORM */
0x00000007 , /* BBFERRORL */
0x00000000 , /* UPKTERRORM */
0x000000a3 , /* UPKTERRORL */
0x00000008 , /* BLOCKLNGTH */
0x000000b4 , /* ROWSTR */
0x000004b5 , /* BNANDADDR */
0x00000b4b , /* CNANDADDR */
0x00000078 , /* INFOLENGTH */
0x000001e0 , /* BOT_ADDR */
0x0000a8c0 , /* BCHBLKLN */
0x0000000c , /* BCHT */
0x00000001 , /* CNFGMODE */
0x0000021d , /* LDPCSTAT */
0x00000040 , /* ITERSCALE */
0x00000000 , /* INPUTMODE */
0x00000000 , /* LDPCDECRST */
0x00000008 , /* CLKPERBYTE */
0x0000000c , /* BCHERRORS */
0x0000083f , /* LDPCERRORS */
0x00000000 , /* BCHMODE */
0x00000008 , /* ERRACCPER */
0x00000006 , /* BCHERRACC */
0x00000000 , /* FECTPSEL */
0x00000000 , /* TSTCK */
0x00000000 , /* TSTRES */
0x00000000 , /* TSTOUT */
0x00000000 , /* TSTIN */
0x00000000 , /* TSTSYS */
0x00000000 , /* TSTCHIP */
0x00000000 , /* TSTFREE */
0x00000000 , /* TSTI2C */
0x00000000 , /* BITSPEEDM */
0x00000000 , /* BITSPEEDL */
0x00000000 , /* TBUSBIT */
0x00000000 , /* TSTDIS */
0x00000000 , /* TSTDISRX */
0x00000000 , /* TSTJETON */
0x00000000 , /* TSTDCADJ */
0x00000000 , /* TSTAGC1 */
0x00000000 , /* TSTAGC1N */
0x00000000 , /* TSTPOLYPH */
0x000000c0 , /* TSTR */
0x00000000 , /* TSTAGC2 */
0x00000000 , /* TSTCTL1 */
0x00000000 , /* TSTCTL2 */
0x00000000 , /* TSTCTL3 */
0x00000000 , /* TSTDEMAP */
0x00000000 , /* TSTDEMAP2 */
0x00000000 , /* TSTDEMMON */
0x00000000 , /* TSTRATE */
0x00000000 , /* TSTSELOUT */
0x00000000 , /* TSYNC */
0x00000000 , /* TSTERR */
0x00000000 , /* TSTRAM1 */
0x00000000 , /* TSTVSELOUT */
0x00000000 , /* TSTFORCEIN */
0x00000000 , /* TSTRS1 */
0x00000000 , /* TSTRS2 */
0x00000000 , /* TSTRS3 */
0x00000081 , /* GHOSTREG */
};
#define STB0899_SYMBOL_RATE_MIN 1000000
#define STB0899_SYMBOL_RATE_MAX 45000000
#define STB0899_FREQ_MIN 950000
#define STB0899_FREQ_MAX 2150000
#define STB0899_MAX_BER 100
#define angle_threshold 1042
/* private variables ------------------------------------------------------- */
#if defined(ST_OS21) || defined(ST_OSLINUX)
static semaphore_t *Lock_InitTermOpenClose; /* guard calls to the functions */
#else
static semaphore_t Lock_InitTermOpenClose; /* guard calls to the functions */
#endif
static BOOL Installed = FALSE;
/* instance chain, the default boot value is invalid, to catch errors */
static STB0899_InstanceData_t *InstanceChainTop = (STB0899_InstanceData_t *)0x7fffffff;
/**************extern from open.c************************/
#ifdef STTUNER_DRV_SAT_SCR
#ifdef STTUNER_DRV_SAT_SCR_LOOPTHROUGH
extern U32 DemodDrvHandleOne;
#endif
#endif
/* For DiSEqC2.0*/
#ifdef STTUNER_DISEQC2_SWDECODE_VIA_PIO
static U32 IndexforISR;
STTUNER_InstanceDbase_t *InstforISR;
#endif
/* functions --------------------------------------------------------------- */
/* API */
ST_ErrorCode_t demod_stb0899_Init(ST_DeviceName_t *DeviceName, DEMOD_InitParams_t *InitParams);
ST_ErrorCode_t demod_stb0899_Term(ST_DeviceName_t *DeviceName, DEMOD_TermParams_t *TermParams);
ST_ErrorCode_t demod_stb0899_Open (ST_DeviceName_t *DeviceName, DEMOD_OpenParams_t *OpenParams, DEMOD_Capability_t *Capability, DEMOD_Handle_t *Handle);
ST_ErrorCode_t demod_stb0899_Close(DEMOD_Handle_t Handle, DEMOD_CloseParams_t *CloseParams);
ST_ErrorCode_t demod_stb0899_IsAnalogCarrier (DEMOD_Handle_t Handle, BOOL *IsAnalog);
ST_ErrorCode_t demod_stb0899_GetSignalQuality(DEMOD_Handle_t Handle, U32 *SignalQuality_p, U32 *Ber);
ST_ErrorCode_t demod_stb0899_GetModulation (DEMOD_Handle_t Handle, STTUNER_Modulation_t *Modulation);
ST_ErrorCode_t demod_stb0899_SetModulation (DEMOD_Handle_t Handle, STTUNER_Modulation_t Modulation);
ST_ErrorCode_t demod_stb0899_GetModeCode (DEMOD_Handle_t Handle, STTUNER_ModeCode_t *ModeCode);
ST_ErrorCode_t demod_stb0899_GetAGC (DEMOD_Handle_t Handle, S16 *Agc);
ST_ErrorCode_t demod_stb0899_GetFECRates (DEMOD_Handle_t Handle, STTUNER_FECRate_t *FECRates);
ST_ErrorCode_t demod_stb0899_GetIQMode (DEMOD_Handle_t Handle, STTUNER_IQMode_t *IQMode); /*added for GNBvd26107->I2C failure due to direct access to demod device at API level*/
ST_ErrorCode_t demod_stb0899_IsLocked (DEMOD_Handle_t Handle, BOOL *IsLocked);
ST_ErrorCode_t demod_stb0899_SetFECRates (DEMOD_Handle_t Handle, STTUNER_FECRate_t FECRates);
ST_ErrorCode_t demod_stb0899_Tracking (DEMOD_Handle_t Handle, BOOL ForceTracking, U32 *NewFrequency, BOOL *SignalFound);
ST_ErrorCode_t demod_stb0899_ScanFrequency (DEMOD_Handle_t Handle, U32 InitialFrequency, U32 SymbolRate, U32 MaxOffset,
U32 TunerStep, U8 DerotatorStep, BOOL *ScanSuccess,
U32 *NewFrequency, U32 Mode, U32 Guard,
U32 Force, U32 Hierarchy, U32 Spectrum,
U32 FreqOff, U32 ChannelBW, S32 EchoPos);
ST_ErrorCode_t demod_stb0899_ioctl (DEMOD_Handle_t Handle, U32 Function, void *InParams, void *OutParams, STTUNER_Da_Status_t *Status);
/* added for DiSEqC API support*/
ST_ErrorCode_t demod_stb0899_DiSEqC (DEMOD_Handle_t Handle,
STTUNER_DiSEqCSendPacket_t *pDiSEqCSendPacket,
STTUNER_DiSEqCResponsePacket_t *pDiSEqCResponsePacket
);
ST_ErrorCode_t demod_stb0899_DiSEqCGetConfig ( DEMOD_Handle_t Handle ,STTUNER_DiSEqCConfig_t * DiSEqCConfig);
ST_ErrorCode_t demod_stb0899_DiSEqCBurstOFF ( DEMOD_Handle_t Handle );
ST_ErrorCode_t demod_stb0899_Tonedetection(DEMOD_Handle_t Handle,U32 StartFreq, U32 StopFreq,U8 *NbTones,U32 *ToneList, U8 mode, int* power_detection_level);
/* I/O API */
ST_ErrorCode_t demod_stb0899_ioaccess(DEMOD_Handle_t Handle, IOARCH_Handle_t IOHandle,
STTUNER_IOARCH_Operation_t Operation, U16 SubAddr, U8 *Data, U32 TransferSize, U32 Timeout);
ST_ErrorCode_t demod_stb0899_DiseqcInit(DEMOD_Handle_t Handle);
/* local functions --------------------------------------------------------- */
STB0899_InstanceData_t *STB0899_GetInstFromHandle(DEMOD_Handle_t Handle);
BOOL checkLUT(int Value, U32 ModeCode)
{
if(Value == ModeCode)
return TRUE;
else
return FALSE;
}
/* ----------------------------------------------------------------------------
Name: STTUNER_DRV_DEMOD_STB0899_Install()
Description:
install a satellite device driver into the demod database.
Parameters:
Return Value:
---------------------------------------------------------------------------- */
ST_ErrorCode_t STTUNER_DRV_DEMOD_STB0899_Install(STTUNER_demod_dbase_t *Demod)
{
ST_ErrorCode_t Error = ST_NO_ERROR;
if(Installed == TRUE)
{
#ifdef STTUNER_DEBUG_MODULE_SATDRV_STB0899
STTBX_Print(("%s fail driver already installed\n", identity));
#endif
return(STTUNER_ERROR_INITSTATE);
}
#ifdef STTUNER_DEBUG_MODULE_SATDRV_STB0899
STTBX_Print(("%s installing sat:demod:STB0899...", identity));
#endif
/* mark ID in database */
Demod->ID = STTUNER_DEMOD_STB0899;
/* map API */
Demod->demod_Init = demod_stb0899_Init;
Demod->demod_Term = demod_stb0899_Term;
Demod->demod_Open = demod_stb0899_Open;
Demod->demod_Close = demod_stb0899_Close;
Demod->demod_IsAnalogCarrier = demod_stb0899_IsAnalogCarrier;
Demod->demod_GetSignalQuality = demod_stb0899_GetSignalQuality;
Demod->demod_GetModulation = demod_stb0899_GetModulation;
Demod->demod_SetModulation = demod_stb0899_SetModulation;
Demod->demod_GetAGC = demod_stb0899_GetAGC;
Demod->demod_GetIQMode = demod_stb0899_GetIQMode; /*added for GNBvd26107->I2C failure due to direct access to demod device at API level*/
Demod->demod_GetFECRates = demod_stb0899_GetFECRates;
Demod->demod_IsLocked = demod_stb0899_IsLocked ;
Demod->demod_SetFECRates = demod_stb0899_SetFECRates;
Demod->demod_Tracking = demod_stb0899_Tracking;
Demod->demod_ScanFrequency = demod_stb0899_ScanFrequency;
#ifdef STTUNER_DRV_SAT_STB0899
Demod->demod_GetModeCode = demod_stb0899_GetModeCode;
#endif
/*Added for DiSEqC Support*/
Demod->demod_DiSEqC = demod_stb0899_DiSEqC;
Demod->demod_GetConfigDiSEqC = demod_stb0899_DiSEqCGetConfig;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -