From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.kernel.org ([198.145.19.201]:46509 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750946AbaGGH6J (ORCPT ); Mon, 7 Jul 2014 03:58:09 -0400 Message-ID: <53BA5394.7080208@kernel.org> Date: Mon, 07 Jul 2014 09:00:20 +0100 From: Jonathan Cameron MIME-Version: 1.0 To: Peter Meerwald , linux-iio@vger.kernel.org Subject: Re: [PATCH 1/3] iio:tcs3472: Check for buffer enabled and locking References: <1404563914-27516-1-git-send-email-pmeerw@pmeerw.net> <1404563914-27516-2-git-send-email-pmeerw@pmeerw.net> In-Reply-To: <1404563914-27516-2-git-send-email-pmeerw@pmeerw.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Sender: linux-iio-owner@vger.kernel.org List-Id: linux-iio@vger.kernel.org On 05/07/14 13:38, Peter Meerwald wrote: > From: Peter Meerwald > > Signed-off-by: Peter Meerwald Applied to the fixes-togreg branch of iio.git Thanks Peter, > --- > drivers/iio/light/tcs3472.c | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/drivers/iio/light/tcs3472.c b/drivers/iio/light/tcs3472.c > index fe063a0..7525699 100644 > --- a/drivers/iio/light/tcs3472.c > +++ b/drivers/iio/light/tcs3472.c > @@ -52,6 +52,7 @@ > > struct tcs3472_data { > struct i2c_client *client; > + struct mutex lock; > u8 enable; > u8 control; > u8 atime; > @@ -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; > @@ -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; >