Hi Peter, You are totally right, index is 0 based and this is a bug! Thank your for fixing! 2013/11/2 Peter Meerwald <pmeerw@xxxxxxxxxx>: > the index argument to sign_extend32() gives the bit position (from 0) > to the sign bit > > so e.g. if the measurement has 16-bit resolution, we need to pass 15; > a measurement of 0x8000 should be reported as -32768, not 32768 > > Signed-off-by: Peter Meerwald <pmeerw@xxxxxxxxxx> > Cc: Angelo Compagnucci <angelo.compagnucci@xxxxxxxxx> > --- > drivers/iio/adc/mcp3422.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/iio/adc/mcp3422.c b/drivers/iio/adc/mcp3422.c > index 1294832..c8c1baa 100644 > --- a/drivers/iio/adc/mcp3422.c > +++ b/drivers/iio/adc/mcp3422.c > @@ -88,10 +88,10 @@ static const int mcp3422_sample_rates[4] = { > > /* sample rates to sign extension table */ > static const int mcp3422_sign_extend[4] = { > - [MCP3422_SRATE_240] = 12, > - [MCP3422_SRATE_60] = 14, > - [MCP3422_SRATE_15] = 16, > - [MCP3422_SRATE_3] = 18 }; > + [MCP3422_SRATE_240] = 11, > + [MCP3422_SRATE_60] = 13, > + [MCP3422_SRATE_15] = 15, > + [MCP3422_SRATE_3] = 17 }; > > /* Client data (each client gets its own) */ > struct mcp3422 { > -- > 1.8.4.2 > -- Profile: http://it.linkedin.com/in/compagnucciangelo -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html