📄 tuntdrv.c
字号:
#ifdef STTUNER_DRV_TER_TUN_DTT7592
ST_ErrorCode_t STTUNER_DRV_TUNER_DTT7592_UnInstall (STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNTDRV_UnInstall(Tuner, STTUNER_TUNER_DTT7592) );
}
#endif
#ifdef STTUNER_DRV_TER_TUN_TDLB7
ST_ErrorCode_t STTUNER_DRV_TUNER_TDLB7_UnInstall(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNTDRV_UnInstall(Tuner, STTUNER_TUNER_TDLB7) );
}
#endif
#ifdef STTUNER_DRV_TER_TUN_TDQD3
ST_ErrorCode_t STTUNER_DRV_TUNER_TDQD3_UnInstall(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNTDRV_UnInstall(Tuner, STTUNER_TUNER_TDQD3) );
}
#endif
#ifdef STTUNER_DRV_TER_TUN_DTT7300X
ST_ErrorCode_t STTUNER_DRV_TUNER_DTT7300X_UnInstall(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNTDRV_UnInstall(Tuner, STTUNER_TUNER_DTT7300X) );
}
#endif
#ifdef STTUNER_DRV_TER_TUN_ENG47402G1
ST_ErrorCode_t STTUNER_DRV_TUNER_ENG47402G1_UnInstall(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNTDRV_UnInstall(Tuner, STTUNER_TUNER_ENG47402G1) );
}
#endif
#ifdef STTUNER_DRV_TER_TUN_EAL2780
ST_ErrorCode_t STTUNER_DRV_TUNER_EAL2780_UnInstall(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNTDRV_UnInstall(Tuner, STTUNER_TUNER_EAL2780) );
}
#endif
#ifdef STTUNER_DRV_TER_TUN_TDA6650
ST_ErrorCode_t STTUNER_DRV_TUNER_TDA6650_UnInstall(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNTDRV_UnInstall(Tuner, STTUNER_TUNER_TDA6650) );
}
#endif
#ifdef STTUNER_DRV_TER_TUN_TDM1316
ST_ErrorCode_t STTUNER_DRV_TUNER_TDM1316_UnInstall(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNTDRV_UnInstall(Tuner, STTUNER_TUNER_TDM1316) );
}
#endif
#ifdef STTUNER_DRV_TER_TUN_TDEB2
ST_ErrorCode_t STTUNER_DRV_TUNER_TDEB2_UnInstall(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNTDRV_UnInstall(Tuner, STTUNER_TUNER_TDEB2) );
}
#endif
#ifdef STTUNER_DRV_TER_TUN_ED5058
ST_ErrorCode_t STTUNER_DRV_TUNER_ED5058_UnInstall(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNTDRV_UnInstall(Tuner, STTUNER_TUNER_ED5058) );
}
#endif
#ifdef STTUNER_DRV_TER_TUN_MIVAR
ST_ErrorCode_t STTUNER_DRV_TUNER_MIVAR_UnInstall(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNTDRV_UnInstall(Tuner, STTUNER_TUNER_MIVAR) );
}
#endif
#ifdef STTUNER_DRV_TER_TUN_TDED4
ST_ErrorCode_t STTUNER_DRV_TUNER_TDED4_UnInstall(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNTDRV_UnInstall(Tuner, STTUNER_TUNER_TDED4) );
}
#endif
#ifdef STTUNER_DRV_TER_TUN_DTT7102
ST_ErrorCode_t STTUNER_DRV_TUNER_DTT7102_UnInstall(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNTDRV_UnInstall(Tuner, STTUNER_TUNER_DTT7102) );
}
#endif
#ifdef STTUNER_DRV_TER_TUN_TECC2849PG
ST_ErrorCode_t STTUNER_DRV_TUNER_TECC2849PG_UnInstall(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNTDRV_UnInstall(Tuner, STTUNER_TUNER_TECC2849PG) );
}
#endif
#ifdef STTUNER_DRV_TER_TUN_TDCC2345
ST_ErrorCode_t STTUNER_DRV_TUNER_TDCC2345_UnInstall(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNTDRV_UnInstall(Tuner, STTUNER_TUNER_TDCC2345) );
}
#endif
#ifdef STTUNER_DRV_TER_TUN_RF4000
#ifndef ST_OSLINUX
ST_ErrorCode_t STTUNER_DRV_TUNER_RF4000_UnInstall(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNTDRV_UnInstall(Tuner, STTUNER_TUNER_RF4000) );
}
#endif
#endif
#ifdef STTUNER_DRV_TER_TUN_TDTGD108
ST_ErrorCode_t STTUNER_DRV_TUNER_TDTGD108_UnInstall (STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNTDRV_UnInstall(Tuner, STTUNER_TUNER_TDTGD108) );
}
#endif
#endif
#ifdef STTUNER_DRV_TER_TUN_DTVS223
ST_ErrorCode_t STTUNER_DRV_TUNER_DTVS223_UnInstall(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNTDRV_UnInstall(Tuner, STTUNER_TUNER_DTVS223) );
}
#endif
/* ------------------------------------------------------------------------- */
/* /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ API /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ */
/* ------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------------
Name: tuner_tuntdrv_Init()
Description: called for every perdriver.
Parameters:
Return Value:
---------------------------------------------------------------------------- */
ST_ErrorCode_t tuner_tuntdrv_Init(ST_DeviceName_t *DeviceName, TUNER_InitParams_t *InitParams)
{
#ifdef STTUNER_DEBUG_MODULE_TERDRV_TUNTDRV
const char *identity = "STTUNER tuntdrv.c tuner_tuntdrv_Init()";
#endif
ST_ErrorCode_t Error = ST_NO_ERROR;
TUNTDRV_InstanceData_t *InstanceNew, *Instance;
if(Installed == FALSE)
{
#ifdef STTUNER_DEBUG_MODULE_TERDRV_TUNTDRV
STTBX_Print(("%s fail no driver installed\n", identity));
#endif
return(STTUNER_ERROR_INITSTATE);
}
/* now safe to lock semaphore */
SEM_LOCK(Lock_InitTermOpenClose);
/* ---------- check params ---------- */
Error = STTUNER_Util_CheckPtrNull(InitParams->MemoryPartition);
if( Error != ST_NO_ERROR)
{
#ifdef STTUNER_DEBUG_MODULE_TERDRV_TUNTDRV
STTBX_Print(("%s fail MemoryPartition not valid\n", identity));
#endif
SEM_UNLOCK(Lock_InitTermOpenClose);
return(Error);
}
Error = STTUNER_Util_CheckPtrNull(DeviceName);
if( Error != ST_NO_ERROR)
{
#ifdef STTUNER_DEBUG_MODULE_TERDRV_TUNTDRV
STTBX_Print(("%s fail DeviceName not valid\n", identity));
#endif
SEM_UNLOCK(Lock_InitTermOpenClose);
return(Error);
}
InstanceNew = memory_allocate_clear(InitParams->MemoryPartition, 1, sizeof( TUNTDRV_InstanceData_t ));
if (InstanceNew == NULL)
{
#ifdef STTUNER_DEBUG_MODULE_TERDRV_TUNTDRV
STTBX_Print(("%s fail memory allocation InstanceNew\n", identity));
#endif
SEM_UNLOCK(Lock_InitTermOpenClose);
return(ST_ERROR_NO_MEMORY);
}
/* slot into chain */
if (InstanceChainTop == NULL)
{
InstanceNew->InstanceChainPrev = NULL; /* no previous instance */
InstanceChainTop = InstanceNew;
}
else /* tag onto last data block in chain */
{
Instance = InstanceChainTop;
while(Instance->InstanceChainNext != NULL)
{
Instance = Instance->InstanceChainNext; /* next block */
}
Instance->InstanceChainNext = (void *)InstanceNew;
InstanceNew->InstanceChainPrev = (void *)Instance;
}
InstanceNew->DeviceName = DeviceName;
InstanceNew->TopLevelHandle = STTUNER_MAX_HANDLES;
InstanceNew->IOHandle = InitParams->IOHandle;
InstanceNew->MemoryPartition = InitParams->MemoryPartition;
InstanceNew->InstanceChainNext = NULL; /* always last in the chain */
InstanceNew->TunerType = InitParams->TunerType;
InstanceNew->DeviceMap.MemoryPartition = InitParams->MemoryPartition;
switch(InstanceNew->TunerType)
{
#ifdef STTUNER_BASIC
#ifdef STTUNER_DRV_TER_TUN_DTT7572
case STTUNER_TUNER_DTT7572:
InstanceNew->PLLType = TUNER_PLL_DTT7572;
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_DTT7578
case STTUNER_TUNER_DTT7578:
InstanceNew->PLLType = TUNER_PLL_DTT7578;
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_DTT7592
case STTUNER_TUNER_DTT7592:
InstanceNew->PLLType = TUNER_PLL_DTT7592;
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_TDLB7
case STTUNER_TUNER_TDLB7:
InstanceNew->PLLType = TUNER_PLL_TDLB7;
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_TDQD3
case STTUNER_TUNER_TDQD3:
InstanceNew->PLLType = TUNER_PLL_TDQD3;
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_DTT7300X
case STTUNER_TUNER_DTT7300X:
InstanceNew->PLLType = TUNER_PLL_DTT7300X;
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_ENG47402G1
case STTUNER_TUNER_ENG47402G1:
InstanceNew->PLLType = TUNER_PLL_ENG47402G1;
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_EAL2780
case STTUNER_TUNER_EAL2780:
InstanceNew->PLLType = TUNER_PLL_EAL2780;
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_TDA6650
case STTUNER_TUNER_TDA6650:
InstanceNew->PLLType = TUNER_PLL_TDA6650;
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_TDM1316
case STTUNER_TUNER_TDM1316:
InstanceNew->PLLType = TUNER_PLL_TDM1316;
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_TDEB2
case STTUNER_TUNER_TDEB2:
InstanceNew->PLLType = TUNER_PLL_TDEB2;
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_ED5058
case STTUNER_TUNER_ED5058:
InstanceNew->PLLType = TUNER_PLL_ED5058;
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_MIVAR
case STTUNER_TUNER_MIVAR:
InstanceNew->PLLType = TUNER_PLL_MIVAR;
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_TDED4
case STTUNER_TUNER_TDED4:
InstanceNew->PLLType = TUNER_PLL_TDED4;
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_DTT7102
case STTUNER_TUNER_DTT7102:
InstanceNew->PLLType = TUNER_PLL_DTT7102;
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_TECC2849PG
case STTUNER_TUNER_TECC2849PG:
InstanceNew->PLLType = TUNER_PLL_TECC2849PG;
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_TDCC2345
case STTUNER_TUNER_TDCC2345:
InstanceNew->PLLType = TUNER_PLL_TDCC2345;
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_RF4000
#ifndef ST_OSLINUX
case STTUNER_TUNER_RF4000:
InstanceNew->PLLType = TUNER_PLL_RF4000;
break;
#endif
#endif
#ifdef STTUNER_DRV_TER_TUN_TDTGD108
case STTUNER_TUNER_TDTGD108:
InstanceNew->PLLType = TUNER_PLL_TDTGD108;
break;
#endif
#endif
#ifdef STTUNER_DRV_TER_TUN_DTVS223
case STTUNER_TUNER_DTVS223:
InstanceNew->PLLType = TUNER_PLL_DTVS223;
break;
#endif
default:
#ifdef STTUNER_DEBUG_MODULE_TERDRV_TUNTDRV
STTBX_Print(("%s incorrect tuner index", identity));
#endif
return(ST_ERROR_UNKNOWN_DEVICE);
break;
}
#ifdef STTUNER_DEBUG_MODULE_TERDRV_TUNTDRV
STTBX_Print(("%s allocated & initalized block named '%s' at 0x%08x (%d bytes) for tuner ID=%d\n", identity, InstanceNew->DeviceName, InstanceNew, sizeof( TUNTDRV_InstanceData_t ), InstanceNew->TunerType ));
#endif
SEM_UNLOCK(Lock_InitTermOpenClose);
return(Error);
}
/* ----------------------------------------------------------------------------
Name: tuner_tuntdrv_Term()
Description:
Parameters:
Return Value:
---------------------------------------------------------------------------- */
ST_ErrorCode_t tuner_tuntdrv_Term(ST_DeviceName_t *DeviceName, TUNER_TermParams_t *TermParams)
{
#ifdef STTUNER_DEBUG_MODULE_TERDRV_TUNTDRV
const char *identity = "STTUNER tuntdrv.c tuner_tuntdrv_Term()";
#endif
ST_ErrorCode_t Error = ST_NO_ERROR;
TUNTDRV_InstanceData_t *Instance, *InstancePrev, *InstanceNext;
if(Installed == FALSE)
{
#ifdef STTUNER_DEBUG_MODULE_TERDRV_TUNTDRV
STTBX_Print(("%s fail driver not installed\n", identity));
#endif
return(STTUNER_ERROR_INITSTATE);
}
/* now safe to lock semaphore */
SEM_LOCK(Lock_InitTermOpenClose);
/* ---------- check params ---------- */
Error = STTUNER_Util_CheckPtrNull(TermParams);
if( Error != ST_NO_ERROR)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -