Esempio n. 1
0
INT32 tun_nt220x_status(UINT32 tuner_id, UINT8 *lock)
{
	INT32 result = 0;
	tmErrorCode_t err;
	tmbslFrontEndState_t PLLLockMaster = tmbslFrontEndStateUnknown;	
	
	struct QAM_TUNER_CONFIG_EXT * tuner_dev_ptr = NULL;

	if ((tuner_id>=nt220x_tuner_cnt) || (tuner_id>=MAX_TUNER_SUPPORT_NUM))
		return ERR_FAILUE;
	tuner_dev_ptr = nt220x_dev_id[tuner_id];

   /* Get NT220X Master PLL Lock status */
	err = tmbslNT220xGetLockStatus(0, &PLLLockMaster);
	if(err != TM_OK)
	{
		*lock = 0;
		result = !SUCCESS;
	}
	else
	{
		if (tmbslFrontEndStateLocked == PLLLockMaster)
		{
			*lock = 1;
		}
		else
		{
			*lock = 0;
		}
		result = SUCCESS;
	}
   
	return result;
}
int set_tuner_fj2207(struct aml_demod_sta *demod_sta, 
		     struct aml_demod_i2c *adap)
{
    tmErrorCode_t err = TM_OK;
    tmNT220xStandardMode_t StandardMode;
    tmbslFrontEndState_t PLLLock;
    UInt32 ch_if;
    UInt32 ch_pow;
    
    int only_set_freq;
    only_set_freq = (demod_sta->ch_freq)&0x1;

    unsigned long ch_freq;
    int ch_bw;
    
    ch_freq = demod_sta->ch_freq; // kHz
    ch_bw   = demod_sta->ch_bw / 1000; // MHz

    printk("Set Tuner FJ2207 to %ld kHz, demod mode is %d\n", ch_freq, demod_sta->dvb_mode);
    ch_freq *= 1000; // Hz

    StandardMode = demod_sta->dvb_mode==0 ?	(ch_bw<8 ? tmNT220x_QAM_6MHz : tmNT220x_QAM_8MHz) :
    	             demod_sta->dvb_mode==1 ? (ch_bw-6 + tmNT220x_DVBT_6MHz) :
    	             demod_sta->dvb_mode==2 ? tmNT220x_DVBT_8MHz:tmNT220x_DVBT_8MHz;//tmNT220x_ISDBT_6MHz

    if (only_set_freq == 1)
    {
    	
    }
    else
    {
        printk("Mode: %s\n", NT220x_mode_name[StandardMode]);
        err = tmbslNT220xSetStandardMode(0, StandardMode);
        if(err != TM_OK)
            return err;
    }

        err = tmbslNT220xSetRf(0, ch_freq);
        if(err != TM_OK)
        return err;

        err = tmbslNT220xGetLockStatus(0, &PLLLock);
        if(err != TM_OK)
           return err;
  
        err = tmbslNT220xGetIF(0, &ch_if);
        if(err != TM_OK)
           return err;
        demod_sta->ch_if = ch_if / 1000;
        printk("IF: %d kHz\n", demod_sta->ch_if);

        err = tmbslNT220xGetPowerLevel(0, &ch_pow);
        if(err != TM_OK)
           return err;
        printk("Signal Power: %d dBuV\n", (int)ch_pow);

    return err;
}