* [PATCH v3 0/2] iio: imu: st_lsm6dsx: Add ACPI ID SMOCF05 (Minisforum V3 / V3 SE)
@ 2026-09-27 22:05 Jared Wuerzburger
2026-09-27 22:05 ` [PATCH v3 1/2] iio: imu: st_lsm6dsx: Drop trailing comma in ACPI match table entries Jared Wuerzburger
2026-09-27 22:05 ` [PATCH v3 2/2] iio: imu: st_lsm6dsx: Add ACPI ID SMOCF05 for LSM6DS3TR-C Jared Wuerzburger
0 siblings, 2 replies; 5+ messages in thread
From: Jared Wuerzburger @ 2026-09-27 22:05 UTC (permalink / raw)
To: Jonathan Cameron, Lorenzo Bianconi
Cc: David Lechner, Nuno Sá,
Andy Shevchenko, linux-iio, linux-kernel, Samuel Dionne-Riel,
Jared Wuerzburger
Hi,
This picks up Samuel's series adding the SMOCF05 ACPI ID for the
LSM6DS3TR-C [1][2], which stalled after the v2 review. The Minisforum V3
and V3 SE tablets both use this ID; without a DSDT override their
accelerometer and gyroscope are missing, and owners currently carry one
just to get screen rotation [3].
I own a V3 and would like to see this merged, so I followed the path
the SMOCF00 patch took [4]:
- Patch 2/2 only adds the ID; the SLA0/SLG0 mount matrix patch is
dropped. Orientation is handled in userspace via hwdb, and I will
send the systemd hwdb entry separately. That also addresses the
patch-order concern from the v2 review.
- The DSDT excerpt and the tested machines are now in the changelog
(full excerpt below), as Andy asked.
- Patch 1/2 is the trailing-comma cleanup Andy suggested, split out
and applied to the existing entries too.
Samuel stays the author of 2/2; my edits are noted in the tags.
Changes since v2:
- Dropped "Add alternative ACPI mount matrix retrieval".
- Split the trailing-comma cleanup into its own patch, covering SMOCF00
as well.
- Changelog of the ID patch: DSDT excerpt, machines, test results.
The V3 BIOS (1.06) declares the device exactly like the V3 SE's:
Device (STS)
{
Name (_HID, EisaId ("SMOCF05"))
Name (_CID, EisaId ("SMOCF05"))
Name (_UID, Zero)
Method (_STA, 0, NotSerialized)
{
Return (0x0F)
}
Method (_CRS, 0, NotSerialized)
{
Name (RBUF, ResourceTemplate ()
{
I2cSerialBusV2 (0x006A, ControllerInitiated, 0x00061A80,
AddressingMode7Bit, "\\_SB.I2CD",
0x00, ResourceConsumer, , Exclusive,
RawDataBuffer (0x04)
{
0x53, 0x4C, 0x41, 0x30
})
I2cSerialBusV2 (0x006A, ControllerInitiated, 0x00061A80,
AddressingMode7Bit, "\\_SB.I2CD",
0x00, ResourceConsumer, , Exclusive,
RawDataBuffer (0x04)
{
0x53, 0x4C, 0x47, 0x30
})
GpioInt (Edge, ActiveHigh, Exclusive, PullNone, 0x0000,
"\\_SB.GPIO", 0x00, ResourceConsumer, ,
RawDataBuffer (0x04)
{
0x53, 0x4C, 0x41, 0x30
})
{
0x0009
}
})
Return (RBUF) /* \_SB_.I2CD.STS_._CRS.RBUF */
}
Method (SLA0, 0, NotSerialized)
{
Name (RBUF, Package (0x03)
{
"-1 0 0",
"0 -1 0",
"0 0 -1"
})
Return (RBUF) /* \_SB_.I2CD.STS_.SLA0.RBUF */
}
Method (SLG0, 0, NotSerialized)
{
Name (RBUF, Package (0x03)
{
"1 0 0",
"0 1 0",
"0 0 1"
})
Return (RBUF) /* \_SB_.I2CD.STS_.SLG0.RBUF */
}
}
On the V3 with this series and the stock firmware tables, the driver
binds to i2c-SMOCF05:00, WHO_AM_I reads 0x6a, and both
lsm6ds3tr-c_accel and lsm6ds3tr-c_gyro are registered. Screen
auto-rotation works through iio-sensor-proxy with the mount matrix
-1 0 0; 0 -1 0; 0 0 -1 (the firmware's SLA0), applied via hwdb.
Thanks to Samuel for the original series and to the v2 reviewers for
the feedback. The patches and changelogs were prepared with the help of
an AI coding assistant; I reviewed them and tested the result on my V3.
[1] v1: https://lore.kernel.org/linux-iio/20251223025351.3099978-2-samuel@dionne-riel.com/
[2] v2: https://lore.kernel.org/linux-iio/20260201225450.1649001-2-samuel@dionne-riel.com/
[3] https://github.com/mudkipme/awesome-minisforum-v3/issues/2
[4] https://lore.kernel.org/linux-iio/20260324193626.77231-1-twoexem@gmail.com/
Samuel Dionne-Riel (1):
iio: imu: st_lsm6dsx: Add ACPI ID SMOCF05 for LSM6DS3TR-C
Jared Wuerzburger (1):
iio: imu: st_lsm6dsx: Drop trailing comma in ACPI match table entries
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
base-commit: d8c0f48f0b1583308a98401c0c7b1a65d1d43a6c
--
2.55.0
^ permalink raw reply [flat|nested] 5+ messages in thread* [PATCH v3 1/2] iio: imu: st_lsm6dsx: Drop trailing comma in ACPI match table entries
2026-09-27 22:05 [PATCH v3 0/2] iio: imu: st_lsm6dsx: Add ACPI ID SMOCF05 (Minisforum V3 / V3 SE) Jared Wuerzburger
@ 2026-09-27 22:05 ` Jared Wuerzburger
2026-09-28 9:09 ` Andy Shevchenko
2026-09-27 22:05 ` [PATCH v3 2/2] iio: imu: st_lsm6dsx: Add ACPI ID SMOCF05 for LSM6DS3TR-C Jared Wuerzburger
1 sibling, 1 reply; 5+ messages in thread
From: Jared Wuerzburger @ 2026-09-27 22:05 UTC (permalink / raw)
To: Jonathan Cameron, Lorenzo Bianconi
Cc: David Lechner, Nuno Sá,
Andy Shevchenko, linux-iio, linux-kernel, Samuel Dionne-Riel,
Jared Wuerzburger, Andy Shevchenko
The trailing comma after the last member of an initializer is only
useful when more members may follow, which is never the case for an
acpi_device_id entry. Drop it, as suggested during review of an earlier
version of the next patch.
Link: https://lore.kernel.org/linux-iio/aVFmec8JA6ZX18il@smile.fi.intel.com/
Suggested-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Jared Wuerzburger <jwuerz@gmail.com>
---
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
index edec898cb..fbf4e4ecc 100644
--- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
+++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
@@ -143,8 +143,8 @@ static const struct of_device_id st_lsm6dsx_i2c_of_match[] = {
MODULE_DEVICE_TABLE(of, st_lsm6dsx_i2c_of_match);
static const struct acpi_device_id st_lsm6dsx_i2c_acpi_match[] = {
- { "SMO8B30", ST_LSM6DS3TRC_ID, },
- { "SMOCF00", ST_LSM6DSO_ID, },
+ { "SMO8B30", ST_LSM6DS3TRC_ID },
+ { "SMOCF00", ST_LSM6DSO_ID },
{ }
};
MODULE_DEVICE_TABLE(acpi, st_lsm6dsx_i2c_acpi_match);
--
2.55.0
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH v3 1/2] iio: imu: st_lsm6dsx: Drop trailing comma in ACPI match table entries
2026-09-27 22:05 ` [PATCH v3 1/2] iio: imu: st_lsm6dsx: Drop trailing comma in ACPI match table entries Jared Wuerzburger
@ 2026-09-28 9:09 ` Andy Shevchenko
0 siblings, 0 replies; 5+ messages in thread
From: Andy Shevchenko @ 2026-09-28 9:09 UTC (permalink / raw)
To: Jared Wuerzburger
Cc: Jonathan Cameron, Lorenzo Bianconi, David Lechner, Nuno Sá,
Andy Shevchenko, linux-iio, linux-kernel, Samuel Dionne-Riel
On Sun, Sep 27, 2026 at 05:05:58PM -0500, Jared Wuerzburger wrote:
> The trailing comma after the last member of an initializer is only
> useful when more members may follow, which is never the case for an
> acpi_device_id entry. Drop it, as suggested during review of an earlier
> version of the next patch.
> Link: https://lore.kernel.org/linux-iio/aVFmec8JA6ZX18il@smile.fi.intel.com/
> Suggested-by: Andy Shevchenko <andriy.shevchenko@intel.com>
> Assisted-by: Claude:claude-opus-5-5
Assisted-by: LLM
> Signed-off-by: Jared Wuerzburger <jwuerz@gmail.com>
...
> static const struct acpi_device_id st_lsm6dsx_i2c_acpi_match[] = {
> - { "SMO8B30", ST_LSM6DS3TRC_ID, },
> - { "SMOCF00", ST_LSM6DSO_ID, },
> + { "SMO8B30", ST_LSM6DS3TRC_ID },
> + { "SMOCF00", ST_LSM6DSO_ID },
> { }
> };
Thanks, but while at it, also switch to C99 initialisers to avoid an additional
churn (there is ongoing activity to switch all ID tables to use C99 initialisers).
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v3 2/2] iio: imu: st_lsm6dsx: Add ACPI ID SMOCF05 for LSM6DS3TR-C
2026-09-27 22:05 [PATCH v3 0/2] iio: imu: st_lsm6dsx: Add ACPI ID SMOCF05 (Minisforum V3 / V3 SE) Jared Wuerzburger
2026-09-27 22:05 ` [PATCH v3 1/2] iio: imu: st_lsm6dsx: Drop trailing comma in ACPI match table entries Jared Wuerzburger
@ 2026-09-27 22:05 ` Jared Wuerzburger
2026-09-28 9:13 ` Andy Shevchenko
1 sibling, 1 reply; 5+ messages in thread
From: Jared Wuerzburger @ 2026-09-27 22:05 UTC (permalink / raw)
To: Jonathan Cameron, Lorenzo Bianconi
Cc: David Lechner, Nuno Sá,
Andy Shevchenko, linux-iio, linux-kernel, Samuel Dionne-Riel,
Jared Wuerzburger
From: Samuel Dionne-Riel <samuel@dionne-riel.com>
The Minisforum V3 and V3 SE tablets declare their ST LSM6DS3TR-C IMU in
the DSDT with the hardware ID SMOCF05 instead of SMO8B30, so the driver
never binds and the accelerometer and gyroscope are missing. The
Windows driver (version 1.0.4.3) binds the LSM6DS3TR-C to both IDs.
Relevant part of the DSDT, identical on both models (full excerpt in
the cover letter):
Scope (_SB.I2CD) { Device (STS) {
Name (_HID, EisaId ("SMOCF05"))
Name (_CID, EisaId ("SMOCF05"))
_CRS: I2cSerialBusV2 (0x006A, ..., "\\_SB.I2CD") vendor data "SLA0"
I2cSerialBusV2 (0x006A, ..., "\\_SB.I2CD") vendor data "SLG0"
GpioInt (Edge, ActiveHigh, ..., "\\_SB.GPIO") { 9 } "SLA0"
Method (SLA0): "-1 0 0", "0 -1 0", "0 0 -1"
Method (SLG0): "1 0 0", "0 1 0", "0 0 1"
} }
Both I2C resources describe the same address, and the driver uses the
first one. The vendor-specific SLA0/SLG0 mount matrices are not parsed
here; the accelerometer orientation is handled in userspace through
the systemd hwdb, as for SMOCF00.
Tested on:
- V3 SE (Ryzen 7 7735U, BIOS 1.03) with this change.
- V3 (Ryzen 7 8840U, BIOS 1.06), kernel 7.2.7, with this change and
the stock firmware tables. The driver binds to i2c-SMOCF05:00, the
WHO_AM_I check passes (0x6a), and both lsm6ds3tr-c_accel and
lsm6ds3tr-c_gyro are registered. Screen auto-rotation works with
iio-sensor-proxy (checked with the device renamed to SMO8B30 via a
DSDT override, i.e. the same ST_LSM6DS3TRC_ID driver data).
Link: https://github.com/mudkipme/awesome-minisforum-v3/issues/2
Signed-off-by: Samuel Dionne-Riel <samuel@dionne-riel.com>
[Jared Wuerzburger: rewrote the changelog with the DSDT excerpt and test
results, dropped the mount matrix patch from the series]
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Jared Wuerzburger <jwuerz@gmail.com>
---
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
index fbf4e4ecc..5def1d01b 100644
--- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
+++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
@@ -145,6 +145,7 @@ MODULE_DEVICE_TABLE(of, st_lsm6dsx_i2c_of_match);
static const struct acpi_device_id st_lsm6dsx_i2c_acpi_match[] = {
{ "SMO8B30", ST_LSM6DS3TRC_ID },
{ "SMOCF00", ST_LSM6DSO_ID },
+ { "SMOCF05", ST_LSM6DS3TRC_ID },
{ }
};
MODULE_DEVICE_TABLE(acpi, st_lsm6dsx_i2c_acpi_match);
--
2.55.0
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH v3 2/2] iio: imu: st_lsm6dsx: Add ACPI ID SMOCF05 for LSM6DS3TR-C
2026-09-27 22:05 ` [PATCH v3 2/2] iio: imu: st_lsm6dsx: Add ACPI ID SMOCF05 for LSM6DS3TR-C Jared Wuerzburger
@ 2026-09-28 9:13 ` Andy Shevchenko
0 siblings, 0 replies; 5+ messages in thread
From: Andy Shevchenko @ 2026-09-28 9:13 UTC (permalink / raw)
To: Jared Wuerzburger
Cc: Jonathan Cameron, Lorenzo Bianconi, David Lechner, Nuno Sá,
Andy Shevchenko, linux-iio, linux-kernel, Samuel Dionne-Riel
On Sun, Sep 27, 2026 at 05:05:59PM -0500, Jared Wuerzburger wrote:
> The Minisforum V3 and V3 SE tablets declare their ST LSM6DS3TR-C IMU in
> the DSDT with the hardware ID SMOCF05 instead of SMO8B30, so the driver
> never binds and the accelerometer and gyroscope are missing. The
> Windows driver (version 1.0.4.3) binds the LSM6DS3TR-C to both IDs.
>
> Relevant part of the DSDT, identical on both models (full excerpt in
> the cover letter):
Don't refer to the cover letter in the commit message. Most will not understand
this pointer.
> Scope (_SB.I2CD) { Device (STS) {
> Name (_HID, EisaId ("SMOCF05"))
> Name (_CID, EisaId ("SMOCF05"))
> _CRS: I2cSerialBusV2 (0x006A, ..., "\\_SB.I2CD") vendor data "SLA0"
> I2cSerialBusV2 (0x006A, ..., "\\_SB.I2CD") vendor data "SLG0"
> GpioInt (Edge, ActiveHigh, ..., "\\_SB.GPIO") { 9 } "SLA0"
> Method (SLA0): "-1 0 0", "0 -1 0", "0 0 -1"
> Method (SLG0): "1 0 0", "0 1 0", "0 0 1"
> } }
Just ask maintainer to add a Link tag to the series instead.
> Both I2C resources describe the same address, and the driver uses the
> first one. The vendor-specific SLA0/SLG0 mount matrices are not parsed
> here; the accelerometer orientation is handled in userspace through
> the systemd hwdb, as for SMOCF00.
Hmm... But is that wrong? I mean does ACPI provide the correct data in mount
matrix?
> Tested on:
> - V3 SE (Ryzen 7 7735U, BIOS 1.03) with this change.
> - V3 (Ryzen 7 8840U, BIOS 1.06), kernel 7.2.7, with this change and
> the stock firmware tables. The driver binds to i2c-SMOCF05:00, the
> WHO_AM_I check passes (0x6a), and both lsm6ds3tr-c_accel and
> lsm6ds3tr-c_gyro are registered. Screen auto-rotation works with
> iio-sensor-proxy (checked with the device renamed to SMO8B30 via a
> DSDT override, i.e. the same ST_LSM6DS3TRC_ID driver data).
>
> Link: https://github.com/mudkipme/awesome-minisforum-v3/issues/2
Closes?
> Signed-off-by: Samuel Dionne-Riel <samuel@dionne-riel.com>
> [Jared Wuerzburger: rewrote the changelog with the DSDT excerpt and test
> results, dropped the mount matrix patch from the series]
> Assisted-by: Claude:claude-opus-5-5
Assisted-by: LLM
> Signed-off-by: Jared Wuerzburger <jwuerz@gmail.com>
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-09-28 9:13 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-27 22:05 [PATCH v3 0/2] iio: imu: st_lsm6dsx: Add ACPI ID SMOCF05 (Minisforum V3 / V3 SE) Jared Wuerzburger
2026-09-27 22:05 ` [PATCH v3 1/2] iio: imu: st_lsm6dsx: Drop trailing comma in ACPI match table entries Jared Wuerzburger
2026-09-28 9:09 ` Andy Shevchenko
2026-09-27 22:05 ` [PATCH v3 2/2] iio: imu: st_lsm6dsx: Add ACPI ID SMOCF05 for LSM6DS3TR-C Jared Wuerzburger
2026-09-28 9:13 ` Andy Shevchenko
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®