From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (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 5075038F956 for ; Wed, 25 Feb 2026 10:06:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.49 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772013976; cv=none; b=BzR0C/H+B20CzlbrOX1LiLFhj+lOwAOBJAD/7CV5oIdAAYF27F5wPGO73YJrRO01A+dEUT2r16LDFDPVx2NkBtoruPs0M2/jyN/yHImLhVST2WcwPvvLjy0usRqTnazBMFl/Pv00KgAwR6rJLsnAVEB2GENvvRSjBSDDcI4Edp8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772013976; c=relaxed/simple; bh=MkM0A/HsyN7aXTv8muMJJ3kq/6hFQVpMJ9om7R8iWDM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=KVYNxd4BI+dTgWrAhfA8sqrebeG6naGtw/VP2zS2Wra+07d2yX+rUpa25Qi4wipP/rCo+rjKP68cocrC+jLj+5DWLOYv4AmetNLXc8g4DXmxaenFI/A5EZ4PRq8nL4FussnW4pfd92uJcyATBRWNstw222SGMvRr3YO2s2Bczkc= 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=i8DLkWSD; arc=none smtp.client-ip=209.85.128.49 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="i8DLkWSD" Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-4806f3fc50bso72744645e9.0 for ; Wed, 25 Feb 2026 02:06:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1772013974; x=1772618774; 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=X2z+T2tcANuxuNpL/O66Pi5lTdKISXJnPtDtrt0skqs=; b=i8DLkWSDhhAtSSh3RD18nM8hYzTQ67HB9LkQ3AwzdSg+yLn7aUOmSaEhFiJkN2WIcl kegq7gRoWXsUTbVZWPfl+bgSWWH50p7toCTBBq28Sb9Wcm+gMhwoh3vcW3kkVWaEvlVd uzO9pm5I89Y5lVhv+R0cor6pjcUBXPPPNTbyRgYmM0uTdJfjxrv2Uh7Hm3hv+8nDKavQ Hh+CLds/4RyrQE37iSItNwCB7GduDWX3AJnLHyHC8s+Gb6gbwy0MoBEi4jIjWBIxsEsZ neGe6fzVgl53Od0mGFB+utJ28nVu67WFGxOqLyrYgGU82E7FTtUcCiBsChOt9BXOieeU DfCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772013974; x=1772618774; 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=X2z+T2tcANuxuNpL/O66Pi5lTdKISXJnPtDtrt0skqs=; b=DNMLPCzNwlSA3VWc8q+dIt0tQQFAa3MwAci0p8qrRkAFScRtgYmPEnSZkXgO8wxCql r2X0K0AcKS7RHZ24NMmj5wfjnDeWXzL5Zj6VILKdu0Kk4ZW0kkjCiuLzbkNS1Q5Uk/vN i4myRCUEgK4ZH1lwZm5LXfKZdXF9UqAH3y68ka5Ls7YT2qk+sGXGlzxJCbwiSMk3EVu/ C3tkKYLFrqC4dzuIijJakM3NeX6rfT+H0cAeNiqVcRcMUTF69epreGuNoglW74o0sBVD zeqoMfsywG9bv/QfuADsJxdHwJ3ZESZXkSfB15mnVrHM1JcuDfxwlSzvBjfDMaKmh00q WePQ== X-Gm-Message-State: AOJu0Yx3X/wmLkXTlMzd+x4Ey++6iRkYXBzITNK5ExcCyWG+nZU4Bp2Q 7BucK68EW7U6FqFo++7+6d/SecvMagq/7NsAjCjmrEbeS348Ht0nU+TdltwudP//H7evggHB+IQ 2T0ko4+c= X-Gm-Gg: ATEYQzyFDes8OUEdZiwgRdpdHHkvmX+LGZMUbnsrFMI4beL2foucjgIV5b8/uvCt1v8 j9YErobLgYsPco/XkYKaQk+n6Pc/b/J6ps3P9Woq6CwhF85EPdMK4h+Bibrxvcm+5YIPB2anWXd Sdmhef9KI8o4scaryn2B1fPqW+GEYrFqgvNgcIc3i9xF/p8rHWZYoXtRBzwOd90DZE5rMTNQ4+F ZXbx3o834OnkMnc+d90QHM64rFULaEa3wu2+FgUlImZQaE/t2a3o7lOs93CXeDp1YVIqYn9IRdW LvbNDmAfz1te6K2jAKg+jWAwYywDVqmCvmhzt1fGA/mtpOAwx+OLVqWbyAqvdWGnZNId2JrPhQr EB7GE3xvnZ73a7+1qLS89YLAjtUUVmLku1lAF2uLsg8m3N1vLf1QwRrQIPFZWmiUQ3fgAKw== X-Received: by 2002:a05:600c:3b85:b0:47d:3ffa:5f03 with SMTP id 5b1f17b1804b1-483bef531f2mr33487075e9.21.1772013973523; Wed, 25 Feb 2026 02:06:13 -0800 (PST) Received: from localhost ([151.35.220.155]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-483bfcb4f8bsm19648585e9.4.2026.02.25.02.06.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Feb 2026 02:06:13 -0800 (PST) From: Francesco Lavra To: Cc: linux-kernel@vger.kernel.org Subject: [PATCH v6 2/7] iio: imu: st_lsm6dsx: Set buffer sampling frequency for accelerometer only Date: Wed, 25 Feb 2026 11:06:01 +0100 Message-Id: <20260225100608.2367061-2-flavra@baylibre.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260225100608.2367061-1-flavra@baylibre.com> References: <20260225100421.2366864-1-flavra@baylibre.com> <20260225100608.2367061-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=2119; i=flavra@baylibre.com; h=from:subject; bh=MkM0A/HsyN7aXTv8muMJJ3kq/6hFQVpMJ9om7R8iWDM=; b=owEB7QES/pANAwAKAe3xO3POlDZfAcsmYgBpnsmM8/bTUHWtdx2A2C6OfJtUtmuStD+mgbvOu BhcilH85FCJAbMEAAEKAB0WIQSGV4VPlTvcox7DFObt8TtzzpQ2XwUCaZ7JjAAKCRDt8TtzzpQ2 X8KEDACgkzBN2XPXQI0HNlpx1HOaB+wCNO1MGZOndllWwAc7xiq+nvAFAP5FxpzJh84iQvRa5Ur wj1WQz5GscpcFPR/ujlsBunqHxztMmvTi3dg+By4Qu3PtT6BrDYsBCLtPTshSPJ0N+KCuYkItRA Qp6WXCYP5NFCNrg6AeYD7IFOQ7PgoeGb0SjQaaPaQXAvUFwgkvPS5ICJLHyW88+5U+fAIxD0AQ+ 8v4+RTBqJE3vN74Spi9cpY4uPahikCLPqLNSUs9/vHwlkVKEbBzM2UjwGTOA4Ws8riOD+OqRxzS +mXkwHmLqD23k/xQ+//IxA1I1xJyciaM3l9j8ktVE5e4BOvN8Ix2xoUs+OLxJVbJUUgX4z+TlM9 EIknseUH+xFlC48b2cnAbrsoYJDL9JdcQ7+wxTImjE8l9JlVMJ+7CpvrMjeO8afEAL5bFxxKEoW G0+kSPucMfcfXsUFiuvKyc4Yve14+mq5nNUOtraD7yleJktcurxV6ck15mflLA8FJQJyI= X-Developer-Key: i=flavra@baylibre.com; a=openpgp; fpr=8657854F953BDCA31EC314E6EDF13B73CE94365F Content-Transfer-Encoding: 8bit The st_lsm6dsx_hwfifo_odr_store() function, which is called when userspace writes the buffer sampling frequency sysfs attribute, calls st_lsm6dsx_check_odr(), which accesses the odr_table array at index `sensor->id`; since this array is only 2 entries long, an access for any sensor type other than accelerometer or gyroscope is an out-of-bounds access. The motivation for being able to set a buffer frequency different from the sensor sampling frequency is to support use cases that need accurate event detection (which requires a high sampling frequency) while retrieving sensor data at low frequency. Since all the supported event types are generated from acceleration data only, do not create the buffer sampling frequency attribute for sensor types other than the accelerometer. Fixes: 6b648a36c200 ("iio: imu: st_lsm6dsx: Decouple sensor ODR from FIFO batch data rate") Signed-off-by: Francesco Lavra --- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c index 1ee2fc5f5f1f..5b28a3ffcc3d 100644 --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c @@ -862,12 +862,21 @@ int st_lsm6dsx_fifo_setup(struct st_lsm6dsx_hw *hw) int i, ret; for (i = 0; i < ST_LSM6DSX_ID_MAX; i++) { + const struct iio_dev_attr **attrs; + if (!hw->iio_devs[i]) continue; + /* + * For the accelerometer, allow setting FIFO sampling frequency + * values different from the sensor sampling frequency, which + * may be needed to keep FIFO data rate low while sampling + * acceleration data at high rates for accurate event detection. + */ + attrs = i == ST_LSM6DSX_ID_ACC ? st_lsm6dsx_buffer_attrs : NULL; ret = devm_iio_kfifo_buffer_setup_ext(hw->dev, hw->iio_devs[i], &st_lsm6dsx_buffer_ops, - st_lsm6dsx_buffer_attrs); + attrs); if (ret) return ret; } -- 2.39.5