From nobody Mon Dec 1 22:05:44 2025 Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DCE4F3043AC for ; Mon, 1 Dec 2025 10:00:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764583245; cv=none; b=J48O06c4dEjhol8yRv9LjiSbH18ldPZUuX37bS/QiY33s7Yksn+ep2qx7YKg8M82ijr/SxmI5pwU6/RJiHcMe2zAELIBYzYX0tvE9s+BmYHKDeVvDN4SO1gEJFut/uOxZuOlM5EM3oiEur1ZxRgwHSO1yj0q6OhVHmITh3yDbeI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764583245; c=relaxed/simple; bh=Hb1zr2alwVQYcp7QMo+P9C4EGA5XkhpF1f4WPadLW7c=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=DIxuMug7vYbq3oaMPsLXRIeN4EhYy8Yulcug1HYpzIJoOQTTHgsOBFqIEiQbbod7a+WEz6JDT2vXU+caFFw+9nDOCC4Eo6EJAaS0JeaCqv1oeVognKOmmOHLVk45D/oMQ5xhZBwL4w2ltnNo4mBdOYJ8z7D5Q4CVfGGMrzwpAgg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=IM2bHuVZ; arc=none smtp.client-ip=209.85.218.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="IM2bHuVZ" Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-b7373fba6d1so625090966b.3 for ; Mon, 01 Dec 2025 02:00:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1764583242; x=1765188042; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=UfRpMGSd7y9d0byFFdqTrDp2AlO8u4+9bS6XzrmHfjQ=; b=IM2bHuVZVj7TEGeea62sVbv129+HpSuMrH3EFduTqKtSy/qLw/UigE2AiYGGxUaHdB zbm0K6HwdE0er1fG2tDjR2jkR/XPoJ8u5EWkqanhABFF4IEX69KMXman1C06YeEE3/fs nHIoIXcdB1S73UPgsh4jQB7uJkMIuPDT5k1elOob0qLrsoHi83v6rZRZKjcSW3zRZIju q3Xc04OTs6b/j21t7o6x2D8rb2mtQPm0f8SfJvR0sKZVKYTAusYyjrHKAxtXxWOhroQn AK0dhlAzqPd2x+OaGpD98z0P8akb3SA/CcfqPN4X4Xyil5KWO7PYDdVOwGWRCTgGUbpQ d2yA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764583242; x=1765188042; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=UfRpMGSd7y9d0byFFdqTrDp2AlO8u4+9bS6XzrmHfjQ=; b=FXt7DItO/QTnwD/W0sJDCLL9q4hDxycGu8XEecOJMfx+/ycKpj6YohZTXL8Gok0Rdv xpROhw1b7ASiaG0ZYuTecsXYuWCzSZF2z/ceyoi2+q0/uD2jfGicgXxqxkEVbGxvki/p Bc83w4wjgbCe2ibZs1GDVg+4oQWD9ArRdF9kaRGYfmM/UY0hNFfQHee1lvt6Yt1nO3t0 UUHBPcofORUldluIEV2WcKxHfV1JxNl1JoZgaIuhvzUkLQsMrdBhyzNp88l3/IO4xzgM BVLgr9kn6zk7gruYEjKM1qfCHJJbKHR8LY9ySiUeS9r+lf0fOj6LoXR4xP0vaGoPMpYN c0mw== X-Forwarded-Encrypted: i=1; AJvYcCVkduoidSog2LOM7YxTh2FTwAPZGNmYST/bSNtLPTF8/NpdFfFwrSQWKZEsESr1xwMnJ7kWaEXJj+E89jY=@vger.kernel.org X-Gm-Message-State: AOJu0YwBCfGO9D6TC/JA1ROCD6VVdUTXkXxbnT0ABr1oP2AYU7OjR1CN mNDl/LXNAp7ZlrWHC10fx0Hxl/IcgUe8HpkN/tsap7PinrY6eFF/EzQDCLmO5Z5hVDQ= X-Gm-Gg: ASbGncupqUTJhf7QEvHqp/5U2/464+M0GW1nvM2KtREtjDQ5c5xKI34TmWsseikMPMy rbO94Ry/SB35UDIdwixzvJXROT6IbDDjMh+6k/N0lioEP16zDegSWIXgQMzhSOnd9gKoFZFKZt7 X/e5pwaq+7Du9BvmKC2bPSZC3mqS0ot+Xho6/DTscs7YjkFuoaVOlI0RTAjKgzo993bIMfgM0Xc OrTd230PJ55DNp3KifNJIVCzHrSyjycROicI6zXLzu7f40YCSUvcW6DnAxym16IGd7Wg7SKMJbv K8bJOpyl3F9yVi6Tx6SjjVcWXUvE4IiLih1SLBSKgyv/GctxXqpZD6G2CcTEqhhPmZIIhPDX4TL z++su6/O+r69ArhjolA+Q7Jsf9UYU2kSZCO8ftc+9qy6RDysYkww8U5SAo/pyOInMgkM= X-Google-Smtp-Source: AGHT+IFG/lUWatn33AA2wWd09wsuBnOWD/+GXbAzbWeEhM/nMJxl9/I1ahJbDtANZJeZXogum1i+fA== X-Received: by 2002:a17:907:3f9c:b0:b73:7f1c:b8d8 with SMTP id a640c23a62f3a-b767129709dmr3735719366b.0.1764583242142; Mon, 01 Dec 2025 02:00:42 -0800 (PST) Received: from localhost ([151.35.151.28]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b76f59eb401sm1146916566b.54.2025.12.01.02.00.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Dec 2025 02:00:41 -0800 (PST) From: Francesco Lavra To: Lorenzo Bianconi , Jonathan Cameron , David Lechner , =?UTF-8?q?Nuno=20S=C3=A1?= , Andy Shevchenko , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Andy Shevchenko Subject: [PATCH v4 5/9] iio: imu: st_lsm6dsx: remove event_threshold field from hw struct Date: Mon, 1 Dec 2025 11:00:14 +0100 Message-Id: <20251201100018.426749-6-flavra@baylibre.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20251201100018.426749-1-flavra@baylibre.com> References: <20251201100018.426749-1-flavra@baylibre.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2908; i=flavra@baylibre.com; h=from:subject; bh=Hb1zr2alwVQYcp7QMo+P9C4EGA5XkhpF1f4WPadLW7c=; b=owEB7QES/pANAwAKAe3xO3POlDZfAcsmYgBpLWb5TjcYUfLEOFcXnMU2lpB8wmZGiiVcFvMuJ mTWraWzVvOJAbMEAAEKAB0WIQSGV4VPlTvcox7DFObt8TtzzpQ2XwUCaS1m+QAKCRDt8TtzzpQ2 XwKdC/4yPo7OYLrz2wCIsqz/WNMYNbCJYj/1+95VGKLsCkOXpR8oYV7vAlTH6sS5WCHSrXyI0qL ARftaaLJ7AFaMnmhHXcnDKe0tYSO2zpB58PaX/WCdC1o9yrpjTsTt25tkXzmVWptUCg6vZbzCFO wod86tUpQrouL6wF+6Lt8lyfWpAOyqLEvwYJLXB6FVnSo/wscOgTimLrP7IMhx6SQxD/IfpxsqF k0HqN6WHFWm7pWtsTK7FKLlzWamHPjs3vM/mi8dLYnMrLr2A3nuOX3aWR8LexqXL9sd5EUD9gnE Z4EN4K0dNt2sAOaRL7RUptxoeqGedlkitwI1c8t4vOr53/nP2BSuZRMhn1bqO3hyJEtnRfNC/sn K9WcgxYk87GiQeKxHGn1GH+HleAl+NrPYGo7xBgwUv3zi9NvmGAm23UmGOitWxDmAS6c9omBv/z Hfm4gpRUBPjEBP6r6UecmNFlvxIoMDc4w0HVcjpbvVWTebuJ5IX4rmvpPRUc5zaN0+MGM= X-Developer-Key: i=flavra@baylibre.com; a=openpgp; fpr=8657854F953BDCA31EC314E6EDF13B73CE94365F Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This field is used to store the wakeup event detection threshold value. When adding support for more event types, some of which may have different threshold values for different axes, storing all threshold values for all event sources would be cumbersome. Thus, remove this field altogether, and read the currently configured value from the sensor when requested by userspace. Signed-off-by: Francesco Lavra Reviewed-by: Andy Shevchenko --- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 3 +-- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 12 +++++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h b/drivers/iio/imu/st_l= sm6dsx/st_lsm6dsx.h index 4200e5231950..b27a833d5107 100644 --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h @@ -79,6 +79,7 @@ enum st_lsm6dsx_hw_id { #define ST_LSM6DSX_MAX_TAGGED_WORD_LEN ((32 / ST_LSM6DSX_TAGGED_SAMPLE_SIZ= E) \ * ST_LSM6DSX_TAGGED_SAMPLE_SIZE) #define ST_LSM6DSX_SHIFT_VAL(val, mask) (((val) << __ffs(mask)) & (mask)) +#define st_lsm6dsx_field_get(mask, reg) ((reg & mask) >> __ffs(mask)) =20 #define ST_LSM6DSX_CHANNEL_ACC(chan_type, addr, mod, scan_idx) \ { \ @@ -421,7 +422,6 @@ struct st_lsm6dsx_sensor { * @sip: Total number of samples (acc/gyro/ts) in a given pattern. * @buff: Device read buffer. * @irq_routing: pointer to interrupt routing configuration. - * @event_threshold: wakeup event threshold. * @enable_event: enabled event bitmask. * @iio_devs: Pointers to acc/gyro iio_dev instances. * @settings: Pointer to the specific sensor settings in use. @@ -445,7 +445,6 @@ struct st_lsm6dsx_hw { u8 sip; =20 u8 irq_routing; - u8 event_threshold; u8 enable_event; =20 u8 *buff; diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu= /st_lsm6dsx/st_lsm6dsx_core.c index 828e495c870c..dbdf9bb9e258 100644 --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c @@ -1911,12 +1911,20 @@ static int st_lsm6dsx_read_event(struct iio_dev *ii= o_dev, { struct st_lsm6dsx_sensor *sensor =3D iio_priv(iio_dev); struct st_lsm6dsx_hw *hw =3D sensor->hw; + const struct st_lsm6dsx_reg *reg; + u8 data; + int err; =20 if (type !=3D IIO_EV_TYPE_THRESH) return -EINVAL; =20 + reg =3D &hw->settings->event_settings.sources[ST_LSM6DSX_EVENT_WAKEUP].va= lue; + err =3D st_lsm6dsx_read_locked(hw, reg->addr, &data, sizeof(data)); + if (err < 0) + return err; + *val2 =3D 0; - *val =3D hw->event_threshold; + *val =3D st_lsm6dsx_field_get(reg->mask, data); =20 return IIO_VAL_INT; } @@ -1948,8 +1956,6 @@ st_lsm6dsx_write_event(struct iio_dev *iio_dev, if (err < 0) return -EINVAL; =20 - hw->event_threshold =3D val; - return 0; } =20 --=20 2.39.5