Loading drivers/iio/light/tcs3472.c +10 −1 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ struct tcs3472_data { struct i2c_client *client; struct mutex lock; u8 enable; u8 control; u8 atime; Loading Loading @@ -116,10 +117,17 @@ static int tcs3472_read_raw(struct iio_dev *indio_dev, switch (mask) { case IIO_CHAN_INFO_RAW: if (iio_buffer_enabled(indio_dev)) return -EBUSY; mutex_lock(&data->lock); ret = tcs3472_req_data(data); if (ret < 0) if (ret < 0) { mutex_unlock(&data->lock); return ret; } ret = i2c_smbus_read_word_data(data->client, chan->address); mutex_unlock(&data->lock); if (ret < 0) return ret; *val = ret; Loading Loading @@ -255,6 +263,7 @@ static int tcs3472_probe(struct i2c_client *client, data = iio_priv(indio_dev); i2c_set_clientdata(client, indio_dev); data->client = client; mutex_init(&data->lock); indio_dev->dev.parent = &client->dev; indio_dev->info = &tcs3472_info; Loading Loading
drivers/iio/light/tcs3472.c +10 −1 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ struct tcs3472_data { struct i2c_client *client; struct mutex lock; u8 enable; u8 control; u8 atime; Loading Loading @@ -116,10 +117,17 @@ static int tcs3472_read_raw(struct iio_dev *indio_dev, switch (mask) { case IIO_CHAN_INFO_RAW: if (iio_buffer_enabled(indio_dev)) return -EBUSY; mutex_lock(&data->lock); ret = tcs3472_req_data(data); if (ret < 0) if (ret < 0) { mutex_unlock(&data->lock); return ret; } ret = i2c_smbus_read_word_data(data->client, chan->address); mutex_unlock(&data->lock); if (ret < 0) return ret; *val = ret; Loading Loading @@ -255,6 +263,7 @@ static int tcs3472_probe(struct i2c_client *client, data = iio_priv(indio_dev); i2c_set_clientdata(client, indio_dev); data->client = client; mutex_init(&data->lock); indio_dev->dev.parent = &client->dev; indio_dev->info = &tcs3472_info; Loading