staging:iio:imu:adis16400: use strtobool for reset sysfs and don't assign unused...
authorJonathan Cameron <jic23@cam.ac.uk>
Fri, 12 Aug 2011 16:08:36 +0000 (17:08 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 23 Aug 2011 20:31:06 +0000 (13:31 -0700)
Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
Acked-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/iio/imu/adis16400_core.c

index a2c3b67dcbdf96111d1f32ee303769b5f4c6f36c..4feee26c6f6b90eb4b2e3b599948d49f7898b62c 100644 (file)
@@ -150,8 +150,6 @@ static int adis16400_spi_read_reg_16(struct iio_dev *indio_dev,
        mutex_lock(&st->buf_lock);
        st->tx[0] = ADIS16400_READ_REG(lower_reg_address);
        st->tx[1] = 0;
-       st->tx[2] = 0;
-       st->tx[3] = 0;
 
        spi_message_init(&msg);
        spi_message_add_tail(&xfers[0], &msg);
@@ -240,17 +238,18 @@ static ssize_t adis16400_write_reset(struct device *dev,
                struct device_attribute *attr,
                const char *buf, size_t len)
 {
-       struct iio_dev *indio_dev = dev_get_drvdata(dev);
+       bool val;
+       int ret;
 
-       if (len < 1)
-               return -1;
-       switch (buf[0]) {
-       case '1':
-       case 'y':
-       case 'Y':
-               return adis16400_reset(indio_dev);
-       }
-       return -1;
+       ret = strtobool(buf, &val);
+       if (ret < 0)
+               return ret;
+       if (val)
+               ret = adis16400_reset(dev_get_drvdata(dev));
+       if (ret < 0)
+               return ret;
+
+       return len;
 }
 
 int adis16400_set_irq(struct iio_dev *indio_dev, bool enable)