From: Jonathan Cameron <jic23@kernel.org>
To: Martin Kelly <martin@martingkelly.com>
Cc: linux-iio@vger.kernel.org, Daniel Baluta <daniel.baluta@intel.com>
Subject: Re: [PATCH 1/2] iio: bmi160: snap timestamp closer to event
Date: Sat, 1 Dec 2018 14:58:18 +0000 [thread overview]
Message-ID: <20181201145818.1653ef17@archlinux> (raw)
In-Reply-To: <c6376fbc-2678-5def-c167-75fec52f15d2@martingkelly.com>
On Mon, 26 Nov 2018 15:43:37 -0800
Martin Kelly <martin@martingkelly.com> wrote:
> On 11/25/18 5:59 AM, Jonathan Cameron wrote:
> > On Sun, 18 Nov 2018 16:53:46 -0800
> > Martin Kelly <martin@martingkelly.com> wrote:
> >
> >> From: Martin Kelly <martin@martingkelly.com>
> >>
> >> Currently, we snap the timestamp after reading from the buffer and
> >> processing the event. Technically, we can get a slightly more accurate
> >> timestamp by snapping it prior to reading the data, since the data was
> >> already generated prior to entering the trigger handler. This is not going
> >> to make a huge difference, but we might as well improve slightly.
> >>
> >> Signed-off-by: Martin Kelly <martin@martingkelly.com>
> > Now this is always an interesting one. We are running that handler
> > off the back of a trigger that isn't a dataready signal. As such
> > the start of the function doesn't necessarily correspond to the
> > time that is closest to when the data is captured, it corresponds
> > to the time that is closest to when we asked for it (which is
> > not the most relevant number when processing the data)
> >
> > Now, here we are talking on either side of the actual hardware
> > reads, so my suspicion is that it'll be just as inaccurate, but
> > in the other direction.
> >
> > Also note that the compiler is probably within it's rights to
> > reorder that entirely if it can tell there are no side effects
> > (which it probably can't here... so this change will actually
> > do what you intend.)
> >
> > So upshot is I'm currently unconvinced either way on whether this
> > is a useful change or not!
> >
> > Jonathan
> >
>
> Yes, you are right that in the current driver, it's rather fuzzy when
> the "correct" timestamp to snap is. Separately, I'm working on adding
> interrupt support to this driver, so perhaps I should queue this up
> after that change. With interrupts (based on a data ready signal), I
> believe this change will be correct.
Agreed. That is the time to make this change as then it'll be obvious
why.
Thanks,
Jonathan
>
> >
> >> ---
> >> drivers/iio/imu/bmi160/bmi160_core.c | 4 ++--
> >> 1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/iio/imu/bmi160/bmi160_core.c b/drivers/iio/imu/bmi160/bmi160_core.c
> >> index c85659ca9507..4d9d59d9e3a9 100644
> >> --- a/drivers/iio/imu/bmi160/bmi160_core.c
> >> +++ b/drivers/iio/imu/bmi160/bmi160_core.c
> >> @@ -384,6 +384,7 @@ static irqreturn_t bmi160_trigger_handler(int irq, void *p)
> >> {
> >> struct iio_poll_func *pf = p;
> >> struct iio_dev *indio_dev = pf->indio_dev;
> >> + s64 ts = iio_get_time_ns(indio_dev);
> >> struct bmi160_data *data = iio_priv(indio_dev);
> >> __le16 buf[16];
> >> /* 3 sens x 3 axis x __le16 + 3 x __le16 pad + 4 x __le16 tstamp */
> >> @@ -399,8 +400,7 @@ static irqreturn_t bmi160_trigger_handler(int irq, void *p)
> >> buf[j++] = sample;
> >> }
> >>
> >> - iio_push_to_buffers_with_timestamp(indio_dev, buf,
> >> - iio_get_time_ns(indio_dev));
> >> + iio_push_to_buffers_with_timestamp(indio_dev, buf, ts);
> >> done:
> >> iio_trigger_notify_done(indio_dev->trig);
> >> return IRQ_HANDLED;
> >
>
prev parent reply other threads:[~2018-12-02 2:11 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-19 0:53 [PATCH 1/2] iio: bmi160: snap timestamp closer to event Martin Kelly
2018-11-19 0:53 ` [PATCH 2/2] iio: bmi160: use all devm functions in probe Martin Kelly
2018-11-19 8:48 ` Daniel Baluta
2018-11-25 13:51 ` Jonathan Cameron
2018-11-26 23:45 ` Martin Kelly
2018-11-19 8:45 ` [PATCH 1/2] iio: bmi160: snap timestamp closer to event Daniel Baluta
2018-11-20 3:45 ` Martin Kelly
2018-11-20 3:45 ` Martin Kelly
2018-11-25 13:59 ` Jonathan Cameron
2018-11-26 23:43 ` Martin Kelly
2018-12-01 14:58 ` Jonathan Cameron [this message]
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=20181201145818.1653ef17@archlinux \
--to=jic23@kernel.org \
--cc=daniel.baluta@intel.com \
--cc=linux-iio@vger.kernel.org \
--cc=martin@martingkelly.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox