Re: [PATCH v3 2/2] iio: accel: bma400: Add support for single and double tap events

From: Jonathan Cameron
Date: Sun Aug 28 2022 - 14:38:02 EST


On Sat, 27 Aug 2022 03:36:23 +0530
Jagath Jog J <jagathjog1996@xxxxxxxxx> wrote:

> Hi Andy,
>
> On Fri, Aug 26, 2022 at 1:53 AM Andy Shevchenko
> <andy.shevchenko@xxxxxxxxx> wrote:
> >
> > On Thu, Aug 25, 2022 at 10:46 PM Jagath Jog J <jagathjog1996@xxxxxxxxx> wrote:
> > >
> > > Add support for single and double tap events based on the tap threshold
> > > value, minimum quiet time before and after the tap and minimum time
> > > between the taps in the double tap. The INT1 pin is used to interrupt
> > > and the event is pushed to userspace.
> >
> > ...
> >
> > > +static int tap_reset_timeout[] = {
> > > + 300000,
> > > + 400000,
> > > + 500000,
> > > + 600000
> >
> > + Comma and so on for the rest of the similar cases.
>
> This is the terminator case so I have not added a comma in the last.
> All three tap configurations have only 4 value options.
>
> >
> > > +};
> >
> > ...
> >
> > > +static int usec_to_tapreg_raw(int usec, const int *time_list)
> > > +{
> > > + int index;
> > > +
> > > + for (index = 0; index < 4; index++) {
> >
> > Magic. Shouldn't be defined?
>
> All tap configuration value arrays are of size 4, I will define a
> macro for that.
>
> >
> > Also you may add it to each data structure in question.
>
> Do you mean storing these values in the device's private structure?

I suspect Andy means making sure they are all 4 long via
+static int tap_reset_timeout[NEW_LENGTH_DEFINE] = {
etc.


>
> Tap configuration values are not stored in the device's private
> structure because.
> - I am directly accessing the device registers in _read_event_value()
> and _write_event_value().
> - These configuration values are not used in the other parts of
> the driver.
> - Two of these configurations have a default value so instead of
> reading and storing these values in the device's private structure
> during device init, I am directly accessing the device's register.
>
> >
> > > + if (usec == time_list[index])
> > > + return index;
> > > + }
> > > + return -EINVAL;
> > > +}
> >
> > ...
> >
> > > + int ret;
> > > + unsigned int mask, field_value;
> >
> > Reversed xmas tree order?
> >
> > > + * Tap interrupts are operating with the data rate of 200Hz.
> >
> > a data
>
> Sure, I will correct these in the next patch series.
>
> Thank you
> Jagath
>
> >
> > > + * See section 4.7 "Tap sensing interrupt" in datasheet v1.2.
> > > + */
> >
> > --
> > With Best Regards,
> > Andy Shevchenko