*strength = (((5334 - i20Log10(snr_equ))/3+5)*65535)/1000;  
signal_strength = (((5334 - i20Log10(snr_equ))/3+5)*65535)/1000; if (signal_strength > 0xffff) *strength = 0xffff; else *strength = signal_strength; 
static int or51211_read_signal_strength(struct dvb_frontend* fe, u16* strength){	struct or51211_state* state = fe->demodulator_priv;	u8 rec_buf[2];	u8 snd_buf[4];	u8 snr_equ;	/* SNR after Equalizer */	snd_buf[0] = 0x04;	snd_buf[1] = 0x00;	snd_buf[2] = 0x04;	snd_buf[3] = 0x00;	if (i2c_writebytes(state,state->config->demod_address,snd_buf,3)) {		printk(KERN_WARNING "or51211: read_status write error\n");		return -1;	}	msleep(3);	if (i2c_readbytes(state,state->config->demod_address,rec_buf,2)) {		printk(KERN_WARNING "or51211: read_status read error\n");		return -1;	}	snr_equ = rec_buf[0] & 0xff;	/* The value reported back from the frontend will be FFFF=100% 0000=0% */	*strength = (((5334 - i20Log10(snr_equ))/3+5)*65535)/1000;	dprintk("read_signal_strength %i\n",*strength);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/b90ed914e513a6ad6184f7a46a0df0888dcfc177/or51211.c/clean/drivers/media/dvb/frontends/or51211.c