From: Jonathan Cameron <jic23@kernel.org>
To: Brian Masney <masneyb@onstation.org>
Cc: linux-iio@vger.kernel.org, gregkh@linuxfoundation.org,
devel@driverdev.osuosl.org, knaack.h@gmx.de, lars@metafoo.de,
pmeerw@pmeerw.net, linux-kernel@vger.kernel.org,
Jon.Brenner@ams.com
Subject: Re: [PATCH v2 4/9] staging: iio: tsl2x7x: remove tsl2x7x_i2c_read()
Date: Sun, 9 Jul 2017 18:28:12 +0100 [thread overview]
Message-ID: <20170709182812.6f8a2d1b@kernel.org> (raw)
In-Reply-To: <20170706225626.6716-5-masneyb@onstation.org>
On Thu, 6 Jul 2017 18:56:21 -0400
Brian Masney <masneyb@onstation.org> wrote:
> tsl2x7x_i2c_read() would call i2c_smbus_write_byte() and
> i2c_smbus_read_byte(). These two i2c functions can be replaced with a
> single call to i2c_smbus_read_byte_data(). This patch removes the
> tsl2x7x_i2c_read() function and replaces all occurrences with a call to
> i2c_smbus_read_byte_data().
>
> Signed-off-by: Brian Masney <masneyb@onstation.org>
Applied.
> ---
> drivers/staging/iio/light/tsl2x7x.c | 71 ++++++++++++-------------------------
> 1 file changed, 22 insertions(+), 49 deletions(-)
>
> diff --git a/drivers/staging/iio/light/tsl2x7x.c b/drivers/staging/iio/light/tsl2x7x.c
> index 95ed7cc6..6c9f06b 100644
> --- a/drivers/staging/iio/light/tsl2x7x.c
> +++ b/drivers/staging/iio/light/tsl2x7x.c
> @@ -285,35 +285,6 @@ static const u8 device_channel_config[] = {
> };
>
> /**
> - * tsl2x7x_i2c_read() - Read a byte from a register.
> - * @client: i2c client
> - * @reg: device register to read from
> - * @*val: pointer to location to store register contents.
> - *
> - */
> -static int
> -tsl2x7x_i2c_read(struct i2c_client *client, u8 reg, u8 *val)
> -{
> - int ret;
> -
> - /* select register to write */
> - ret = i2c_smbus_write_byte(client, (TSL2X7X_CMD_REG | reg));
> - if (ret < 0) {
> - dev_err(&client->dev, "failed to write register %x\n", reg);
> - return ret;
> - }
> -
> - /* read the data */
> - ret = i2c_smbus_read_byte(client);
> - if (ret >= 0)
> - *val = (u8)ret;
> - else
> - dev_err(&client->dev, "failed to read register %x\n", reg);
> -
> - return ret;
> -}
> -
> -/**
> * tsl2x7x_get_lux() - Reads and calculates current lux value.
> * @indio_dev: pointer to IIO device
> *
> @@ -352,15 +323,15 @@ static int tsl2x7x_get_lux(struct iio_dev *indio_dev)
> goto out_unlock;
> }
>
> - ret = tsl2x7x_i2c_read(chip->client,
> - (TSL2X7X_CMD_REG | TSL2X7X_STATUS), &buf[0]);
> + ret = i2c_smbus_read_byte_data(chip->client,
> + TSL2X7X_CMD_REG | TSL2X7X_STATUS);
> if (ret < 0) {
> dev_err(&chip->client->dev,
> "%s: Failed to read STATUS Reg\n", __func__);
> goto out_unlock;
> }
> /* is data new & valid */
> - if (!(buf[0] & TSL2X7X_STA_ADC_VALID)) {
> + if (!(ret & TSL2X7X_STA_ADC_VALID)) {
> dev_err(&chip->client->dev,
> "%s: data not valid yet\n", __func__);
> ret = chip->als_cur_info.lux; /* return LAST VALUE */
> @@ -368,14 +339,16 @@ static int tsl2x7x_get_lux(struct iio_dev *indio_dev)
> }
>
> for (i = 0; i < 4; i++) {
> - ret = tsl2x7x_i2c_read(chip->client,
> - (TSL2X7X_CMD_REG |
> - (TSL2X7X_ALS_CHAN0LO + i)), &buf[i]);
> + int reg = TSL2X7X_CMD_REG | (TSL2X7X_ALS_CHAN0LO + i);
> +
> + ret = i2c_smbus_read_byte_data(chip->client, reg);
> if (ret < 0) {
> dev_err(&chip->client->dev,
> "failed to read. err=%x\n", ret);
> goto out_unlock;
> }
> +
> + buf[i] = ret;
> }
>
> /* clear any existing interrupt status */
> @@ -475,7 +448,6 @@ static int tsl2x7x_get_prox(struct iio_dev *indio_dev)
> {
> int i;
> int ret;
> - u8 status;
> u8 chdata[2];
> struct tsl2X7X_chip *chip = iio_priv(indio_dev);
>
> @@ -485,8 +457,8 @@ static int tsl2x7x_get_prox(struct iio_dev *indio_dev)
> return -EBUSY;
> }
>
> - ret = tsl2x7x_i2c_read(chip->client,
> - (TSL2X7X_CMD_REG | TSL2X7X_STATUS), &status);
> + ret = i2c_smbus_read_byte_data(chip->client,
> + TSL2X7X_CMD_REG | TSL2X7X_STATUS);
> if (ret < 0) {
> dev_err(&chip->client->dev, "i2c err=%d\n", ret);
> goto prox_poll_err;
> @@ -498,7 +470,7 @@ static int tsl2x7x_get_prox(struct iio_dev *indio_dev)
> case tmd2671:
> case tsl2771:
> case tmd2771:
> - if (!(status & TSL2X7X_STA_ADC_VALID))
> + if (!(ret & TSL2X7X_STA_ADC_VALID))
> goto prox_poll_err;
> break;
> case tsl2572:
> @@ -506,17 +478,19 @@ static int tsl2x7x_get_prox(struct iio_dev *indio_dev)
> case tmd2672:
> case tsl2772:
> case tmd2772:
> - if (!(status & TSL2X7X_STA_PRX_VALID))
> + if (!(ret & TSL2X7X_STA_PRX_VALID))
> goto prox_poll_err;
> break;
> }
>
> for (i = 0; i < 2; i++) {
> - ret = tsl2x7x_i2c_read(chip->client,
> - (TSL2X7X_CMD_REG |
> - (TSL2X7X_PRX_LO + i)), &chdata[i]);
> + int reg = TSL2X7X_CMD_REG | (TSL2X7X_PRX_LO + i);
> +
> + ret = i2c_smbus_read_byte_data(chip->client, reg);
> if (ret < 0)
> goto prox_poll_err;
> +
> + chdata[i] = ret;
> }
>
> chip->prox_data =
> @@ -1486,7 +1460,7 @@ static DEVICE_ATTR_RW(in_intensity0_thresh_period);
> static DEVICE_ATTR_RW(in_proximity0_thresh_period);
>
> /* Use the default register values to identify the Taos device */
> -static int tsl2x7x_device_id(unsigned char *id, int target)
> +static int tsl2x7x_device_id(int *id, int target)
> {
> switch (target) {
> case tsl2571:
> @@ -1843,7 +1817,6 @@ static int tsl2x7x_probe(struct i2c_client *clientp,
> const struct i2c_device_id *id)
> {
> int ret;
> - unsigned char device_id;
> struct iio_dev *indio_dev;
> struct tsl2X7X_chip *chip;
>
> @@ -1855,13 +1828,13 @@ static int tsl2x7x_probe(struct i2c_client *clientp,
> chip->client = clientp;
> i2c_set_clientdata(clientp, indio_dev);
>
> - ret = tsl2x7x_i2c_read(chip->client,
> - TSL2X7X_CHIPID, &device_id);
> + ret = i2c_smbus_read_byte_data(chip->client,
> + TSL2X7X_CMD_REG | TSL2X7X_CHIPID);
> if (ret < 0)
> return ret;
>
> - if ((!tsl2x7x_device_id(&device_id, id->driver_data)) ||
> - (tsl2x7x_device_id(&device_id, id->driver_data) == -EINVAL)) {
> + if ((!tsl2x7x_device_id(&ret, id->driver_data)) ||
> + (tsl2x7x_device_id(&ret, id->driver_data) == -EINVAL)) {
> dev_info(&chip->client->dev,
> "%s: i2c device found does not match expected id\n",
> __func__);
next prev parent reply other threads:[~2017-07-09 17:28 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-06 22:56 [PATCH v2 0/9] staging: iio: tsl2x7x: staging cleanups Brian Masney
2017-07-06 22:56 ` [PATCH v2 1/9] staging: iio: tsl2x7x: add of_match table for device tree support Brian Masney
2017-07-06 22:56 ` Brian Masney
2017-07-09 17:19 ` Jonathan Cameron
2017-07-09 17:19 ` Jonathan Cameron
2017-07-06 22:56 ` [PATCH v2 2/9] staging: iio: tsl2x7x: add device tree documentation Brian Masney
2017-07-06 22:56 ` Brian Masney
2017-07-09 17:20 ` Jonathan Cameron
2017-07-09 17:20 ` Jonathan Cameron
2017-07-10 14:15 ` Rob Herring
2017-07-10 14:15 ` Rob Herring
2017-07-06 22:56 ` [PATCH v2 3/9] staging: iio: tsl2x7x: remove redundant power_state sysfs attribute Brian Masney
2017-07-09 17:26 ` Jonathan Cameron
2017-07-06 22:56 ` [PATCH v2 4/9] staging: iio: tsl2x7x: remove tsl2x7x_i2c_read() Brian Masney
2017-07-09 17:28 ` Jonathan Cameron [this message]
2017-07-06 22:56 ` [PATCH v2 5/9] staging: iio: tsl2x7x: cleaned up i2c calls in tsl2x7x_als_calibrate() Brian Masney
2017-07-09 17:28 ` Jonathan Cameron
2017-07-06 22:56 ` [PATCH v2 6/9] staging: iio: tsl2x7x: refactor {read,write}_event_value to allow handling multiple iio_event_infos Brian Masney
2017-07-09 17:29 ` Jonathan Cameron
2017-07-06 22:56 ` [PATCH v2 7/9] staging: iio: tsl2x7x: use usleep_range() instead of mdelay() Brian Masney
2017-07-09 17:31 ` Jonathan Cameron
2017-07-06 22:56 ` [PATCH v2 8/9] staging: iio: tsl2x7x: migrate in_illuminance0_integration_time sysfs attribute to iio_chan_spec Brian Masney
2017-07-09 17:43 ` Jonathan Cameron
2017-07-06 22:56 ` [PATCH v2 9/9] staging: iio: tsl2x7x: check return value from tsl2x7x_invoke_change() Brian Masney
2017-07-09 17:47 ` Jonathan Cameron
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170709182812.6f8a2d1b@kernel.org \
--to=jic23@kernel.org \
--cc=Jon.Brenner@ams.com \
--cc=devel@driverdev.osuosl.org \
--cc=gregkh@linuxfoundation.org \
--cc=knaack.h@gmx.de \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=masneyb@onstation.org \
--cc=pmeerw@pmeerw.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.