staging:iio:adc: max1363 fix 2 raw sysfs issues.
authorJonathan Cameron <jic23@cam.ac.uk>
Fri, 12 Aug 2011 15:55:29 +0000 (16:55 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 23 Aug 2011 20:28:42 +0000 (13:28 -0700)
indio_dev->channels was accidentally removed thus preventing any sysfs
registrations occuring for direct reading.  That hid the other issue.

Unfortunately the incorrect handling leads to misspresentation of data
in sysfs reads.

Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/iio/adc/max1363_core.c

index 72b0917412eea9e115c5c694002f6d0a41f4e679..d93b7a917b994581daed988db87ab55cbfb8c86e 100644 (file)
@@ -255,7 +255,7 @@ static int max1363_read_raw(struct iio_dev *indio_dev,
        switch (m) {
        case 0:
                ret = max1363_read_single_chan(indio_dev, chan, val, m);
-               if (ret)
+               if (ret < 0)
                        return ret;
                return IIO_VAL_INT;
        case (1 << IIO_CHAN_INFO_SCALE_SHARED):
@@ -1295,6 +1295,8 @@ static int __devinit max1363_probe(struct i2c_client *client,
 
        indio_dev->info = st->chip_info->info;
        indio_dev->modes = INDIO_DIRECT_MODE;
+       indio_dev->channels = st->chip_info->channels;
+       indio_dev->num_channels = st->chip_info->num_channels;
        ret = max1363_initial_setup(st);
        if (ret < 0)
                goto error_free_available_scan_masks;