All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jean-Baptiste Maneyrol <JManeyrol@invensense.com>
To: Linus Walleij <linus.walleij@linaro.org>,
	Jonathan Cameron <jic23@kernel.org>,
	"linux-iio@vger.kernel.org" <linux-iio@vger.kernel.org>
Cc: Hartmut Knaack <knaack.h@gmx.de>,
	Lars-Peter Clausen <lars@metafoo.de>,
	Peter Meerwald-Stadler <pmeerw@pmeerw.net>
Subject: Re: [PATCH v2] iio: imu: inv_mpu6050: Use as standalone trigger
Date: Thu, 25 Mar 2021 17:08:19 +0000	[thread overview]
Message-ID: <BL0PR12MB501168E715C96BBDF34D1ACCC4629@BL0PR12MB5011.namprd12.prod.outlook.com> (raw)
In-Reply-To: <20210322132408.1003443-1-linus.walleij@linaro.org>

Hello,

looks good for me, thanks for the patch. Here is my ack.

Acked-by: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>

We're lucky this is working without any sensor running, it was not obvious.
On which chip have you tested that?

Thanks,
JB


From: Linus Walleij <linus.walleij@linaro.org>
Sent: Monday, March 22, 2021 14:24
To: Jonathan Cameron <jic23@kernel.org>; linux-iio@vger.kernel.org <linux-iio@vger.kernel.org>
Cc: Hartmut Knaack <knaack.h@gmx.de>; Lars-Peter Clausen <lars@metafoo.de>; Peter Meerwald-Stadler <pmeerw@pmeerw.net>; Linus Walleij <linus.walleij@linaro.org>; Jean-Baptiste Maneyrol <JManeyrol@invensense.com>
Subject: [PATCH v2] iio: imu: inv_mpu6050: Use as standalone trigger 
 
 CAUTION: This email originated from outside of the organization. Please make sure the sender is who they say they are and do not click links or open attachments unless you recognize the sender and know the content is safe.

It may happen that the MPU6050 is the only hardware
trigger available on your system such as this:

> lsiio
Device 003: hscdtd008a
Device 001: mpu6050
Device 002: gp2ap002
Device 000: ab8500-gpadc
Trigger 000: mpu6050-dev1

And when you want to use it to read periodically from
your magnetometer like this:

> iio_generic_buffer -a -c 100 -n hscdtd008a -t mpu6050-dev1

Then the following happens:

[  209.951334] Internal error: Oops: 5 [#1] SMP ARM
(...)
[  209.981969] Hardware name: ST-Ericsson Ux5x0 platform (Device Tree Support)
[  209.988925] PC is at inv_scan_query_mpu6050+0x8/0xb8
[  209.993914] LR is at inv_mpu6050_set_enable+0x40/0x194

This is because since we are not using any channels from the
same device, the indio_dev->active_scan_mask is NULL.

Just checking for that and bailing out is however not enough:
we have to enable some kind of FIFO for the readout to work.
So enable the temperature as a dummy FIFO and all works
fine.

Fixes: 09a642b78523 ("Invensense MPU6050 Device Driver.")
Cc: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
ChangeLog v1->v2:
- Add Fixes: tag, this is the initial commit but I do not
  think backporting makes sense, this is a non-regression
  non-critical fix.
- Fix a nit found by Andy (return mask value directly).
---
 drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c
index f7b5a70be30f..de8ed1446d60 100644
--- a/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c
+++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c
@@ -11,6 +11,16 @@ static unsigned int inv_scan_query_mpu6050(struct iio_dev *indio_dev)
         struct inv_mpu6050_state  *st = iio_priv(indio_dev);
         unsigned int mask;
 
+       /*
+        * If the MPU6050 is just used as a trigger, then the scan mask
+        * is not allocated so we simply enable the temperature channel
+        * as a dummy and bail out.
+        */
+       if (!indio_dev->active_scan_mask) {
+               st->chip_config.temp_fifo_enable = true;
+               return INV_MPU6050_SENSOR_TEMP;
+       }
+
         st->chip_config.gyro_fifo_enable =
                 test_bit(INV_MPU6050_SCAN_GYRO_X,
                          indio_dev->active_scan_mask) ||
-- 
2.29.2

  reply	other threads:[~2021-03-25 17:18 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-22 13:24 [PATCH v2] iio: imu: inv_mpu6050: Use as standalone trigger Linus Walleij
2021-03-25 17:08 ` Jean-Baptiste Maneyrol [this message]
2021-03-25 19:36   ` Linus Walleij
2021-03-29 10:20     ` 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=BL0PR12MB501168E715C96BBDF34D1ACCC4629@BL0PR12MB5011.namprd12.prod.outlook.com \
    --to=jmaneyrol@invensense.com \
    --cc=jic23@kernel.org \
    --cc=knaack.h@gmx.de \
    --cc=lars@metafoo.de \
    --cc=linus.walleij@linaro.org \
    --cc=linux-iio@vger.kernel.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.