コード例 #1
0
ファイル: D0367cab.c プロジェクト: Greder/RUnigma-OpenPli
static int dvb_d0367_fe_qam_set_frontend(struct dvb_frontend* fe,
											struct dvb_frontend_parameters *p)
{
	struct dvb_d0367_fe_qam_state* state = fe->demodulator_priv;

	TUNER_IOREG_DeviceMap_t			*DeviceMap;
	IOARCH_Handle_t		    		IOHandle;

	DeviceMap = &state->DeviceMap;
	IOHandle  = state->IOHandle;

	state->p = p;

    D0367qam_ScanFreq(DeviceMap, IOHandle);

	{
		BOOL bIsLocked;
		bIsLocked = FE_367qam_Status(&state->DeviceMap, state->IOHandle);
		printk("%d:bIsLocked = %d\n", __LINE__, bIsLocked);
    }

	state->p = NULL;

	return 0;
}
コード例 #2
0
ファイル: D0367cab.c プロジェクト: Greder/RUnigma-OpenPli
static int dvb_d0367_fe_qam_read_status(struct dvb_frontend* fe,
													fe_status_t* status)
{
	struct dvb_d0367_fe_qam_state* state = fe->demodulator_priv;
	//int iTunerLock = 0;
	BOOL bIsLocked;

	#if 0
	if (fe->ops.tuner_ops.get_status)
	{
		if (fe->ops.tuner_ops.get_status(fe, &iTunerLock) < 0)
		{
			printk("1. Tuner get_status err\n");
		}
	}
	if (iTunerLock)
		printk("1. Tuner phase locked\n");
	else
		printk("1. Tuner unlocked\n");
	if (fe->ops.i2c_gate_ctrl)
	{
		if (fe->ops.i2c_gate_ctrl(fe, 0) < 0)
			goto exit;
	}
	#endif  /* 0 */
	{
		bIsLocked = FE_367qam_Status(&state->DeviceMap, state->IOHandle);
		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;
	}
	#if 1
	{
	    U32 Quality;
	    U32 Intensity;
	    U32 Ber;

	    FE_STV0367qam_GetSignalInfo(&state->DeviceMap, state->IOHandle,
	                                &Quality, &Intensity, &Ber,  FirstTimeBER);
	    printk("Quality = %d, Intensity = %d, Ber = %d\n",
	    		Quality, Intensity, Ber);
	}
	#endif  /* 0 */
	return 0;
#if 0
exit:
	printk(KERN_ERR "%s: dvb_d0367_fe_qam_read_status Error\n", __func__);
	return -1;
#endif  /* 0 */
}
コード例 #3
0
ファイル: d0367_qam.c プロジェクト: benny-ua/martiis-tdt
/***********************************************************************
	函数名称:	demod_d0367qam_IsLocked

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

    修改记录:	日       期      作      者       修定
 				---------         ---------       -----
               	2010.11.11		  lwj			  创建
************************************************************************/
YW_ErrorType_T demod_d0367qam_IsLocked(U8 Handle, BOOL *IsLocked)
{

	YW_ErrorType_T          Error = YW_NO_ERROR;
	TUNER_ScanTaskParam_T   *Inst;
	IOARCH_Handle_t		    IOHandle;
	TUNER_IOREG_DeviceMap_t	*DeviceMap;

	Inst = TUNER_GetScanInfo(Handle);
	IOHandle = Inst->DriverParam.Cab.DemodIOHandle;
	DeviceMap = &Inst->DriverParam.Cab.Demod_DeviceMap;


	*IsLocked = FE_367qam_Status(DeviceMap, IOHandle);

	return(Error);
}
コード例 #4
0
ファイル: D0367cab.c プロジェクト: Greder/RUnigma-OpenPli
struct dvb_frontend* dvb_d0367_fe_qam_attach(struct i2c_adapter* i2c)
{
	struct dvb_d0367_fe_qam_state* state = NULL;

    TUNER_IOREG_DeviceMap_t *DeviceMap;
    IOARCH_Handle_t IOHandle;

	/* allocate memory for the internal state */
	state = kzalloc(sizeof(struct dvb_d0367_fe_qam_state), GFP_KERNEL);
	if (state == NULL) goto error;

	/* create dvb_frontend */
	memcpy(&state->frontend.ops, &dvb_d0367_fe_qam_ops, sizeof(struct dvb_frontend_ops));
	state->frontend.demodulator_priv = state;
	state->i2c = i2c;

	state->IOHandle = (IOARCH_Handle_t)i2c;

	state->DeviceMap.Timeout   = IOREG_DEFAULT_TIMEOUT;
	state->DeviceMap.Registers = STV0367qam_NBREGS;
	state->DeviceMap.Fields    = STV0367qam_NBFIELDS;
	state->DeviceMap.Mode      = IOREG_MODE_SUBADR_16;
    state->DeviceMap.RegExtClk = 27000000; //Demod External Crystal_HZ
	state->DeviceMap.RegMap = (TUNER_IOREG_Register_t *)
					kzalloc(state->DeviceMap.Registers * sizeof(TUNER_IOREG_Register_t),
							GFP_KERNEL);
	state->DeviceMap.priv = (void *)state;

    DeviceMap = &state->DeviceMap;
    IOHandle = state->IOHandle;
{
    U8 data = 0xFF;
    data = ChipGetField_0367qam(DeviceMap, IOHandle, R367qam_ID);
	printk("set data = 0x%02x\n", data);
}

#if 0
{
    U32 Quality;
    U32 Intensity;
    U32 Ber;

    FE_STV0367qam_GetSignalInfo(DeviceMap, IOHandle,
                                &Quality, &Intensity, &Ber,  FirstTimeBER);
    printk("Quality = %d, Intensity = %d, Ber = %d\n",
    		Quality, Intensity, Ber);
}
#if 0
{

	BOOL bIsLocked;
	bIsLocked = FE_367qam_Status(DeviceMap, IOHandle);
	printk("bIsLocked = %d\n", bIsLocked);
}
#endif  /* 0 */
#endif  /* 0 */
	return &state->frontend;

error:
	kfree(state);
	return NULL;
}