From: Jonathan Cameron <jic23@kernel.org>
To: Lothar Rubusch <l.rubusch@gmail.com>
Cc: lars@metafoo.de, Michael.Hennerich@analog.com,
linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org,
eraretuya@gmail.com
Subject: Re: [PATCH v4 02/14] iio: accel: adxl345: move INT enable to regmap cache
Date: Sun, 16 Mar 2025 11:11:12 +0000 [thread overview]
Message-ID: <20250316111105.58598a2e@jic23-huawei> (raw)
In-Reply-To: <20250313165049.48305-3-l.rubusch@gmail.com>
On Thu, 13 Mar 2025 16:50:37 +0000
Lothar Rubusch <l.rubusch@gmail.com> wrote:
> Replace the interrupt enable member variable to the regmap cache. This
> makes the function set_interrupts() obsolete. The interrupt enable
> register is written when the driver is probed. Thus it is perfectly
> cacheable.
>
> Signed-off-by: Lothar Rubusch <l.rubusch@gmail.com>
Applied with a small tweak. I don't think you touch set_watermark
again later in the series so this shouldn't cause too much impact.
> ---
> drivers/iio/accel/adxl345_core.c | 26 +++++++++++---------------
> 1 file changed, 11 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/iio/accel/adxl345_core.c b/drivers/iio/accel/adxl345_core.c
> index 6f337b26999a..10e2da7de17e 100644
> --- a/drivers/iio/accel/adxl345_core.c
> +++ b/drivers/iio/accel/adxl345_core.c
> @@ -36,7 +36,6 @@ struct adxl345_state {
> struct regmap *regmap;
> bool fifo_delay; /* delay: delay is needed for SPI */
> int irq;
> - u8 int_map;
> u8 watermark;
> u8 fifo_mode;
> __le16 fifo_buf[ADXL345_DIRS * ADXL345_FIFO_SIZE + 1] __aligned(IIO_DMA_MINALIGN);
> @@ -114,11 +113,6 @@ static int adxl345_set_measure_en(struct adxl345_state *st, bool en)
> return regmap_write(st->regmap, ADXL345_REG_POWER_CTL, val);
> }
>
> -static int adxl345_set_interrupts(struct adxl345_state *st)
> -{
> - return regmap_write(st->regmap, ADXL345_REG_INT_ENABLE, st->int_map);
> -}
> -
> static int adxl345_read_raw(struct iio_dev *indio_dev,
> struct iio_chan_spec const *chan,
> int *val, int *val2, long mask)
> @@ -217,7 +211,7 @@ static int adxl345_reg_access(struct iio_dev *indio_dev, unsigned int reg,
> static int adxl345_set_watermark(struct iio_dev *indio_dev, unsigned int value)
> {
> struct adxl345_state *st = iio_priv(indio_dev);
> - unsigned int fifo_mask = 0x1F;
> + const unsigned int fifo_mask = 0x1F, watermark_mask = 0x02;
> int ret;
>
> value = min(value, ADXL345_FIFO_SIZE - 1);
> @@ -227,7 +221,10 @@ static int adxl345_set_watermark(struct iio_dev *indio_dev, unsigned int value)
> return ret;
>
> st->watermark = value;
> - st->int_map |= ADXL345_INT_WATERMARK;
> + ret = regmap_update_bits(st->regmap, ADXL345_REG_INT_ENABLE, watermark_mask,
> + ADXL345_INT_WATERMARK);
> + if (ret)
> + return ret;
tweaked to
return regmap.
>
> return 0;
> }
> @@ -381,11 +378,6 @@ static void adxl345_fifo_reset(struct adxl345_state *st)
> static int adxl345_buffer_postenable(struct iio_dev *indio_dev)
> {
> struct adxl345_state *st = iio_priv(indio_dev);
> - int ret;
> -
> - ret = adxl345_set_interrupts(st);
> - if (ret < 0)
> - return ret;
>
> st->fifo_mode = ADXL345_FIFO_STREAM;
> return adxl345_set_fifo(st);
> @@ -401,8 +393,7 @@ static int adxl345_buffer_predisable(struct iio_dev *indio_dev)
> if (ret < 0)
> return ret;
>
> - st->int_map = 0x00;
> - return adxl345_set_interrupts(st);
> + return regmap_write(st->regmap, ADXL345_REG_INT_ENABLE, 0x00);
> }
>
> static const struct iio_buffer_setup_ops adxl345_buffer_ops = {
> @@ -524,6 +515,11 @@ int adxl345_core_probe(struct device *dev, struct regmap *regmap,
> indio_dev->num_channels = ARRAY_SIZE(adxl345_channels);
> indio_dev->available_scan_masks = adxl345_scan_masks;
>
> + /* Reset interrupts at start up */
> + ret = regmap_write(st->regmap, ADXL345_REG_INT_ENABLE, 0x00);
> + if (ret)
> + return ret;
> +
> if (setup) {
> /* Perform optional initial bus specific configuration */
> ret = setup(dev, st->regmap);
next prev parent reply other threads:[~2025-03-16 11:11 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-13 16:50 [PATCH v4 00/14] iio: accel: adxl345: add interrupt based sensor events Lothar Rubusch
2025-03-13 16:50 ` [PATCH v4 01/14] iio: accel: adxl345: use regmap cache for INT mapping Lothar Rubusch
2025-03-16 11:06 ` Jonathan Cameron
2025-03-13 16:50 ` [PATCH v4 02/14] iio: accel: adxl345: move INT enable to regmap cache Lothar Rubusch
2025-03-16 11:11 ` Jonathan Cameron [this message]
2025-03-13 16:50 ` [PATCH v4 03/14] iio: accel: adxl345: cleanup regmap return values Lothar Rubusch
2025-03-16 11:12 ` Jonathan Cameron
2025-03-13 16:50 ` [PATCH v4 04/14] iio: accel: adxl345: introduce adxl345_push_event function Lothar Rubusch
2025-03-16 11:14 ` Jonathan Cameron
2025-03-16 19:58 ` Andy Shevchenko
2025-03-17 10:55 ` Jonathan Cameron
2025-03-17 15:51 ` Andy Shevchenko
2025-03-18 9:44 ` Lothar Rubusch
2025-03-26 9:32 ` Andy Shevchenko
2025-03-28 15:30 ` Lothar Rubusch
2025-03-13 16:50 ` [PATCH v4 05/14] iio: accel: adxl345: add single tap feature Lothar Rubusch
2025-03-16 11:22 ` Jonathan Cameron
2025-03-18 10:32 ` Lothar Rubusch
2025-03-18 23:08 ` Lothar Rubusch
2025-03-31 12:36 ` Jonathan Cameron
2025-03-13 16:50 ` [PATCH v4 06/14] iio: accel: adxl345: add double " Lothar Rubusch
2025-03-13 16:50 ` [PATCH v4 07/14] iio: accel: adxl345: set the tap suppress bit permanently Lothar Rubusch
2025-03-13 16:50 ` [PATCH v4 08/14] iio: accel: adxl345: add freefall feature Lothar Rubusch
2025-03-13 16:50 ` [PATCH v4 09/14] iio: accel: adxl345: extend sample frequency adjustments Lothar Rubusch
2025-03-16 11:26 ` Jonathan Cameron
2025-03-13 16:50 ` [PATCH v4 10/14] iio: accel: adxl345: add g-range configuration Lothar Rubusch
2025-03-16 11:28 ` Jonathan Cameron
2025-03-13 16:50 ` [PATCH v4 11/14] iio: accel: adxl345: add activity event feature Lothar Rubusch
2025-03-16 11:32 ` Jonathan Cameron
2025-03-13 16:50 ` [PATCH v4 12/14] iio: accel: adxl345: add inactivity feature Lothar Rubusch
2025-03-13 16:50 ` [PATCH v4 13/14] iio: accel: adxl345: add coupling detection for activity/inactivity Lothar Rubusch
2025-03-13 16:50 ` [PATCH v4 14/14] docs: iio: add documentation for adxl345 driver Lothar Rubusch
2025-03-16 11:37 ` 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=20250316111105.58598a2e@jic23-huawei \
--to=jic23@kernel.org \
--cc=Michael.Hennerich@analog.com \
--cc=eraretuya@gmail.com \
--cc=l.rubusch@gmail.com \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.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 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.