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

📄 l0299.c

📁 st7710的tuner标准驱动
💻 C
📖 第 1 页 / 共 4 页
字号:
#ifdef STTUNER_DEBUG_MODULE_SATDRV_L0299
    STTBX_Print(("%s closed\n", identity));
#endif

    SEM_UNLOCK(Lock_InitTermOpenClose);
    #endif
    #ifdef STTUNER_MINIDRIVER
    LNBInstance->TopLevelHandle = STTUNER_MAX_HANDLES;
    #endif
    return(Error);
}


#if defined(STTUNER_DRV_SAT_LNB21) || defined(STTUNER_DRV_SAT_LNBH21)
/* ----------------------------------------------------------------------------
Name: lnb_l0299_overloadcheck()

Description:
    Dummy Function
    
Parameters:
    
Return Value:
---------------------------------------------------------------------------- */

ST_ErrorCode_t lnb_l0299_overloadcheck(LNB_Handle_t Handle, BOOL  *IsOverTemp, BOOL *IsCurrentOvrLoad)
{
    ST_ErrorCode_t Error = ST_NO_ERROR;
    return(Error);
}

#if defined(STTUNER_DRV_SAT_LNBH21)
/* ----------------------------------------------------------------------------
Name: lnb_l0299_setttxmode()

Description:
    Dummy Function
    
Parameters:
    
Return Value:
---------------------------------------------------------------------------- */

ST_ErrorCode_t lnb_l0299_setttxmode(LNB_Handle_t Handle, STTUNER_LnbTTxMode_t Ttxmode)
{
    ST_ErrorCode_t Error = ST_NO_ERROR;
    return(Error);
}
#endif
#endif


/* ----------------------------------------------------------------------------
Name: lnb_l0299_GetConfig()

Description:

Parameters:

Return Value:
---------------------------------------------------------------------------- */
ST_ErrorCode_t lnb_l0299_GetConfig(LNB_Handle_t Handle, LNB_Config_t *Config)
{
#ifdef STTUNER_DEBUG_MODULE_SATDRV_L0299
   const char *identity = "STTUNER l0299.c lnb_l0299_GetConfig()";
#endif
    ST_ErrorCode_t Error = ST_NO_ERROR;
    #ifndef STTUNER_MINIDRIVER
    L0299_InstanceData_t     *Instance;

    Instance = (L0299_InstanceData_t *)Handle;

    Config->Status       = Instance->Config.Status;
    Config->Polarization = Instance->Config.Polarization;
    Config->ToneState    = Instance->Config.ToneState;

#ifdef STTUNER_DEBUG_MODULE_SATDRV_L0299
    STTBX_Print(("%s called\n", identity));
#endif
    #endif
    
    #ifdef STTUNER_MINIDRIVER
	    Config->Status       = LNBInstance->Config.Status;
	    Config->Polarization = LNBInstance->Config.Polarization;
	    Config->ToneState    = LNBInstance->Config.ToneState;
    #endif
    return(Error);
}



/* ----------------------------------------------------------------------------
Name: lnb_l0299_SetConfig()

Description:

Parameters:

Return Value:
---------------------------------------------------------------------------- */
ST_ErrorCode_t lnb_l0299_SetConfig(LNB_Handle_t Handle, LNB_Config_t *Config)
{
	#ifdef STTUNER_DEBUG_MODULE_SATDRV_L0299
	   const char *identity = "STTUNER l0299.c lnb_l0299_SetConfig()";
	#endif
	
    ST_ErrorCode_t Error = ST_NO_ERROR;
    #ifndef STTUNER_MINIDRIVER
    L0299_InstanceData_t     *Instance;

    Instance = (L0299_InstanceData_t *)Handle;

    #ifdef STTUNER_DRV_SAT_SCR
		#ifdef STTUNER_DRV_SAT_SCR_LOOPTHROUGH
		    if(Instance->DISECQ_ST_ENABLE == FALSE)
		    {
			    /*Error = FE_399_SetPower(Instance->FE_399_Handle, LNB_STATUS_OFF);*/  /* Make LNB power off of second NIM because of no use */
			    Handle = LnbDrvHandleOne;
			    Instance = (L0399_InstanceData_t *)Handle;
		    }
		#endif
	#endif

    /* Select LNB band */
    
    if (Instance->Config.ToneState != Config->ToneState)
      {
	    switch(Instance->Config.ToneSourceControl)
        {
	    case STTUNER_22KHz_TONE_DemodOP0Pin:
          
	    switch (Config->ToneState)
        
	    {
			case STTUNER_LNB_TONE_OFF:      /* No tone */
			L0299_SetLnb(&Instance->DeviceMap, Instance->IOHandle, 0);
			break;

			case STTUNER_LNB_TONE_22KHZ:    /* 22KHz tone */
			L0299_SetLnb(&Instance->DeviceMap, Instance->IOHandle, 1);
			break;

			case STTUNER_LNB_TONE_DEFAULT:  /* no change */
			break;

			default:


			#ifdef STTUNER_DEBUG_MODULE_SATDRV_L0299
			STTBX_Print(("%s fail tone state not default, off or 22KHz\n", identity));
			#endif
			return(ST_ERROR_BAD_PARAMETER);
        }
        break;
        
        case STTUNER_22KHz_TONE_DemodDiseqcPin:
        switch (Config->ToneState)
        
	    {
			case STTUNER_LNB_TONE_OFF:      /* No tone */
			L0299_SetTone_Demod(&Instance->DeviceMap, Instance->IOHandle, 0);
			break;

			case STTUNER_LNB_TONE_22KHZ:    /* 22KHz tone */
			L0299_SetTone_Demod(&Instance->DeviceMap, Instance->IOHandle, 1);
			break;

			case STTUNER_LNB_TONE_DEFAULT:  /* no change */
			break;

			default:
			return(ST_ERROR_BAD_PARAMETER);
        }
             
        break; 
        default:
        break;    

      }
        
        Instance->Config.ToneState = Config->ToneState;
    }


    /* Select polarization */
    if (Instance->Config.Polarization != Config->Polarization)
    {
        switch(Instance->Config.LNBPowerControl)
        {
	        case  STTUNER_LNB_POWER_LNBPDefault:
	        
	    	switch (Config->Polarization)
			{
				case STTUNER_PLR_VERTICAL:      /* OP_2 controls -- 18V (high) */
				L0299_SetPolarization(&Instance->DeviceMap, Instance->IOHandle, VERTICAL);
				break;

				case STTUNER_PLR_HORIZONTAL:    /* OP_2 controls -- 13V (low) */
				L0299_SetPolarization(&Instance->DeviceMap, Instance->IOHandle, HORIZONTAL);
				break;
				
				case STTUNER_LNB_OFF:
				L0299_SetPolarization(&Instance->DeviceMap, Instance->IOHandle, NOPOLARIZATION);
				break;

				default:
				#ifdef STTUNER_DEBUG_MODULE_SATDRV_L0299
				STTBX_Print(("%s fail polarity not V or H\n", identity));
				#endif
				return(ST_ERROR_BAD_PARAMETER);
			}
          
         break;
       
      	case STTUNER_LNB_POWER_DemodDACPin:
      
	    switch (Config->Polarization)
	    {
			case STTUNER_PLR_VERTICAL:      /* set DAC for 13V */
			L0299_SetDACPolarization(&Instance->DeviceMap, Instance->IOHandle, VERTICAL);
			break;

			case STTUNER_PLR_HORIZONTAL:    /* set DAC for 18V */
			L0299_SetDACPolarization(&Instance->DeviceMap, Instance->IOHandle, HORIZONTAL);
			break;
			
			case STTUNER_LNB_OFF:
			L0299_SetDACPolarization(&Instance->DeviceMap, Instance->IOHandle, NOPOLARIZATION);
			break;

			default:
			return(ST_ERROR_BAD_PARAMETER);
        }
       
       break;
       
       default:
       break;
      }
      Instance->Config.Polarization = Config->Polarization;
    }


    /* Select power status */
    if (Instance->Config.Status != Config->Status)
    {
	    switch(Instance->Config.LNBPowerControl)
        {
	        case  STTUNER_LNB_POWER_LNBPDefault:
	    
			switch (Config->Status)
			{
				case LNB_STATUS_ON:
				case LNB_STATUS_OFF:
				L0299_SetPower(&Instance->DeviceMap, Instance->IOHandle, Config->Status);
				break;
				default:
				#ifdef STTUNER_DEBUG_MODULE_SATDRV_L0299
				STTBX_Print(("%s fail status not ON or OFF\n", identity));
				#endif
				return(ST_ERROR_BAD_PARAMETER);
			}
	       
	       break;
       
          case STTUNER_LNB_POWER_DemodDACPin:
	      
          switch (Config->Status)
	      {
			case LNB_STATUS_ON:
			case LNB_STATUS_OFF:
			L0299_Set_DACPower(&Instance->DeviceMap, Instance->IOHandle, Config->Status);
			break;

			default:
			return(ST_ERROR_BAD_PARAMETER);
          }
	       
	       break;
       
       default:
       break;
     }
     Instance->Config.Status = Config->Status;  
    }
/* Delay 1 msec to stablize LNB transition*/
task_delay((ST_GetClocksPerSecond()/1000)); /* Bug GNBvd18876 */

#ifdef STTUNER_DEBUG_MODULE_SATDRV_L0299
    STTBX_Print(("%s ok\n", identity));
#endif
    #endif
    
#ifdef STTUNER_MINIDRIVER
   
    if(LNBInstance->Config.ToneState != Config->ToneState)
    {
	   switch (Config->ToneState)
           {
			case STTUNER_LNB_TONE_OFF:      /* No tone */
			L0299_SetLnb(0);
			break;

			case STTUNER_LNB_TONE_22KHZ:    /* 22KHz tone */
			L0299_SetLnb(1);
			break;

			case STTUNER_LNB_TONE_DEFAULT:  /* no change */
			break;

			default:


			#ifdef STTUNER_DEBUG_MODULE_SATDRV_L0299
			STTBX_Print(("%s fail tone state not default, off or 22KHz\n", identity));
			#endif
			return(ST_ERROR_BAD_PARAMETER);
        }
        
       
        
        LNBInstance->Config.ToneState = Config->ToneState;
    }


    /* Select polarization */
    if (LNBInstance->Config.Polarization != Config->Polarization)
    {
        	switch (Config->Polarization)
			{
				case STTUNER_PLR_VERTICAL:      /* OP_2 controls -- 18V (high) */
				L0299_SetPolarization(VERTICAL);
				break;

				case STTUNER_PLR_HORIZONTAL:    /* OP_2 controls -- 13V (low) */
				L0299_SetPolarization(HORIZONTAL);
				break;
				
				case STTUNER_LNB_OFF:  
				break;

				default:
				#ifdef STTUNER_DEBUG_MODULE_SATDRV_L0299
				STTBX_Print(("%s fail polarity not V or H\n", identity));
				#endif
				return(ST_ERROR_BAD_PARAMETER);
			}
          
       
      LNBInstance->Config.Polarization = Config->Polarization;
    }


    /* Select power status */
    if (LNBInstance->Config.Status != Config->Status)
    {
	switch (Config->Status)
	{
		case LNB_STATUS_ON:
		case LNB_STATUS_OFF:
		L0299_SetPower(Config->Status);
		break;
		default:
		#ifdef STTUNER_DEBUG_MODULE_SATDRV_L0299
		STTBX_Print(("%s fail status not ON or OFF\n", identity));
		#endif
		return(ST_ERROR_BAD_PARAMETER);
	}

     LNBInstance->Config.Status = Config->Status;  
    }
/* Delay 1 msec to stablize LNB transition*/
task_delay((ST_GetClocksPerSecond()/1000)); /* Bug GNBvd18876 */
    #endif
    return(Error);
}


 #ifndef STTUNER_MINIDRIVER
/* ----------------------------------------------------------------------------
Name: lnb_l0299_ioctl()

Description:
    access device specific low-level functions

Parameters:

Return Value:
---------------------------------------------------------------------------- */
ST_ErrorCode_t lnb_l0299_ioctl(LNB_Handle_t Handle, U32 Function, void *InParams, void *OutParams, STTUNER_Da_Status_t *Status)

{
#ifdef STTUNER_DEBUG_MODULE_SATDRV_L0299
   const char *identity = "STTUNER l0299.c lnb_l0299_ioctl()";
#endif
    ST_ErrorCode_t Error;
   
    L0299_InstanceData_t     *Instance;

    Instance = (L0299_InstanceData_t *)Handle;

    if(STTUNER_Util_CheckPtrNull(Instance) != ST_NO_ERROR)
    {
#ifdef STTUNER_DEBUG_MODULE_SATDRV_L0299
        STTBX_Print(("%s invalid handle\n", identity));
#endif
        return(ST_ERROR_INVALID_HANDLE);
    }

    switch(Function){

        case STTUNER_IOCTL_RAWIO: /* read/write device register (actual write to stv0299) */
            Error =  STTUNER_IOARCH_ReadWrite( Instance->IOHandle,
                                                 ((SATIOCTL_IOARCH_Params_t *)InParams)->Operation,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -