diff options
Diffstat (limited to 'drivers/staging/iio/accel/adis16220_core.c')
-rw-r--r-- | drivers/staging/iio/accel/adis16220_core.c | 48 |
1 files changed, 22 insertions, 26 deletions
diff --git a/drivers/staging/iio/accel/adis16220_core.c b/drivers/staging/iio/accel/adis16220_core.c index d478f51..e46a91c 100644 --- a/drivers/staging/iio/accel/adis16220_core.c +++ b/drivers/staging/iio/accel/adis16220_core.c @@ -21,29 +21,28 @@ #include "adis16220.h" static ssize_t adis16220_read_16bit(struct device *dev, - struct device_attribute *attr, - char *buf) + struct device_attribute *attr, + char *buf) { struct iio_dev_attr *this_attr = to_iio_dev_attr(attr); struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct adis16220_state *st = iio_priv(indio_dev); ssize_t ret; - s16 val = 0; + u16 val; /* Take the iio_dev status lock */ mutex_lock(&indio_dev->mlock); - ret = adis_read_reg_16(&st->adis, this_attr->address, - (u16 *)&val); + ret = adis_read_reg_16(&st->adis, this_attr->address, &val); mutex_unlock(&indio_dev->mlock); if (ret) return ret; - return sprintf(buf, "%d\n", val); + return sprintf(buf, "%u\n", val); } static ssize_t adis16220_write_16bit(struct device *dev, - struct device_attribute *attr, - const char *buf, - size_t len) + struct device_attribute *attr, + const char *buf, + size_t len) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct iio_dev_attr *this_attr = to_iio_dev_attr(attr); @@ -76,8 +75,8 @@ static int adis16220_capture(struct iio_dev *indio_dev) } static ssize_t adis16220_write_capture(struct device *dev, - struct device_attribute *attr, - const char *buf, size_t len) + struct device_attribute *attr, + const char *buf, size_t len) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); bool val; @@ -96,10 +95,10 @@ static ssize_t adis16220_write_capture(struct device *dev, } static ssize_t adis16220_capture_buffer_read(struct iio_dev *indio_dev, - char *buf, - loff_t off, - size_t count, - int addr) + char *buf, + loff_t off, + size_t count, + int addr) { struct adis16220_state *st = iio_priv(indio_dev); struct spi_transfer xfers[] = { @@ -131,15 +130,14 @@ static ssize_t adis16220_capture_buffer_read(struct iio_dev *indio_dev, /* write the begin position of capture buffer */ ret = adis_write_reg_16(&st->adis, - ADIS16220_CAPT_PNTR, - off > 1); + ADIS16220_CAPT_PNTR, + off > 1); if (ret) return -EIO; /* read count/2 values from capture buffer */ mutex_lock(&st->buf_lock); - for (i = 0; i < count; i += 2) { st->tx[i] = ADIS_READ_REG(addr); st->tx[i + 1] = 0; @@ -148,7 +146,6 @@ static ssize_t adis16220_capture_buffer_read(struct iio_dev *indio_dev, ret = spi_sync_transfer(st->adis.spi, xfers, ARRAY_SIZE(xfers)); if (ret) { - mutex_unlock(&st->buf_lock); return -EIO; } @@ -182,9 +179,9 @@ static struct bin_attribute accel_bin = { }; static ssize_t adis16220_adc1_bin_read(struct file *filp, struct kobject *kobj, - struct bin_attribute *attr, - char *buf, loff_t off, - size_t count) + struct bin_attribute *attr, + char *buf, loff_t off, + size_t count) { struct iio_dev *indio_dev = dev_to_iio_dev(kobj_to_dev(kobj)); @@ -203,9 +200,9 @@ static struct bin_attribute adc1_bin = { }; static ssize_t adis16220_adc2_bin_read(struct file *filp, struct kobject *kobj, - struct bin_attribute *attr, - char *buf, loff_t off, - size_t count) + struct bin_attribute *attr, + char *buf, loff_t off, + size_t count) { struct iio_dev *indio_dev = dev_to_iio_dev(kobj_to_dev(kobj)); @@ -214,7 +211,6 @@ static ssize_t adis16220_adc2_bin_read(struct file *filp, struct kobject *kobj, ADIS16220_CAPT_BUF2); } - static struct bin_attribute adc2_bin = { .attr = { .name = "in1_bin", |