From: Jonathan Cameron <jic23@kernel.org>
To: Ramona Gradinariu <ramona.bolboaca13@gmail.com>
Cc: linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org,
devicetree@vger.kernel.org, conor+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, robh@kernel.org,
nuno.sa@analog.com
Subject: Re: [PATCH v3 9/9] drivers: iio: imu: Add support for adis1657x family
Date: Sun, 19 May 2024 19:57:07 +0100 [thread overview]
Message-ID: <20240519195707.71163f84@jic23-huawei> (raw)
In-Reply-To: <20240517074750.87376-10-ramona.bolboaca13@gmail.com>
On Fri, 17 May 2024 10:47:50 +0300
Ramona Gradinariu <ramona.bolboaca13@gmail.com> wrote:
> Add support for ADIS1657X family devices in already exiting ADIS16475
> driver.
>
> Signed-off-by: Ramona Gradinariu <ramona.bolboaca13@gmail.com>
Whilst it's not necessarily vital to support, it I'm curious about
what happens to the hardware timestamp? I thought we had one driver
still doing hardware timestamps directly to the buffer, but I can't
find it so I guess we now deal with alignment in the few devices with
this support. The st_lsm6dsx has this sort of combining of local
and fifo timestamps for example.
As it stands I think you push the same timestamp for all scans read
from the fifo on a particular watermark interrupt? That isn't
ideal given we should definitely be able to do better than that.
> +
> +static const struct iio_dev_attr *adis16475_fifo_attributes[] = {
> + &iio_dev_attr_hwfifo_watermark_min.dev_attr.attr,
> + &iio_dev_attr_hwfifo_watermark_max.dev_attr.attr,
> + &iio_dev_attr_hwfifo_watermark.dev_attr.attr,
> + &iio_dev_attr_hwfifo_enabled.dev_attr.attr,
The autobuilder caught this one. Drop the dev_attr.attr.
> + NULL
> +};
> +
> +
> +static const struct iio_buffer_setup_ops adis16475_buffer_ops = {
> + .postenable = adis16475_buffer_postenable,
> + .postdisable = adis16475_buffer_postdisable,
> +};
> +
> +static int adis16475_set_watermark(struct iio_dev *indio_dev, unsigned int val)
> +{
> + struct adis16475 *st = iio_priv(indio_dev);
> + int ret;
> + u16 wm_lvl;
> +
> + adis_dev_lock(&st->adis);
As a follow up perhaps consider defining magic to use guard() for these as there are
enough users that will be simplified to make it worth the effort.
> +
> + val = min_t(unsigned int, val, ADIS16575_MAX_FIFO_WM);
> +
> + wm_lvl = ADIS16575_WM_LVL(val - 1);
> + ret = __adis_update_bits(&st->adis, ADIS16475_REG_FIFO_CTRL, ADIS16575_WM_LVL_MASK, wm_lvl);
> + if (ret)
> + goto unlock;
> +
> + st->fifo_watermark = val;
> +
> +unlock:
> + adis_dev_unlock(&st->adis);
> + return ret;
> +}
> +
> @@ -1514,8 +1978,20 @@ static int adis16475_probe(struct spi_device *spi)
> if (ret)
> return ret;
>
> - ret = devm_adis_setup_buffer_and_trigger(&st->adis, indio_dev,
> - adis16475_trigger_handler);
> + if (st->info->flags & ADIS16475_HAS_FIFO) {
> + ret = devm_adis_setup_buffer_and_trigger_with_attrs(&st->adis, indio_dev,
> + adis16475_trigger_handler_with_fifo,
> + &adis16475_buffer_ops,
> + adis16475_fifo_attributes);
> + if (ret)
> + return ret;
blank line here.
> + /* Update overflow behavior to always overwrite the oldest sample. */
> + ret = adis_update_bits(&st->adis, ADIS16475_REG_FIFO_CTRL,
> + ADIS16575_OVERFLOW_MASK, (u16)ADIS16575_OVERWRITE_OLDEST);
if (ret) in here.
> + } else {
> + ret = devm_adis_setup_buffer_and_trigger(&st->adis, indio_dev,
> + adis16475_trigger_handler);
and if (ret) in here and drop the one that follows.
otherwise we end up with odd code pattern of handling one case in this scope and not
the other two.
> + }
next prev parent reply other threads:[~2024-05-19 18:57 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-17 7:47 [PATCH v3 0/9] adis16501 and adis1657x support Ramona Gradinariu
2024-05-17 7:47 ` [PATCH v3 1/9] dt-bindings: iio: imu: Add ADIS16501 compatibles Ramona Gradinariu
2024-05-17 7:47 ` [PATCH v3 2/9] drivers: iio: imu: Add support for ADIS16501 Ramona Gradinariu
2024-05-17 7:47 ` [PATCH v3 3/9] iio: imu: adis16475: Re-define ADIS16475_DATA Ramona Gradinariu
2024-05-17 7:47 ` [PATCH v3 4/9] iio: imu: adis_buffer: Add buffer setup API with buffer attributes Ramona Gradinariu
2024-05-17 7:47 ` [PATCH v3 5/9] iio: imu: adis16475: Create push single sample API Ramona Gradinariu
2024-05-17 7:47 ` [PATCH v3 6/9] drivers: iio: imu: adis16475: generic computation for sample rate Ramona Gradinariu
2024-05-17 7:47 ` [PATCH v3 7/9] iio: imu: adis_trigger: Allow level interrupts Ramona Gradinariu
2024-05-19 18:35 ` Jonathan Cameron
2024-05-21 10:56 ` Nuno Sá
2024-05-17 7:47 ` [PATCH v3 8/9] dt-bindings: iio: imu: Add ADIS1657X family devices compatibles Ramona Gradinariu
2024-05-17 7:47 ` [PATCH v3 9/9] drivers: iio: imu: Add support for adis1657x family Ramona Gradinariu
2024-05-18 6:47 ` kernel test robot
2024-05-19 18:38 ` Jonathan Cameron
2024-05-18 11:00 ` kernel test robot
2024-05-19 18:57 ` Jonathan Cameron [this message]
2024-05-21 7:01 ` Nuno Sá
2024-05-22 9:51 ` Ramona Gradinariu
2024-05-23 17:11 ` 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=20240519195707.71163f84@jic23-huawei \
--to=jic23@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nuno.sa@analog.com \
--cc=ramona.bolboaca13@gmail.com \
--cc=robh@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