From: Andy Shevchenko <andy.shevchenko@gmail.com>
To: "Sa, Nuno" <Nuno.Sa@analog.com>
Cc: linux-iio <linux-iio@vger.kernel.org>,
devicetree <devicetree@vger.kernel.org>,
Jonathan Cameron <jic23@kernel.org>,
Hartmut Knaack <knaack.h@gmx.de>,
Lars-Peter Clausen <lars@metafoo.de>,
Peter Meerwald-Stadler <pmeerw@pmeerw.net>,
Rob Herring <robh+dt@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
"Ardelean, Alexandru" <alexandru.Ardelean@analog.com>,
"Hennerich, Michael" <Michael.Hennerich@analog.com>
Subject: Re: [PATCH v3 5/6] iio: imu: Add support for adis16475
Date: Wed, 1 Apr 2020 13:22:51 +0300 [thread overview]
Message-ID: <CAHp75VfuWMDR4dUmjsYgeMgNMcVDZKdKVCsZ5p6g0m3TLHi5UA@mail.gmail.com> (raw)
In-Reply-To: <BN6PR03MB3347862A4C434CCA8C1B1E2599C90@BN6PR03MB3347.namprd03.prod.outlook.com>
On Wed, Apr 1, 2020 at 10:13 AM Sa, Nuno <Nuno.Sa@analog.com> wrote:
>
> > From: Andy Shevchenko <andy.shevchenko@gmail.com>
> > Sent: Dienstag, 31. März 2020 20:16
> > To: Sa, Nuno <Nuno.Sa@analog.com>
> > Cc: linux-iio <linux-iio@vger.kernel.org>; devicetree
> > <devicetree@vger.kernel.org>; Jonathan Cameron <jic23@kernel.org>;
> > Hartmut Knaack <knaack.h@gmx.de>; Lars-Peter Clausen <lars@metafoo.de>;
> > Peter Meerwald-Stadler <pmeerw@pmeerw.net>; Rob Herring
> > <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Ardelean,
> > Alexandru <alexandru.Ardelean@analog.com>; Hennerich, Michael
> > <Michael.Hennerich@analog.com>
> > Subject: Re: [PATCH v3 5/6] iio: imu: Add support for adis16475
> > On Tue, Mar 31, 2020 at 2:49 PM Nuno Sá <nuno.sa@analog.com> wrote:
...
> > > +#include <asm/unaligned.h>
> I thought we wanted alphabetic order...
Yes, but from more generic header groups to less generic. Inside each
group is alphabetical.
asm/ is less generic than linux/.
> > Usually it goes after linux/*
> > > +#include <linux/bitfield.h>
> > > +#include <linux/bitops.h>
> > > +#include <linux/clk.h>
> > > +#include <linux/debugfs.h>
> > > +#include <linux/delay.h>
> > > +#include <linux/device.h>
> >
> > > +#include <linux/kernel.h>
> >
> > What this is for?
> >
> Yeps. Not really needed...
I think you needed it for DIV_ROUND_UP or alike macros. It also has
container_of...
> > > +#include <linux/iio/buffer.h>
> > > +#include <linux/iio/iio.h>
> > > +#include <linux/iio/imu/adis.h>
> > > +#include <linux/iio/sysfs.h>
> > > +#include <linux/iio/trigger_consumer.h>
> > > +#include <linux/irq.h>
> > > +#include <linux/module.h>
> >
> > > +#include <linux/of_device.h>
> >
> > Do you really need this? Perhaps mod_devicetable.h is what you are looking
> > for.
> >
>
> Yes. For ` of_device_get_match_data ``. If changed by `device_get_match_data`, then I guess
> I can drop it..
Probably change to mod_devicetable.h with property.h.
> > > +#include <linux/spi/spi.h>
...
> > > + for (i = ARRAY_SIZE(adis16475_3db_freqs) - 2; i >= 1; i--) {
> >
> > Why those margins? size-2 and 1 ?
> >
>
> The -2 is needed since index 7 is not valid. The 1 I honestly don't remember why I did it
> like this. Using > 0 is the same and more "common"...
More common is >= 0. That's my question basically.
And if 7 is not valid why to keep it in the array at all?
> > > + if (adis16475_3db_freqs[i] >= filter)
> > > + break;
> > > + }
...
> > > +#define ADIS16475_GYRO_CHANNEL(_mod) \
> > > + ADIS16475_MOD_CHAN(IIO_ANGL_VEL, IIO_MOD_ ## _mod, \
> > > + ADIS16475_REG_ ## _mod ## _GYRO_L, ADIS16475_SCAN_GYRO_ ##
> > _mod, 32, \
> > > + 32)
> >
> > It's not obvious that this is macro inside macro. Can you indent better?
> > Ditto for the rest similar ones.
> >
>
> Honestly here I don't see any problems with indentation and it goes in conformity with
> other IMU drivers already in tree. So here, as long as anyone else has a problem with this, I prefer
> to keep it this way...
I'm not a maintainer, not my call :-)
...
> > > + buffer = (u16 *)adis->buffer;
> >
> > Why the casting is needed?
> >
> > > + crc = get_unaligned_be16(&buffer[offset + 2]);
> >
> > If your buffer is aligned in the structure, you may simple use be16_to_cpu().
> > Same for the rest of get_unaligned*() calls.
> > Or do you have unaligned data there?
>
> This is a nice point. So, honestly I made it like this to keep conformity with other drivers we have
> in our internal tree (in queue for upstream) and I also wondered about this. The only justification I can
> find to use unligned calls is to keep this independent from the ADIS lib (not sure if it makes sense) since
> we get the pointer from the library (allocated there).
>
> Now, if Im not missing nothing obvious we can access the buffer normally since it's being allocated
> with kmalloc which means we have ARCH_KMALLOC_MINALIGN (which is at least 8 if Im not mistaken).
> On top of this, the device sends the data as n 16 bits segments. So in theory, I guess we can ditch the
> overhead of the *unaligned calls if any objections?
No objections from my side at least.
...
> > > + desc = irq_get_irq_data(spi->irq);
> >
> > > + if (!desc) {
> > > + dev_err(&spi->dev, "Could not find IRQ %d\n", spi->irq);
> > > + return -EINVAL;
> > > + }
> >
> > Is this even possible?
> I guess. If someone does not include it in device tree...
Hmm... and this function will be called anyway?
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2020-04-01 10:23 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-31 11:48 [PATCH v3 0/6] Support ADIS16475 and similar IMUs Nuno Sá
2020-03-31 11:48 ` [PATCH v3 1/6] iio: imu: adis: Add Managed device functions Nuno Sá
2020-04-04 16:24 ` Jonathan Cameron
2020-03-31 11:48 ` [PATCH v3 2/6] iio: imu: adis: Add irq mask variable Nuno Sá
2020-03-31 17:40 ` Andy Shevchenko
2020-04-01 7:22 ` Sa, Nuno
2020-04-01 10:27 ` Andy Shevchenko
2020-04-01 13:18 ` Sa, Nuno
2020-03-31 11:48 ` [PATCH v3 3/6] iio: adis: Add adis_update_bits() APIs Nuno Sá
2020-03-31 17:41 ` Andy Shevchenko
2020-04-01 7:14 ` Sa, Nuno
2020-03-31 11:48 ` [PATCH v3 4/6] iio: adis: Support different burst sizes Nuno Sá
2020-03-31 11:48 ` [PATCH v3 5/6] iio: imu: Add support for adis16475 Nuno Sá
2020-03-31 18:15 ` Andy Shevchenko
2020-04-01 7:13 ` Sa, Nuno
2020-04-01 10:22 ` Andy Shevchenko [this message]
2020-04-01 13:27 ` Sa, Nuno
2020-04-01 14:06 ` Andy Shevchenko
2020-04-01 14:18 ` Sa, Nuno
2020-04-01 16:24 ` Andy Shevchenko
2020-04-04 16:05 ` Jonathan Cameron
2020-04-04 16:01 ` Jonathan Cameron
2020-03-31 11:48 ` [PATCH v3 6/6] dt-bindings: iio: Add adis16475 documentation Nuno Sá
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=CAHp75VfuWMDR4dUmjsYgeMgNMcVDZKdKVCsZ5p6g0m3TLHi5UA@mail.gmail.com \
--to=andy.shevchenko@gmail.com \
--cc=Michael.Hennerich@analog.com \
--cc=Nuno.Sa@analog.com \
--cc=alexandru.Ardelean@analog.com \
--cc=devicetree@vger.kernel.org \
--cc=jic23@kernel.org \
--cc=knaack.h@gmx.de \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=pmeerw@pmeerw.net \
--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).