clkrv.c
上传用户:fy98168
上传日期:2015-06-26
资源大小:13771k
文件大小:5k
源码类别:

DVD

开发平台:

C/C++

  1. /*****************************************************************************
  2. File name   : clkrv.c
  3. Description : Clock Recovery functions
  4. COPYRIGHT (C) STMicroelectronics 2004.
  5. *****************************************************************************/
  6. /* Includes --------------------------------------------------------------- */
  7. #include <string.h>
  8. #include "stlite.h"
  9. #include "stdevice.h"
  10. #include "sttbx.h"
  11. #include "section.h"   /* memory partitions */
  12. #include "errors.h"
  13. #include "evt.h"
  14. #include "clkrv.h"
  15. #include "stpti_hal.h"
  16. //#include "tuner.h"
  17. /* Private Constants -------------------------------------------------- */
  18. /* Private Variables -------------------------------------------------- */
  19. /* Private Macros ----------------------------------------------------- */
  20. /* Private Function prototypes ---------------------------------------- */
  21. /* Global Variables ------------------------------------------------------- */
  22. ST_DeviceName_t  g_KBCLKRVDeviceName = "CLKRV";
  23. STCLKRV_Handle_t CLKRV_Handle;
  24. /* Functions -------------------------------------------------------------- */
  25. /*-------------------------------------------------------------------------
  26.  * Function : KB_CLKRVSetup
  27.  * Input    : None
  28.  * Output   :
  29.  * Return   : Error Code
  30.  * ----------------------------------------------------------------------*/
  31. ST_ErrorCode_t KB_CLKRVSetup( void )
  32. {
  33.     ST_ErrorCode_t       ST_ErrorCode;
  34.     STCLKRV_InitParams_t STCLKRV_InitParams;
  35.     STCLKRV_OpenParams_t STCLKRV_OpenParams = 0; /* No parameters */
  36.     STCLKRV_InitParams.DeviceType           = KB_CLKRV_DEVICE_TYPE;
  37.     STCLKRV_InitParams.Partition_p          = SystemPartition;
  38.     STCLKRV_InitParams.PCRMaxGlitch         = KB_CLKRV_PCR_MAX_GLITCH;
  39. #if 0
  40. #if defined (BUILD_FOR_DVBS)
  41.     STCLKRV_InitParams.MinSampleThres       = KB_CLKRV_MIN_SAMPLE_THRES_SAT;
  42.     STCLKRV_InitParams.PCRDriftThres        = KB_CLKRV_PCR_DRIFT_THRES_SAT;
  43.     STCLKRV_InitParams.MaxWindowSize        = KB_CLKRV_MAX_WINDOW_SIZE_SAT;
  44. #elif defined(BUILD_FOR_DVBT)
  45.    /* Set parameters for terrestrial tuner */
  46.         STCLKRV_InitParams.MinSampleThres   = KB_CLKRV_MIN_SAMPLE_THRES_TER;
  47.         STCLKRV_InitParams.PCRDriftThres    = KB_CLKRV_PCR_DRIFT_THRES_TER_8; 
  48.         STCLKRV_InitParams.MaxWindowSize    = KB_CLKRV_MAX_WINDOW_SIZE_TER;
  49. #endif
  50. #endif
  51.     STCLKRV_InitParams.MinSampleThres       = KB_CLKRV_MIN_SAMPLE_THRES_SAT;
  52.     STCLKRV_InitParams.PCRDriftThres        = KB_CLKRV_PCR_DRIFT_THRES_SAT;
  53.     STCLKRV_InitParams.MaxWindowSize        = KB_CLKRV_MAX_WINDOW_SIZE_SAT;
  54.     STCLKRV_InitParams.FSBaseAddress_p      = (U32 *)CKG_BASE_ADDRESS;
  55.     STCLKRV_InitParams.ADSCBaseAddress_p    = NULL;
  56.     STCLKRV_InitParams.InterruptNumber      = KB_CLKRV_INTERRUPT;
  57.     STCLKRV_InitParams.InterruptLevel       = KB_CLKRV_INTERRUPT_LEVEL;
  58.     strcpy( STCLKRV_InitParams.PCREvtHandlerName, "EVT"   );
  59.     strcpy( STCLKRV_InitParams.EVTDeviceName,     "EVT" );
  60.     strcpy( STCLKRV_InitParams.PTIDeviceName,     KB_PTI_DeviceName );
  61.     STTBX_Print(("KB_CLKRVSetup(%s)=", g_KBCLKRVDeviceName ));
  62.     ST_ErrorCode = STCLKRV_Init(g_KBCLKRVDeviceName, &STCLKRV_InitParams);
  63.     if (ST_ErrorCode != ST_NO_ERROR)
  64.     {
  65.         STTBX_Print(("%sn", KB_ErrorGetText(ST_ErrorCode) ));
  66.         return( ST_ErrorCode );
  67.     }
  68.     STTBX_Print(("%sn", STCLKRV_GetRevision() ));
  69.     STTBX_Print(("CLKRV_Open="));
  70.     ST_ErrorCode = STCLKRV_Open(g_KBCLKRVDeviceName, &STCLKRV_OpenParams, &CLKRV_Handle);
  71.     STTBX_Print(("%sn", KB_ErrorGetText(ST_ErrorCode) ));
  72.     ST_ErrorCode = STCLKRV_Enable(CLKRV_Handle);
  73.     if (ST_ErrorCode != ST_NO_ERROR)
  74.     {
  75.         STTBX_Print(("STCLKRV_Enable=%sn", KB_ErrorGetText(ST_ErrorCode) ));
  76.     }
  77.     ST_ErrorCode = STCLKRV_SetSTCOffset(CLKRV_Handle, STC_OFFSET);
  78.     if (ST_ErrorCode != ST_NO_ERROR)
  79.     {
  80.         STTBX_Print(("STCLKRV_SetSTCOffset=%sn", KB_ErrorGetText(ST_ErrorCode) ));
  81.     }
  82.     return( ST_ErrorCode );
  83. }
  84. //TMTM added as per 5100
  85. /*******************************************************************************
  86. Name        : C L K R V _ S e t P C R s o u r c e 
  87. Description : <$functionDescription>
  88. Parameters  : 
  89. Assumptions :
  90. Limitations : 
  91. Returns     : (ST_ErrorCode_t) <$returnDescription>
  92. *******************************************************************************/
  93. ST_ErrorCode_t CLKRV_SetPCRsource(STPTI_Slot_t pcrSlot)
  94. {
  95. STCLKRV_SourceParams_t STCLKRV_SourceParams;
  96. ST_ErrorCode_t ST_ErrorCode;
  97. STCLKRV_SourceParams.Source = STCLKRV_PCR_SOURCE_PTI;
  98. STCLKRV_SourceParams.Source_u.STPTI_s.Slot = pcrSlot;
  99. ST_ErrorCode = STCLKRV_SetPCRSource(CLKRV_Handle, &STCLKRV_SourceParams);
  100. if (ST_ErrorCode != ST_NO_ERROR)
  101. {
  102. STTBX_Print(("PTI:CLKRV_SetPCRSource(CLKRV)=%s", KB_ErrorGetText(ST_ErrorCode) ));
  103. }
  104. return ST_ErrorCode;
  105. }/* End of   C L K R V _ S e t P C R s o u r c e ( ) */
  106. /* EOF -------------------------------------------------------------------- */