[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <aKXlFZmIaefBPlw0@smile.fi.intel.com>
Date: Wed, 20 Aug 2025 18:09:09 +0300
From: Andy Shevchenko <andriy.shevchenko@...el.com>
To: cryolitia@...ontech.com
Cc: Alex Lanzano <lanzano.alex@...il.com>,
Jonathan Cameron <jic23@...nel.org>,
Lars-Peter Clausen <lars@...afoo.de>,
David Lechner <dlechner@...libre.com>,
Nuno Sá <nuno.sa@...log.com>,
Andy Shevchenko <andy@...nel.org>, linux-iio@...r.kernel.org,
linux-kernel@...r.kernel.org, Yao Zi <ziyao@...root.org>,
WangYuli <wangyuli@...ontech.com>, Jun Zhan <zhanjun@...ontech.com>,
Niecheng1@...ontech.com
Subject: Re: [PATCH v2] iio: imu: bmi270: Match PNP ID found on newer GPD
firmware
On Fri, Aug 15, 2025 at 06:43:26PM +0800, Cryolitia PukNgae via B4 Relay wrote:
> From: Cryolitia PukNgae <cryolitia@...ontech.com>
>
> 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
Powered by blists - more mailing lists