static int gx1001_read_status(struct dvb_frontend *fe, fe_status_t * status)
{
	struct gx1001_state *state = fe->demodulator_priv;
	unsigned char s=0;
	
	demod_check_locked(state, &s);
	if(s==1)
	{
		*status = FE_HAS_LOCK|FE_HAS_SIGNAL|FE_HAS_CARRIER|FE_HAS_VITERBI|FE_HAS_SYNC;
	}
	else
	{
		*status = FE_TIMEDOUT;
	}
	
	return  0;
}
static int cdx2834_read_status(struct dvb_frontend *fe, fe_status_t * status)
{
	struct cdx2834_state *state = fe->demodulator_priv;
	unsigned char s=0;
	
	demod_check_locked(&s);
	if(s==1)
	{
		*status = FE_HAS_LOCK|FE_HAS_SIGNAL|FE_HAS_CARRIER|FE_HAS_VITERBI|FE_HAS_SYNC;
	}
	else
	{
		*status = FE_TIMEDOUT;
	}
	printk("cdx2834_read_status 0x%02x\n",*status);
	return  0;
}
static int cdx2834_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_parameters *p)
{
	struct cdx2834_state *state = fe->demodulator_priv;
	unsigned char s=0;
	state->mode = 0;
    //dump_stack();

	state->freq=p->frequency;
	state->bandwidth=p->u.ofdm.bandwidth ;
	state->mode = p->u.ofdm.ofdm_mode;

	printk("state->mode %d \n",state->mode);
    printk("cdx2834=>frequency=%d,bandwidth=%d\r\n",p->frequency,state->bandwidth);
	demod_connect(state, p->frequency,p->u.ofdm.bandwidth);
	demod_check_locked(&s);
	if(s!=1)
	{
			state->mode = 1;
			p->u.ofdm.ofdm_mode = state->mode;
			printk(" Not T ,Lock T2\n");
			demod_connect(state, p->frequency,p->u.ofdm.bandwidth);			
	}
	return  0;
}