Hi Matthieu, You are right: this function was not very useful. I just updated the dib3000mc/p driver in my repository where, among a lot of other this, this is more sane. Can you give it a try? Patrick. -- Mail: patrick.boettcher@xxxxxxx WWW: http://www.wi-bw.tfh-wildau.de/~pboettch/ On Sat, 29 Jul 2006, matthieu castet wrote: > Hi, > > I have a dvb-t usb2 device with a dib3000mc and the signal strength doesn't > seem right : the value goes up and down. > > The signal strength calculation is little strange : > - why does it use DIB3000MC_REG_SIGNAL_NOISE_LSB register ? > - the computing is strange : it remove bits 3 and 4 from the value. > - the comments are wrong : the dib3000mb signal_strength is different (there > is a signal power register). > > Any hints on that ? > > > Thanks > > Matthieu > > > [1] > /* see dib3000mb.c for calculation comments */ > static int dib3000mc_read_signal_strength(struct dvb_frontend* fe, u16 > *strength) > { > struct dib3000_state* state = fe->demodulator_priv; > u16 val = rd(DIB3000MC_REG_SIGNAL_NOISE_LSB); > *strength = (((val >> 6) & 0xff) << 8) + (val & 0x3f); > > deb_stat("signal: mantisse = %d, exponent = %d\n",(*strength >> 8) & 0xff, > *strength & 0xff); > return 0; > } > > _______________________________________________ > > linux-dvb@xxxxxxxxxxx > http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb > _______________________________________________ linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb