Hi, Gill Robles-Thome wrote: > Can anyone explain the algorithm used to calculate the SNR for the > stv0299 driver? Ie > > > case FE_READ_SNR: > { > s32 snr = 0xffff - ((stv0299_readreg (i2c, 0x24) << 8) > | stv0299_readreg (i2c, 0x25)); > snr = 3 * (snr - 0xa100); > *((u16*) arg) = (snr > 0xffff) ? 0xffff : > (snr < 0) ? 0 : snr; > break; > } > > > I don't understand where the 0xa100 value comes from, or why the result > is them multiplied by 3! Registers 0x24 and 0x25 are apparently "Noise > Indicator" registers, but the stv0299 specification doesn't explain very > well how these registers should be used. Me, I don't understand it either. The data sheet just says: "A simple C/N estimator can be easily implemented by comparing the current indications with a primarily-recorded look-up table", but doesn't give more information about this. You'll have to ask the original author of the driver, Peter Schildmann. Greetings to JP. Johannes