⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tuntdrv.c

📁 st7710的tuner标准驱动
💻 C
📖 第 1 页 / 共 5 页
字号:
	#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 + -