devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: David Lechner <dlechner@baylibre.com>
Cc: linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
	linux-staging@lists.linux.dev,
	"David Lechner" <david@lechnology.com>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"Michael Hennerich" <Michael.Hennerich@analog.com>,
	"Nuno Sá" <nuno.sa@analog.com>,
	"Axel Haslam" <ahaslam@baylibre.com>,
	"Philip Molloy" <pmolloy@baylibre.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 26/27] staging: iio: resolver: ad2s1210: implement fault events
Date: Thu, 5 Oct 2023 15:52:11 +0100	[thread overview]
Message-ID: <20231005155211.102a4292@jic23-huawei> (raw)
In-Reply-To: <CAMknhBH4+cUSX_j3-Y0xuTEiZHd3Ke4Zm8FdxLZJwn5gr_d-ug@mail.gmail.com>

On Mon, 2 Oct 2023 11:58:17 -0500
David Lechner <dlechner@baylibre.com> wrote:

> On Sat, Sep 30, 2023 at 11:00 AM Jonathan Cameron <jic23@kernel.org> wrote:
> >
> > On Fri, 29 Sep 2023 12:23:31 -0500
> > David Lechner <dlechner@baylibre.com> wrote:
> >  
> > > From: David Lechner <david@lechnology.com>
> > >
> > > From: David Lechner <dlechner@baylibre.com>
> > >
> > > When reading the position and velocity on the AD2S1210, there is also a
> > > 3rd byte following the two data bytes that contains the fault flag bits.
> > > This patch adds support for reading this byte and generating events when
> > > faults occur.
> > >
> > > The faults are mapped to various channels and event types in order to
> > > have a unique event for each fault.
> > >
> > > Signed-off-by: David Lechner <dlechner@baylibre.com>  
> >
> > Use of x and y modifiers is a little odd.  What was your reasoning?
> > Was it just that there was a X_OR_Y modifier?  If so, don't use that!
> > It seemed like a good idea at the time, but it's not nice to deal with
> > and requires a channel with that modifier to hang the controls off
> > + make sure userspace expects that event code.  
> 
> 
> Regarding the point about "requires a channel with that modifier to
> hang the controls off...". Although that comment was about modifiers,
> does it also apply in general.
> 
> There are several fault events that don't have any configurable
> parameters, namely _sine/cosine inputs clipping_ and _velocity exceeds
> max tracking rate_. So there won't be any attributes that contain the
> event specification for those (e.g. no `events/in_angl0_*`
> attributes). It sounds like this would be a problem as well?

It's fine to have a channel that doesn't have controls or the ability
to be read.

We do have history of doing what you have here (a couple
of accelerometers do it) but it's esoteric and rather hard for userspace
to comprehend so I'd rather not introduce it for other types of devices.

I think we should go with the most flexible option of allowing
events to trigger when they 'may be true' to incorporate this case.
Unfortunately I can't see another option that would scale to all the
random combinations of events that might occur.  There are all sorts
of extensions we could make to the event descriptions, but only at the
cost of breaking backwards compatibility and simplicity.

SWith hindsight the whole IIO_MOD_X_OR_Y_OR_Z mess was a design error :(
We can teach userspace code about that quirk for accelerations where
the one that would be hard to handle is the AND case used for
freefall detectors (you detect that the signal magnitude is near 0 for
all axes).  I can't think of another option for that one other than
the weird modifier (unlike this case)

> 
> Should we consider a IIO_EV_INFO_LABEL so that we can have some sort
> of attribute (namely `events/<dir>_<channel spec>_label`) so that
> userspace can enumerate expected events for non-configurable events?

Probably needs something similar to channel labelling, so a separate
callback given we don't handle strings, but sure something like this
would be useful and provide 'hints' along the lines of what the
datasheet calls a particular event.  Not however for what event is sent
as such info should be apparent from the event naming.

Jonathan

  parent reply	other threads:[~2023-10-05 14:52 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-29 17:23 [PATCH v3 00/27] iio: resolver: move ad2s1210 out of staging David Lechner
2023-09-29 17:23 ` [PATCH v3 01/27] dt-bindings: iio: resolver: add devicetree bindings for ad2s1210 David Lechner
2023-09-30 14:34   ` Jonathan Cameron
2023-10-04 10:41     ` Hennerich, Michael
2023-10-02  8:02   ` Dan Carpenter
2023-10-02  9:03     ` Jonathan Cameron
2023-10-02 15:18   ` Rob Herring
2023-10-05 14:13     ` Jonathan Cameron
2023-09-29 17:23 ` [PATCH v3 02/27] staging: iio: resolver: ad2s1210: fix use before initialization David Lechner
2023-09-30 14:28   ` Jonathan Cameron
2023-10-02  8:07   ` Dan Carpenter
2023-10-02  9:17     ` Jonathan Cameron
2023-10-06 14:48       ` Vincent Whitchurch
2023-10-10  9:29         ` Jonathan Cameron
2023-09-29 17:23 ` [PATCH v3 03/27] staging: iio: resolver: ad2s1210: remove call to spi_setup() David Lechner
2023-09-30 14:35   ` Jonathan Cameron
2023-09-29 17:23 ` [PATCH v3 04/27] staging: iio: resolver: ad2s1210: check return of ad2s1210_initial() David Lechner
2023-09-30 14:37   ` Jonathan Cameron
2023-09-29 17:23 ` [PATCH v3 05/27] staging: iio: resolver: ad2s1210: remove spi_set_drvdata() David Lechner
2023-09-30 14:38   ` Jonathan Cameron
2023-09-29 17:23 ` [PATCH v3 06/27] staging: iio: resolver: ad2s1210: sort imports David Lechner
2023-09-30 14:39   ` Jonathan Cameron
2023-09-29 17:23 ` [PATCH v3 07/27] staging: iio: resolver: ad2s1210: always use 16-bit value for raw read David Lechner
2023-09-30 14:41   ` Jonathan Cameron
2023-09-29 17:23 ` [PATCH v3 08/27] staging: iio: resolver: ad2s1210: implement IIO_CHAN_INFO_SCALE David Lechner
2023-09-30 14:43   ` Jonathan Cameron
2023-09-29 17:23 ` [PATCH v3 09/27] staging: iio: resolver: ad2s1210: use devicetree to get CLKIN rate David Lechner
2023-09-30 14:44   ` Jonathan Cameron
2023-09-29 17:23 ` [PATCH v3 10/27] staging: iio: resolver: ad2s1210: use regmap for config registers David Lechner
2023-09-30 14:51   ` Jonathan Cameron
2023-09-29 17:23 ` [PATCH v3 11/27] staging: iio: resolver: ad2s1210: add debugfs reg access David Lechner
2023-09-30 14:52   ` Jonathan Cameron
2023-09-29 17:23 ` [PATCH v3 12/27] staging: iio: resolver: ad2s1210: remove config attribute David Lechner
2023-09-30 14:53   ` Jonathan Cameron
2023-09-29 17:23 ` [PATCH v3 13/27] staging: iio: resolver: ad2s1210: rework gpios David Lechner
2023-09-30 14:55   ` Jonathan Cameron
2023-10-05 13:38     ` Jonathan Cameron
2023-09-29 17:23 ` [PATCH v3 14/27] staging: iio: resolver: ad2s1210: implement hysteresis as channel attr David Lechner
2023-09-29 17:53   ` David Lechner
2023-09-30 15:00     ` Jonathan Cameron
2023-09-30 21:23       ` David Lechner
2023-09-30 15:03   ` Jonathan Cameron
2023-09-29 17:23 ` [PATCH v3 15/27] staging: iio: resolver: ad2s1210: refactor setting excitation frequency David Lechner
2023-09-30 15:06   ` Jonathan Cameron
2023-09-29 17:23 ` [PATCH v3 16/27] staging: iio: resolver: ad2s1210: read excitation frequency from control register David Lechner
2023-09-30 15:08   ` Jonathan Cameron
2023-09-29 17:23 ` [PATCH v3 17/27] staging: iio: resolver: ad2s1210: convert fexcit to channel attribute David Lechner
2023-09-30 15:12   ` Jonathan Cameron
2023-09-29 17:23 ` [PATCH v3 18/27] staging: iio: resolver: ad2s1210: convert resolution to devicetree property David Lechner
2023-09-30 15:15   ` Jonathan Cameron
2023-09-29 17:23 ` [PATCH v3 19/27] staging: iio: resolver: ad2s1210: add phase lock range support David Lechner
2023-09-30 15:18   ` Jonathan Cameron
2023-10-03  8:03   ` kernel test robot
2023-09-29 17:23 ` [PATCH v3 20/27] staging: iio: resolver: ad2s1210: add triggered buffer support David Lechner
2023-09-29 17:23 ` [PATCH v3 21/27] staging: iio: resolver: ad2s1210: convert LOT threshold attrs to event attrs David Lechner
2023-09-30 15:29   ` Jonathan Cameron
2023-10-03 11:11   ` kernel test robot
2023-09-29 17:23 ` [PATCH v3 22/27] staging: iio: resolver: ad2s1210: convert LOS threshold to event attr David Lechner
2023-09-30 15:32   ` Jonathan Cameron
2023-10-04 11:01     ` Hennerich, Michael
2023-10-05 14:16       ` Jonathan Cameron
2023-09-30 15:42   ` Jonathan Cameron
2023-09-30 15:46     ` Jonathan Cameron
2023-10-02 16:09     ` David Lechner
2023-10-05 14:37       ` Jonathan Cameron
2023-10-05 19:25         ` David Lechner
2023-10-03 14:21   ` kernel test robot
2023-09-29 17:23 ` [PATCH v3 23/27] staging: iio: resolver: ad2s1210: convert DOS overrange " David Lechner
2023-09-30 15:33   ` Jonathan Cameron
2023-10-03 17:21   ` kernel test robot
2023-09-29 17:23 ` [PATCH v3 24/27] staging: iio: resolver: ad2s1210: convert DOS mismatch " David Lechner
2023-10-03 20:08   ` kernel test robot
2023-09-29 17:23 ` [PATCH v3 25/27] staging: iio: resolver: ad2s1210: rename DOS reset min/max attrs David Lechner
2023-09-30 15:47   ` Jonathan Cameron
2023-10-02 17:06     ` David Lechner
2023-10-03 23:23   ` kernel test robot
2023-09-29 17:23 ` [PATCH v3 26/27] staging: iio: resolver: ad2s1210: implement fault events David Lechner
2023-09-30  3:55   ` kernel test robot
2023-09-30 16:00   ` Jonathan Cameron
2023-10-02 16:43     ` David Lechner
2023-10-02 16:58     ` David Lechner
2023-10-02 18:49       ` David Lechner
2023-10-05 14:52       ` Jonathan Cameron [this message]
2023-10-03 10:53   ` Dan Carpenter
2023-09-29 17:23 ` [PATCH v3 27/27] staging: iio: resolver: ad2s1210: add label attribute support David Lechner
2023-09-29 17:49 ` [PATCH v3 00/27] iio: resolver: move ad2s1210 out of staging David Lechner
2023-09-30 14:26   ` Jonathan Cameron
2023-09-29 22:02 ` David Lechner

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=20231005155211.102a4292@jic23-huawei \
    --to=jic23@kernel.org \
    --cc=Michael.Hennerich@analog.com \
    --cc=ahaslam@baylibre.com \
    --cc=conor+dt@kernel.org \
    --cc=david@lechnology.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dlechner@baylibre.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-staging@lists.linux.dev \
    --cc=nuno.sa@analog.com \
    --cc=pmolloy@baylibre.com \
    --cc=robh+dt@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).