From nobody Sun Feb 8 02:22:17 2026 Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.42]) (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 A95D02367B5 for ; Mon, 19 Jan 2026 10:23:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768818203; cv=none; b=Wyg3slVz7QCBa4FGR97WhkjBDdAeYnLWMfqAM+ZiYei7BAYvRYT0p7TKHL7qCo2HF0rquc882+bBt14hLKlYkBZ1ilDoX3uSZhqa/kSJ9u7zRslxPQbb373iC9PMZ6KdvSebw+MQKmvx4yHM5cRS6AfFI3Fb4wWYd1rCsV1jaEg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768818203; c=relaxed/simple; bh=b+ZyQVIas6VPm4FBmMWpHOQTnZTRtHnI8+5I56aAQss=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=PbWwn2J7wM9GKM7VKnQgKgQM9ZiKvpPfVLONtT1NVoQCZkaeJ1ACLDJSJEIqxwEIugvBIb09omW2VqxFhffsXdtnaPssdeduTmDFgoy0x7K3WW4hfCkXBfzYqVb8AplOJsb7eApS/ZQCi85LdArlo42aXKAvsIXfECjtKatVPVY= 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=IxEW5rUd; arc=none smtp.client-ip=209.85.208.42 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="IxEW5rUd" Received: by mail-ed1-f42.google.com with SMTP id 4fb4d7f45d1cf-64b9d01e473so6920500a12.2 for ; Mon, 19 Jan 2026 02:23:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1768818200; x=1769423000; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=/UYrTfACvfmfQSbbftCysBpcWH9BbAOUZt1KkI0uOVU=; b=IxEW5rUddT0KGrVF9mmpjuF9qhPqFe7NAqQWMekNUl2/z1ywKFc/opFqexvFpOK/uq uSLXOcyB9G+NZSCmYq+KqFqhpzp5r0ewZXVFgjRtT7RwPAmkB3N4O2DboxYXfri0mEEM LfxjcJwF33PZ2m8iAoBLy4f8OvLSao+xcEG1sYfFHsO/8a9a0VgS1Ew5WxAGSeee+yIE Vdcp4vWeEl5JIOoD1rwUCtfTeYcAyve4K4XDspmzRS8I7R36NeLrgIayjdp4VECT9juQ 45J3AnAd0SxKnqw+WeiKrH+8RyQ6g0b82OB8yszWOQF/SqIR8P2jvBj41dWBUvBnzw/9 uFPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768818200; x=1769423000; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=/UYrTfACvfmfQSbbftCysBpcWH9BbAOUZt1KkI0uOVU=; b=RKOCEhyvHcgjdgWN09DHBe2S3ar3d4l9e7yfGYoveXew2gCfxRR0RsiVpOliYPyXnp uDjjYw9ow02qsNiCVHo4jIYeZjzQVIcPMjSzBLjdTcwy4k/iWHLT+KleiDNwqAWdZeBy 063GvSeAA4ySJkW0Y1BBEYPxze8p/+B/9/qeyQaNRsLWkiwc88C+dw1wquTWDjyDOc7H XATqUJYUOVRoG14AVLrlsnh0QI+10rf4kgmivRd+yqYX5fEAo9rlYcgqbqrzywuYQe7d fvN+Suy9uopsOCXOyYHrwQTRBBPPU50b1BxmAW4+duDPQ/r+Rrry/JBaYFJzDMtIMrkR 4PQg== X-Forwarded-Encrypted: i=1; AJvYcCWHDfmL83Ob7xQAP/iVjNvRltqz1aqybM8QR4Qf0Z+Z6pnUI/VfhelzAcOpvt4HH14dmS2WnFEzXq6bYkY=@vger.kernel.org X-Gm-Message-State: AOJu0Yxo7w7uUijl22/1SLef6cV3iuJBbGzBp+EnpetREOZRWEU7qLyB 7q4FwMc8Exz7HlVwKJSSkOS0jra8oIuGl0oY18riowes7yEtO7qMURuRFoprd5Xa5X4= X-Gm-Gg: AY/fxX7AgR3KcnvfTp6eZh4pVTUihXSrFAYBR2UmT8kg3OL94bxHZor5uXEF489o6+U Jph9+jevKYii/mdZSxQVeTjxakKsRkx9OUdmVdsvWkM1078IWiIdvVX7hIydHdNS0Dc3Z0Mq0wi 1qJXMoOdfroFTaXNS/UMFp4qv65uP65nLNnSgGiHmo1qOhsg9pa6DhB7Khmq0XZVBx6/LsQGQlw Txo48Xhg5/OCk9/y/iFiPVl7WIbYTcmexCWxHIfq3gc4vPHcoH1TsDQ3iolG/ND0q0jvwiSq8cS QAmdbG5XhSELovCpdquc9GvRyK0/scr2sSvueB18dsUZhMHl2Ld/IB0qqmyVW4wdOOm4kR5X54C C4BDCoum2z/Yhjh5LMi8Qsm+eVw/K8hzhNnZ7RdNVjaFK25rHduFP090= X-Received: by 2002:a17:907:3e04:b0:b83:a6b6:ed74 with SMTP id a640c23a62f3a-b8792d59928mr807261666b.19.1768818199643; Mon, 19 Jan 2026 02:23:19 -0800 (PST) Received: from localhost ([151.37.196.5]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b879513e72asm1082041366b.11.2026.01.19.02.23.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Jan 2026 02:23:19 -0800 (PST) From: Francesco Lavra To: Ramona Gradinariu , Antoniu Miclaus , Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , David Lechner , =?UTF-8?q?Nuno=20S=C3=A1?= , Andy Shevchenko , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/2] iio: accel: adxl380: Avoid reading more entries than present in FIFO Date: Mon, 19 Jan 2026 11:23:16 +0100 Message-Id: <20260119102317.1565417-2-flavra@baylibre.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260119102317.1565417-1-flavra@baylibre.com> References: <20260119102317.1565417-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=1303; i=flavra@baylibre.com; h=from:subject; bh=b+ZyQVIas6VPm4FBmMWpHOQTnZTRtHnI8+5I56aAQss=; b=owEB7QES/pANAwAKAe3xO3POlDZfAcsmYgBpbgX9FkVZqlUNrnX4LtIpXBVJHXRIcY3Uiw5dN 8fSd/u8y3qJAbMEAAEKAB0WIQSGV4VPlTvcox7DFObt8TtzzpQ2XwUCaW4F/QAKCRDt8TtzzpQ2 X+qUC/9y8t4H8mzP+QWp13I8lR987Hrsa798RRcpruf8SdBOhpYnpwHp8ZHvqIT3kCe+dMcoEeN r3nOuzyCWtfyuKqR4eQgEwm+xPDqSJvuVYKEwCpS7sPEPSGP1bnHIp+dVwpldR1MxLkAvR36/40 SE0ZLge0hQo/H9fhtUtI/HXCRCXXyp6NLzuH37FDy8+tgjwwEm93nIvwc13dyiEPsAgN6MSiRUh aPRXqgH+Wly6X7RKt3wA+Wp0Mkyp12U04dYT/u49zgrnnASeo5tmPPVW06DcD1Kadgzpqs2a2CN L5rB5hCdkIhBVfOpoFNZbzic561Mg9cMIDUxE9PJ9dvp4nJHqdzkRPWZCGmtZnzwmy4QSpZwHkw Yr+/FJJitoE+jYuRHvEqHepkwZV/Nv4dRg5IvO8aGjvW6EczKEpXcVGsal5s7jIKejzb6M55kx+ ZHZV3/2LKQmS3tcU/yTCa3CSoBg43yWBLh7ncp5bOZyLZvGSGYMUclGxrNWrOwXVnOtHU= X-Developer-Key: i=flavra@baylibre.com; a=openpgp; fpr=8657854F953BDCA31EC314E6EDF13B73CE94365F Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The interrupt handler reads FIFO entries in batches of N samples, where N is the number of scan elements that have been enabled. However, the sensor fills the FIFO one sample at a time, even when more than one channel is enabled. Therefore,the number of entries reported by the FIFO status registers may not be a multiple of N; if this number is not a multiple, the number of entries read from the FIFO may exceed the number of entries actually present. To fix the above issue, round down the number of FIFO entries read from the status registers so that it is always a multiple of N. Fixes: df36de13677a ("iio: accel: add ADXL380 driver") Signed-off-by: Francesco Lavra --- drivers/iio/accel/adxl380.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/iio/accel/adxl380.c b/drivers/iio/accel/adxl380.c index ac20fcfd4e22..650cdbffd4a7 100644 --- a/drivers/iio/accel/adxl380.c +++ b/drivers/iio/accel/adxl380.c @@ -964,6 +964,7 @@ static irqreturn_t adxl380_irq_handler(int irq, void *= p) if (ret) return IRQ_HANDLED; =20 + fifo_entries =3D rounddown(fifo_entries, st->fifo_set_size); for (i =3D 0; i < fifo_entries; i +=3D st->fifo_set_size) { ret =3D regmap_noinc_read(st->regmap, ADXL380_FIFO_DATA, &st->fifo_buf[i], --=20 2.39.5 From nobody Sun Feb 8 02:22:17 2026 Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) (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 685EB3090FB for ; Mon, 19 Jan 2026 10:23:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768818204; cv=none; b=AWRBhWXW2Z5XPgGvdZR9PHk6fFzSAX62HUA2GTITgkWoYAqC6IOqC64iiorsxO05LHw+By/0N79e9LJUz5lWQqGwKGar3cD94Qw1ITcRAh+SYSlcokW/qFGsBAzw/WG40E5+hpXD6lGNPhrzyHoKQR63sFrI0jV0HlDHINbrxgU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768818204; c=relaxed/simple; bh=b6in0Ht1436ypEjKdmBzGtAzQIUtZlNjgIlaQ/Kz8dU=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=p7Y3QBffZnG7ngPm0LoSaKnUA5LjDpecEavMl1MM5U7lRiyHbVFs2VNxBxtzWE9USeHOKh3epDwR8tVH2zNdiIhLm/1gWDFvTARUi4T98TXrMsrot7JKpRVH2pkuEXhtJHJJGPe+7Ep3CWFjY+dKGemvJvi4R1A9czosGy5c4Zc= 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=RuwU6LYG; arc=none smtp.client-ip=209.85.208.41 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="RuwU6LYG" Received: by mail-ed1-f41.google.com with SMTP id 4fb4d7f45d1cf-6505d3b84bcso6215936a12.3 for ; Mon, 19 Jan 2026 02:23:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1768818201; x=1769423001; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=D7eVDtNz1S15iD4VZqEhzSlov8EZT29gxIYBEknUL5A=; b=RuwU6LYGs2JWIeZN8UKH1hE5GWjyRdcsC/OQe81Yx0SFmsGquHNfC1FCEsZPgAM9T6 R5BWPggVy3GYZabY1ezPczMiIQR2qehV8nswgVW8+CXC9fkexd0xlG//j6mddROC5QWQ 3TxUUxRbig9eM0Gx3hydgLL2S21vBGXYlvaHL4h+OYjIhB0oVSrGDWLtUByoUdEL6tj5 sYwwNCdOSa5YryvUdoNbg/aodB1d35MjnK6JE/94Ud1/S0mqnwATV2S+Jor1YAnaArD9 G+dDUIZpBYflA2QMErFedHuXdBC59eti9cfmoZORZSKFxYl7wpScCAqlsuxTKx8/QtLB DZVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768818201; x=1769423001; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=D7eVDtNz1S15iD4VZqEhzSlov8EZT29gxIYBEknUL5A=; b=m70oyJTZB51CW5ezY+r02lYPl47E42nco40tIZ5YPStTkNXmDtuxPqwtYvyBsNjkSN wx9jYiLIEPClDUbYOM0Cc7rkDRVulpZikWd+aT62UcbT8Z6JwyzbOdlRhmqFd6uCQvSf q/QHrivgjXjekTZGFbC6mwgDS015uidtfB3gIKPOGoYTTkTiiHAdVd4YZglob9uPVFwh Dlqn5hAN/Tsx8snHeJkGQpovoW0+/3fs0000HQzFiQTgt92jkXfF3KVq2OHVruT+/Yrf lSaPTtwRJHZP0dK4prI80JhXQKCf1ksVANsMHF8siOeIqp4rffYOp/BzfkdaqMML+WF+ ir2g== X-Forwarded-Encrypted: i=1; AJvYcCWCh9N80Oug/iKI0SGUGvs+YiR+CxDt1Hte4FqnJgs0CYaExfwJYUhIDxWHBowBHf4aw5wbOZCuMBhLl3w=@vger.kernel.org X-Gm-Message-State: AOJu0YyiTvDybZRaUdCXWVAP7qw8me0JhPM6XHCnjT05/JPMOvk3fxii OdsP8hF6sleEfJjHPml4NalUGmKlERF7Iysm11MuF+ga/WlCisDbaQIkEfiZV0EJc88= X-Gm-Gg: AY/fxX7SnY3NXpAfXK0fR07gDVZfnWdOX00IljNZ8yZMn2xUBiiZygBvWEmjYrb2Jh9 vX2KjuOZx7kRiutIVBEisDjg26oMuarEYMFhWFjm47xPo6UkjeD+W6kcKbuJMGIMWFz7pRFBV4+ GoTmMVlOh41rqS7MA/CHfk8YvmvfxYi9+Od0nGciz2Df6p/CFuCe9sqB2CJwaWUPiqScJmHHFtE x+Qk5+341uBqo36Isa5LNqrYrHQIs2HXFxt9RJSP8JVcguBnmAcIhVICZecbN7T2kQgkfw2qDCV 5sRXtgXtnNGyIlrf7ciqabClQxjRv8PwFP3Ej++UcjfqqXGRqcF3cYhtGZugFrM3XYmCv3OrlzR L7fCpiYK+aso6HJI06jHqdzLZ7TWC326j20B7Vh2tI/IL0DMfFpTAUSw= X-Received: by 2002:a17:907:702:b0:b87:2cf8:f7b2 with SMTP id a640c23a62f3a-b879324c7c0mr1047597666b.56.1768818200709; Mon, 19 Jan 2026 02:23:20 -0800 (PST) Received: from localhost ([151.37.196.5]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b87959fb973sm1041021866b.53.2026.01.19.02.23.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Jan 2026 02:23:20 -0800 (PST) From: Francesco Lavra To: Ramona Gradinariu , Antoniu Miclaus , Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , David Lechner , =?UTF-8?q?Nuno=20S=C3=A1?= , Andy Shevchenko , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/2] iio: accel: adxl380: Optimize reading of FIFO entries in interrupt handler Date: Mon, 19 Jan 2026 11:23:17 +0100 Message-Id: <20260119102317.1565417-3-flavra@baylibre.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260119102317.1565417-1-flavra@baylibre.com> References: <20260119102317.1565417-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=1332; i=flavra@baylibre.com; h=from:subject; bh=b6in0Ht1436ypEjKdmBzGtAzQIUtZlNjgIlaQ/Kz8dU=; b=owEB7QES/pANAwAKAe3xO3POlDZfAcsmYgBpbgX+f/Fu5JWFdXqfTUi8b0UQeUZZQLtzByfcW hGTcFBhIdSJAbMEAAEKAB0WIQSGV4VPlTvcox7DFObt8TtzzpQ2XwUCaW4F/gAKCRDt8TtzzpQ2 X9BDC/9LBzlxQ8Y54d/g5Wr06Tf4A6RQi5kePBMrUK06u/lYJXHr9CRhXr9756L6TgzJ9Y7amPU bzu57EKr+1UFpfCF9dMyf8eaxFT/0d8VDxVkPI7vWyf23yV3ygQlis6qtdevQwnR0KE8RP/oVvL DjJg+6CmsCn/b6KEapQ4JUwhM3X+kAEsG1fNFVDnSsugoO3DahMuM3I2DHHUUIUBn+gqr54LVBW k0rhiANhXbLAC8XCbdomvl80DAYxqpiRhUOv84R1QT+Zsf5d+Z5TBpKmuQKNZLJnq0P6Sl0CJ7S EpGv2et7KDAXiyZcYPVYq8ABLsQGCBya9twScFoXT3xcOowcV+L7SI2LKdh05W98uKFzu677Ilv RHFjjzio58IieEtUT8bDJGWYykYeiW5YOdoj2n527pR7xEryEciCgMzQa7GDY08jvExxRFm/JxB i4DSDtH2WW7tDxn3xju5fBLlZmY48Bz4JbyCoyxFiBwal2/fRquuFXVrysTUb9KJKtntc= X-Developer-Key: i=flavra@baylibre.com; a=openpgp; fpr=8657854F953BDCA31EC314E6EDF13B73CE94365F Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In order to minimize the time required for transferring FIFO data from the sensor to the host machine, perform the read from the FIFO in a single call to regmap_bulk_read(). This allows reading acceleration data for all 3 axes at 16 kHz sampling frequency using a 1MHz I2C bus frequency. Signed-off-by: Francesco Lavra --- drivers/iio/accel/adxl380.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/iio/accel/adxl380.c b/drivers/iio/accel/adxl380.c index 650cdbffd4a7..e3e6b182eb3d 100644 --- a/drivers/iio/accel/adxl380.c +++ b/drivers/iio/accel/adxl380.c @@ -965,14 +965,12 @@ static irqreturn_t adxl380_irq_handler(int irq, void = *p) return IRQ_HANDLED; =20 fifo_entries =3D rounddown(fifo_entries, st->fifo_set_size); - for (i =3D 0; i < fifo_entries; i +=3D st->fifo_set_size) { - ret =3D regmap_noinc_read(st->regmap, ADXL380_FIFO_DATA, - &st->fifo_buf[i], - 2 * st->fifo_set_size); - if (ret) - return IRQ_HANDLED; + ret =3D regmap_noinc_read(st->regmap, ADXL380_FIFO_DATA, &st->fifo_buf, + sizeof(*st->fifo_buf) * fifo_entries); + if (ret) + return IRQ_HANDLED; + for (i =3D 0; i < fifo_entries; i +=3D st->fifo_set_size) iio_push_to_buffers(indio_dev, &st->fifo_buf[i]); - } =20 return IRQ_HANDLED; } --=20 2.39.5