[PATCH v6 0/3] Add support for WoM (Wake-on-Motion) feature

Jean-Baptiste Maneyrol via B4 Relay posted 3 patches 3 months, 1 week ago
drivers/iio/imu/inv_icm42600/inv_icm42600.h        |  56 +++-
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c  | 329 ++++++++++++++++++++-
drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c |   2 +-
drivers/iio/imu/inv_icm42600/inv_icm42600_core.c   |  97 +++++-
4 files changed, 470 insertions(+), 14 deletions(-)
[PATCH v6 0/3] Add support for WoM (Wake-on-Motion) feature
Posted by Jean-Baptiste Maneyrol via B4 Relay 3 months, 1 week ago
Similar to feature present in older chip, it compares the magnitude of
the last 2 accel samples against a threshold and returns an interrupt
even if the value is higher.

WoM maps best to accel x|y|z ROC event. This series add system wakeup
functionality if WoM is on and wakeup is enabled when system suspends.

This series also prepare the driver for supporting further APEX
features like pedometer, tilt, ... It introduces an apex structure that
will hold all APEX settings and track the enable state.

Signed-off-by: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
---
Changes in v6:
- Rework scoped_guard() for not using break
- Reword move DMA buffers initial patch to add better explanations
- Link to v5: https://lore.kernel.org/r/20250623-losd-3-inv-icm42600-add-wom-support-v5-0-4b3b33e028fe@tdk.com

Changes in v5:
- Add preliminary patch to move DMA buffers at end of structure.
- Check return code of devm_device_init_wakeup()
- Rebase and rework series to use kernel types
- Link to v4: https://lore.kernel.org/r/20250613-losd-3-inv-icm42600-add-wom-support-v4-0-7e5f554201bf@tdk.com

Changes in v4:
- Avoid mix of gotos and scoped_guard()
- Invert conditionals for better code readability
- Switch to use devm_device_init_wakeup()
- Several code readabilities improvements
- Link to v3: https://lore.kernel.org/r/20250418-losd-3-inv-icm42600-add-wom-support-v3-0-7a180af02bfe@tdk.com

Changes in v3:
- Rewrites following code review
- Link to v2: https://lore.kernel.org/r/20250415-losd-3-inv-icm42600-add-wom-support-v2-0-de94dfb92b7e@tdk.com

Changes in v2:
- change struct order to avoir DMA overflow
- separate wom enable/disable in 2 functions
- delete mutex rework
- Link to v1: https://lore.kernel.org/r/20250220-losd-3-inv-icm42600-add-wom-support-v1-0-9b937f986954@tdk.com

---
Jean-Baptiste Maneyrol (3):
      iio: imu: inv_icm42600: reorganize DMA aligned buffers in structure
      iio: imu: inv_icm42600: add WoM support
      iio: imu: inv_icm42600: add wakeup functionality for Wake-on-Motion

 drivers/iio/imu/inv_icm42600/inv_icm42600.h        |  56 +++-
 drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c  | 329 ++++++++++++++++++++-
 drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c |   2 +-
 drivers/iio/imu/inv_icm42600/inv_icm42600_core.c   |  97 +++++-
 4 files changed, 470 insertions(+), 14 deletions(-)
---
base-commit: 42498420746a4db923f03d048a0ebc9bd2371f56
change-id: 20250220-losd-3-inv-icm42600-add-wom-support-0620fef9db23

Best regards,
-- 
Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
Re: [PATCH v6 0/3] Add support for WoM (Wake-on-Motion) feature
Posted by Jonathan Cameron 3 months ago
On Mon, 30 Jun 2025 21:47:28 +0200
Jean-Baptiste Maneyrol via B4 Relay <devnull+jean-baptiste.maneyrol.tdk.com@kernel.org> wrote:

> Similar to feature present in older chip, it compares the magnitude of
> the last 2 accel samples against a threshold and returns an interrupt
> even if the value is higher.
> 
> WoM maps best to accel x|y|z ROC event. This series add system wakeup
> functionality if WoM is on and wakeup is enabled when system suspends.
> 
> This series also prepare the driver for supporting further APEX
> features like pedometer, tilt, ... It introduces an apex structure that
> will hold all APEX settings and track the enable state.
Applied to the togreg branch of iio.git and pushed out initially as testing
for 0-day to poke at it.

Thanks,

Jonathan

> 
> Signed-off-by: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
> ---
> Changes in v6:
> - Rework scoped_guard() for not using break
> - Reword move DMA buffers initial patch to add better explanations
> - Link to v5: https://lore.kernel.org/r/20250623-losd-3-inv-icm42600-add-wom-support-v5-0-4b3b33e028fe@tdk.com
> 
> Changes in v5:
> - Add preliminary patch to move DMA buffers at end of structure.
> - Check return code of devm_device_init_wakeup()
> - Rebase and rework series to use kernel types
> - Link to v4: https://lore.kernel.org/r/20250613-losd-3-inv-icm42600-add-wom-support-v4-0-7e5f554201bf@tdk.com
> 
> Changes in v4:
> - Avoid mix of gotos and scoped_guard()
> - Invert conditionals for better code readability
> - Switch to use devm_device_init_wakeup()
> - Several code readabilities improvements
> - Link to v3: https://lore.kernel.org/r/20250418-losd-3-inv-icm42600-add-wom-support-v3-0-7a180af02bfe@tdk.com
> 
> Changes in v3:
> - Rewrites following code review
> - Link to v2: https://lore.kernel.org/r/20250415-losd-3-inv-icm42600-add-wom-support-v2-0-de94dfb92b7e@tdk.com
> 
> Changes in v2:
> - change struct order to avoir DMA overflow
> - separate wom enable/disable in 2 functions
> - delete mutex rework
> - Link to v1: https://lore.kernel.org/r/20250220-losd-3-inv-icm42600-add-wom-support-v1-0-9b937f986954@tdk.com
> 
> ---
> Jean-Baptiste Maneyrol (3):
>       iio: imu: inv_icm42600: reorganize DMA aligned buffers in structure
>       iio: imu: inv_icm42600: add WoM support
>       iio: imu: inv_icm42600: add wakeup functionality for Wake-on-Motion
> 
>  drivers/iio/imu/inv_icm42600/inv_icm42600.h        |  56 +++-
>  drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c  | 329 ++++++++++++++++++++-
>  drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c |   2 +-
>  drivers/iio/imu/inv_icm42600/inv_icm42600_core.c   |  97 +++++-
>  4 files changed, 470 insertions(+), 14 deletions(-)
> ---
> base-commit: 42498420746a4db923f03d048a0ebc9bd2371f56
> change-id: 20250220-losd-3-inv-icm42600-add-wom-support-0620fef9db23
> 
> Best regards,