All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Campello <campello@chromium.org>
To: LKML <devicetree@vger.kernel.org>, LKML <linux-kernel@vger.kernel.org>
Cc: Jonathan Cameron <jic23@kernel.org>,
	Daniel Campello <campello@chromium.org>,
	Andy Shevchenko <andy.shevchenko@gmail.com>,
	Stephen Boyd <swboyd@chromium.org>,
	Douglas Anderson <dianders@chromium.org>,
	Gwendal Grignou <gwendal@chromium.org>,
	Hartmut Knaack <knaack.h@gmx.de>,
	Lars-Peter Clausen <lars@metafoo.de>,
	Peter Meerwald-Stadler <pmeerw@pmeerw.net>,
	linux-iio@vger.kernel.org
Subject: [PATCH v5 08/15] iio: sx9310: Use regmap_read_poll_timeout() for compensation
Date: Mon,  3 Aug 2020 17:58:08 -0600	[thread overview]
Message-ID: <20200803175559.v5.8.Ia205f0b0363bf663db7704026b5b7036b9748c56@changeid> (raw)
In-Reply-To: <20200803235815.778997-1-campello@chromium.org>

Simplify compensation stage by using regmap_read_poll_timeout().

Signed-off-by: Daniel Campello <campello@chromium.org>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
---

Changes in v5: None
Changes in v4: None
Changes in v3: None
Changes in v2:
 - Fixed dev_err() message

 drivers/iio/proximity/sx9310.c | 25 ++++++++++---------------
 1 file changed, 10 insertions(+), 15 deletions(-)

diff --git a/drivers/iio/proximity/sx9310.c b/drivers/iio/proximity/sx9310.c
index f78500b8a5841e..cd7de40a55c2f6 100644
--- a/drivers/iio/proximity/sx9310.c
+++ b/drivers/iio/proximity/sx9310.c
@@ -799,7 +799,7 @@ static const struct sx9310_reg_default sx9310_default_regs[] = {
 static int sx9310_init_compensation(struct iio_dev *indio_dev)
 {
 	struct sx9310_data *data = iio_priv(indio_dev);
-	int i, ret;
+	int ret;
 	unsigned int val;
 	unsigned int ctrl0;
 
@@ -813,22 +813,17 @@ static int sx9310_init_compensation(struct iio_dev *indio_dev)
 	if (ret < 0)
 		return ret;
 
-	for (i = 100; i >= 0; i--) {
-		msleep(20);
-		ret = regmap_read(data->regmap, SX9310_REG_STAT1, &val);
-		if (ret < 0)
-			goto out;
-		if (!(val & SX9310_REG_STAT1_COMPSTAT_MASK))
-			break;
-	}
-
-	if (i < 0) {
-		dev_err(&data->client->dev,
-			"initial compensation timed out: 0x%02x", val);
-		ret = -ETIMEDOUT;
+	ret = regmap_read_poll_timeout(data->regmap, SX9310_REG_STAT1, val,
+				       !(val & SX9310_REG_STAT1_COMPSTAT_MASK),
+				       20000, 2000000);
+	if (ret) {
+		if (ret == -ETIMEDOUT)
+			dev_err(&data->client->dev,
+				"initial compensation timed out: 0x%02x\n",
+				val);
+		return ret;
 	}
 
-out:
 	regmap_write(data->regmap, SX9310_REG_PROX_CTRL0, ctrl0);
 	return ret;
 }
-- 
2.28.0.163.g6104cc2f0b6-goog


  parent reply	other threads:[~2020-08-03 23:58 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-03 23:58 [PATCH v5 00/15] sx9310 iio driver updates Daniel Campello
2020-08-03 23:58 ` [PATCH v5 01/15] dt-bindings: iio: Add bindings for sx9310 sensor Daniel Campello
2020-08-06 18:14   ` Jonathan Cameron
2020-08-03 23:58 ` [PATCH v5 02/15] iio: sx9310: Update macros declarations Daniel Campello
2020-08-06 18:15   ` Jonathan Cameron
2020-08-03 23:58 ` [PATCH v5 03/15] iio: sx9310: Fix irq handling Daniel Campello
2020-08-04  7:26   ` Andy Shevchenko
2020-08-03 23:58 ` [PATCH v5 04/15] iio: sx9310: Remove acpi and of table macros Daniel Campello
2020-08-06 18:28   ` Jonathan Cameron
2020-08-03 23:58 ` [PATCH v5 05/15] iio: sx9310: Change from .probe to .probe_new Daniel Campello
2020-08-06 18:29   ` Jonathan Cameron
2020-08-03 23:58 ` [PATCH v5 06/15] iio: sx9310: Fixes various memory handling Daniel Campello
2020-08-06 18:29   ` Jonathan Cameron
2020-08-03 23:58 ` [PATCH v5 07/15] iio: sx9310: Use long instead of int for channel bitmaps Daniel Campello
2020-08-06 18:30   ` Jonathan Cameron
2020-08-16  9:36     ` Jonathan Cameron
2020-08-03 23:58 ` Daniel Campello [this message]
2020-08-03 23:58 ` [PATCH v5 09/15] iio: sx9310: Update copyright Daniel Campello
2020-08-18  1:45   ` Daniel Campello
2020-08-22 10:34     ` Jonathan Cameron
2020-08-03 23:58 ` [PATCH v5 10/15] iio: sx9310: Simplify error return handling Daniel Campello
2020-08-03 23:58 ` [PATCH v5 11/15] iio: sx9310: Use variable to hold &client->dev Daniel Campello
2020-08-06 18:38   ` Jonathan Cameron
2020-08-03 23:58 ` [PATCH v5 12/15] iio: sx9310: Miscellaneous format fixes Daniel Campello
2020-08-03 23:58 ` [PATCH v5 13/15] iio: sx9310: Drop channel_users[] Daniel Campello
2020-08-03 23:58 ` [PATCH v5 14/15] iio: sx9310: Enable vdd and svdd regulators at probe Daniel Campello
2020-08-03 23:58 ` [PATCH v5 15/15] iio: sx9310: Use irq trigger flags from firmware Daniel Campello
2020-08-06 18:42   ` 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=20200803175559.v5.8.Ia205f0b0363bf663db7704026b5b7036b9748c56@changeid \
    --to=campello@chromium.org \
    --cc=andy.shevchenko@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dianders@chromium.org \
    --cc=gwendal@chromium.org \
    --cc=jic23@kernel.org \
    --cc=knaack.h@gmx.de \
    --cc=lars@metafoo.de \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pmeerw@pmeerw.net \
    --cc=swboyd@chromium.org \
    /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.