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>,
	Douglas Anderson <dianders@chromium.org>,
	Hartmut Knaack <knaack.h@gmx.de>,
	Lars-Peter Clausen <lars@metafoo.de>,
	Peter Meerwald-Stadler <pmeerw@pmeerw.net>,
	Stephen Boyd <swboyd@chromium.org>,
	linux-iio@vger.kernel.org
Subject: [PATCH v3 06/15] iio: sx9310: Fixes various memory handling
Date: Fri, 31 Jul 2020 10:48:43 -0600	[thread overview]
Message-ID: <20200731104555.v3.6.I8accffd77d616cb55b29bc3021cb0f5e1da3b68a@changeid> (raw)
In-Reply-To: <20200731164853.3020946-1-campello@chromium.org>

Makes use __aligned(8) to ensure that the timestamp is correctly aligned
when we call io_push_to_buffers_with_timestamp().
Also makes use of sizeof() for regmap_bulk_read instead of static value.

Signed-off-by: Daniel Campello <campello@chromium.org>
---

Changes in v3:
 - Changed buffer to struct type to align timestamp memory properly.

Changes in v2:
 - Fixed commit message from "iio: sx9310: Align memory"

 drivers/iio/proximity/sx9310.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/iio/proximity/sx9310.c b/drivers/iio/proximity/sx9310.c
index 2ed062d01634bc..c46584b4817b4a 100644
--- a/drivers/iio/proximity/sx9310.c
+++ b/drivers/iio/proximity/sx9310.c
@@ -132,8 +132,11 @@ struct sx9310_data {
 	 */
 	bool prox_stat[SX9310_NUM_CHANNELS];
 	bool trigger_enabled;
-	__be16 buffer[SX9310_NUM_CHANNELS +
-		      4]; /* 64-bit data + 64-bit timestamp */
+	/* Ensure correct alignment of timestamp when present. */
+	struct {
+		__be16 channels[SX9310_NUM_CHANNELS];
+		s64 ts __aligned(8);
+	} buffer;
 	/* Remember enabled channels and sample rate during suspend. */
 	unsigned int suspend_ctrl0;
 	struct completion completion;
@@ -346,7 +349,7 @@ static int sx9310_read_prox_data(struct sx9310_data *data,
 	if (ret < 0)
 		return ret;
 
-	return regmap_bulk_read(data->regmap, chan->address, val, 2);
+	return regmap_bulk_read(data->regmap, chan->address, val, sizeof(*val));
 }
 
 /*
@@ -697,10 +700,10 @@ static irqreturn_t sx9310_trigger_handler(int irq, void *private)
 		if (ret < 0)
 			goto out;
 
-		data->buffer[i++] = val;
+		data->buffer.channels[i++] = val;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, data->buffer.channels,
 					   pf->timestamp);
 
 out:
-- 
2.28.0.163.g6104cc2f0b6-goog


  parent reply	other threads:[~2020-07-31 16:49 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-31 16:48 [PATCH v3 00/15] sx9310 iio driver updates Daniel Campello
2020-07-31 16:48 ` [PATCH v3 01/15] dt-bindings: iio: Add bindings for sx9310 sensor Daniel Campello
2020-07-31 22:47   ` Rob Herring
2020-08-01 15:06   ` Jonathan Cameron
2020-08-03 19:00     ` Stephen Boyd
2020-08-04  2:01       ` Rob Herring
2020-08-06 18:14         ` Jonathan Cameron
2020-08-06 22:12           ` Rob Herring
2020-08-06 23:03             ` Stephen Boyd
2020-07-31 16:48 ` [PATCH v3 02/15] iio: sx9310: Update macros declarations Daniel Campello
2020-08-01 14:47   ` Jonathan Cameron
2020-07-31 16:48 ` [PATCH v3 03/15] iio: sx9310: Fix irq handling Daniel Campello
2020-07-31 18:03   ` Stephen Boyd
2020-07-31 18:35   ` Andy Shevchenko
2020-07-31 16:48 ` [PATCH v3 04/15] iio: sx9310: Remove acpi and of table macros Daniel Campello
2020-07-31 16:48 ` [PATCH v3 05/15] iio: sx9310: Change from .probe to .probe_new Daniel Campello
2020-07-31 16:48 ` Daniel Campello [this message]
2020-07-31 19:24   ` [PATCH v3 06/15] iio: sx9310: Fixes various memory handling Andy Shevchenko
2020-08-01 14:52     ` Jonathan Cameron
2020-07-31 16:48 ` [PATCH v3 07/15] iio: sx9310: Use long instead of int for channel bitmaps Daniel Campello
2020-07-31 18:38   ` Stephen Boyd
2020-07-31 16:48 ` [PATCH v3 08/15] iio: sx9310: Use regmap_read_poll_timeout() for compensation Daniel Campello
2020-07-31 18:39   ` Stephen Boyd
2020-07-31 16:48 ` [PATCH v3 09/15] iio: sx9310: Update copyright Daniel Campello
2020-07-31 16:48 ` [PATCH v3 10/15] iio: sx9310: Simplify error return handling Daniel Campello
2020-07-31 16:48 ` [PATCH v3 11/15] iio: sx9310: Use variable to hold &client->dev Daniel Campello
2020-07-31 16:48 ` [PATCH v3 12/15] iio: sx9310: Miscellaneous format fixes Daniel Campello
2020-07-31 16:48 ` [PATCH v3 13/15] iio: sx9310: Drop channel_users[] Daniel Campello
2020-07-31 16:48 ` [PATCH v3 14/15] iio: sx9310: Enable vdd and svdd regulators at probe Daniel Campello
2020-07-31 16:48 ` [PATCH v3 15/15] iio: sx9310: Use irq trigger flags from firmware Daniel Campello
2020-07-31 19:46   ` Andy Shevchenko
2020-08-01 15:01     ` 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=20200731104555.v3.6.I8accffd77d616cb55b29bc3021cb0f5e1da3b68a@changeid \
    --to=campello@chromium.org \
    --cc=andy.shevchenko@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dianders@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.