• Guenter Roeck's avatar
    iio/adc: (max1363) Fix data conversion problems · 482bb4e6
    Guenter Roeck authored
    For chips with more than 8 bit ADC resolution, received data was always
    masked against 0xfff, ie with a 12 bit mask. This can result in bad data
    for chips with 10 bit resolution if those chips have higher bits set
    (seen with MAX1139).
    
    The receive buffer was defined as char array. This could result in
    unintentional sign extensions if the upper bit in a received byte
    was set. Since the chip is configured for unipolar mode, we never
    have to handle negative values, and sign extensions are never needed.
    Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
    Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
    482bb4e6
max1363.c 46.1 KB