Esempio n. 1
0
int d6158_read_status(struct dvb_frontend *fe, enum fe_status *status)
{
	int j, iRet;
	struct dvb_d6158_fe_ofdm_state *state = fe->demodulator_priv;
	UINT8 bIsLocked;

	//printk("%s>>\n", __FUNCTION__);
	for (j = 0; j < (PANIC6158_T2_TUNE_TIMEOUT / 50); j++)
	{
		YWOS_TaskSleep(50);
		iRet = nim_panic6158_get_lock(&state->spark_nimdev, &bIsLocked);
		if (bIsLocked)
		{
			break;
		}
	}
	//printk("bIsLocked = %d\n", bIsLocked);
	if (bIsLocked)
	{
		*status = FE_HAS_SIGNAL
		        | FE_HAS_CARRIER
		        | FE_HAS_VITERBI
		        | FE_HAS_SYNC
		        | FE_HAS_LOCK;
	}
	else
	{
		*status = 0;
	}
	return 0;
}
Esempio n. 2
0
/***********************************************************************
	函数名称:	demod_d6158_IsLocked

	函数说明:	读取信号是否锁定

************************************************************************/
YW_ErrorType_T demod_d6158_IsLocked(U8 Handle, BOOL *IsLocked)
{
    struct nim_device *dev = NULL;
	TUNER_ScanTaskParam_T   *Inst = NULL;
	UINT8 lock = 0;

    *IsLocked = FALSE;
	Inst = TUNER_GetScanInfo(Handle);
    if (Inst == NULL)
    {
        return 1;
    }
    dev = (struct nim_device *)Inst->userdata;
    if (dev == NULL)
    {
        return 1;
    }
	nim_panic6158_get_lock(dev,&lock);
	*IsLocked = (BOOL )lock;

	return YW_NO_ERROR;
}