iio: ti_am335x_adc: optimize memory usage
authorZubair Lutfullah <zubair.lutfullah@gmail.com>
Thu, 19 Sep 2013 06:24:00 +0000 (07:24 +0100)
committerJonathan Cameron <jic23@kernel.org>
Sat, 21 Sep 2013 10:47:53 +0000 (11:47 +0100)
12 bit ADC data is stored in 32 bits of storage.
Change from u32 to u16 to reduce wasted memory.

Signed-off-by: Zubair Lutfullah <zubair.lutfullah@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/adc/ti_am335x_adc.c

index a952538a1a8b5be11078744f1463d45067dee567..ebe93eba3ec833a476436fa47d323cee7ce8c4a8 100644 (file)
@@ -122,7 +122,7 @@ static int tiadc_channel_init(struct iio_dev *indio_dev, int channels)
                chan->datasheet_name = chan_name_ain[chan->channel];
                chan->scan_type.sign = 'u';
                chan->scan_type.realbits = 12;
-               chan->scan_type.storagebits = 32;
+               chan->scan_type.storagebits = 16;
        }
 
        indio_dev->channels = chan_array;
@@ -186,7 +186,7 @@ static int tiadc_read_raw(struct iio_dev *indio_dev,
                if (stepid == map_val) {
                        read = read & FIFOREAD_DATA_MASK;
                        found = true;
-                       *val = read;
+                       *val = (u16) read;
                }
        }