Re: [PATCH v2] iio: imu: bmi270: Match PNP ID found on newer GPD firmware

From: Andy Shevchenko
Date: Wed Aug 20 2025 - 11:23:36 EST


On Fri, Aug 15, 2025 at 06:43:26PM +0800, Cryolitia PukNgae via B4 Relay wrote:
> From: Cryolitia PukNgae <cryolitia@xxxxxxxxxxxxx>
>
> GPD devices originally used BMI160 sensors with the "BMI0160" PNP ID.
> When they switched to BMI260 sensors in newer hardware, they reused
> the existing Windows driver which accepts both "BMI0160" and "BMI0260"
> IDs. Consequently, they kept "BMI0160" in DSDT tables for new BMI260
> devices, causing driver mismatches in Linux.
>
> 1. GPD updated BIOS v0.40+[1] for newer devices to report "BMI0260" for
> BMI260 sensors to avoid loading bmi160 driver on Linux. While this
> isn't Bosch's VID;
> 2. Bosch's official Windows driver uses "BMI0260" as a compatible ID
> 3. We're seeing real devices shipping with "BMI0260" in DSDT
>
> The DSDT excerpt of GPD G1619-04 with BIOS v0.40:
>
> Scope (_SB.I2CC)
> {
> Device (BMA2)
> {
> Name (_ADR, Zero) // _ADR: Address
> Name (_HID, "BMI0260") // _HID: Hardware ID
> Name (_CID, "BMI0260") // _CID: Compatible ID
> Name (_DDN, "Accelerometer") // _DDN: DOS Device Name
> Name (_UID, One) // _UID: Unique ID
> Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
> {
> Name (RBUF, ResourceTemplate ()
> {
> I2cSerialBusV2 (0x0069, ControllerInitiated, 0x00061A80,
> AddressingMode7Bit, "\\_SB.I2CC",
> 0x00, ResourceConsumer, , Exclusive,
> )
> })
> Return (RBUF) /* \_SB_.I2CC.BMA2._CRS.RBUF */
> }

Everything from this line...

> OperationRegion (CMS2, SystemIO, 0x72, 0x02)
> Field (CMS2, ByteAcc, NoLock, Preserve)
> {
> IND2, 8,
> DAT2, 8
> }
>
> IndexField (IND2, DAT2, ByteAcc, NoLock, Preserve)
> {
> Offset (0x74),
> BACS, 32
> }
>
> Method (ROMS, 0, NotSerialized)
> {
> Name (RBUF, Package (0x03)
> {
> "0 -1 0",
> "-1 0 0",
> "0 0 -1"
> })
> Return (RBUF) /* \_SB_.I2CC.BMA2.ROMS.RBUF */
> }
>
> Method (CALS, 1, NotSerialized)
> {
> Local0 = Arg0
> If (((Local0 == Zero) || (Local0 == Ones)))
> {
> Return (Local0)
> }
> Else
> {
> BACS = Local0
> }
> }

> Method (_STA, 0, NotSerialized) // _STA: Status
> {
> Return (0x0F)
> }

...till this line is a noise.

> }
> }

> 1. http://download.softwincn.com/WIN%20Max%202024/Max2-7840-BIOS-V0.41.zip
>

Make it a Link tag.

Link: http://download.softwincn.com/WIN%20Max%202024/Max2-7840-BIOS-V0.41.zip #1
Signed-of-by: ...

--
With Best Regards,
Andy Shevchenko