diff options
-rw-r--r-- | drivers/iio/addac/stx104.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/drivers/iio/addac/stx104.c b/drivers/iio/addac/stx104.c index 0ed5f71b18cb..81020b710195 100644 --- a/drivers/iio/addac/stx104.c +++ b/drivers/iio/addac/stx104.c @@ -181,19 +181,19 @@ static int stx104_write_raw(struct iio_dev *indio_dev, return 0; case IIO_CHAN_INFO_RAW: - if (chan->output) { - if (val < 0 || val > U16_MAX) - return -EINVAL; + if (!chan->output) + return -EINVAL; - mutex_lock(&priv->lock); + if (val < 0 || val > U16_MAX) + return -EINVAL; - priv->chan_out_states[chan->channel] = val; - iowrite16(val, &priv->reg->dac[chan->channel]); + mutex_lock(&priv->lock); - mutex_unlock(&priv->lock); - return 0; - } - return -EINVAL; + priv->chan_out_states[chan->channel] = val; + iowrite16(val, &priv->reg->dac[chan->channel]); + + mutex_unlock(&priv->lock); + return 0; } return -EINVAL; |