handheld: GPD Win Mini 2024 gyro not working with ACPI BMI0160/BOSC0160 without legacy BMI260 driver
The working patches tested on actual GPD Win Mini 2024: https://gist.githubusercontent.com/tctinh/d07e45528f9fb965abc58bc92e886275/raw/ce02fcba236ae0da3c0167843fa102085606439c/gistfile1.txt
## Summary
The GPD Win Mini 2024 gyro does not work correctly with the current CachyOS kernel patch stack when the IMU is exposed through ACPI as `BMI0160`/`BOSC0160`.
Upstream currently routes `BMI0160` to the `bmi270` I2C driver path for `bmi260_chip_info`, but on this device that is not sufficient. A legacy dedicated BMI260 IIO driver restores the gyro on the GPD Win Mini 2024.
## Affected device
- GPD Win Mini 2024
- IMU exposed as `BMI0160` and/or `BOSC0160`
## Current behavior
- Gyro is not working without the legacy BMI260 patch
- The device is matched through the newer `bmi270` path instead of a dedicated legacy BMI260 driver
## Expected behavior
- Gyro should work out of the box on GPD Win Mini 2024
- ACPI `BMI0160`/`BOSC0160` should be handled by a driver path that works on this hardware
## Relevant technical details
- Current upstream still maps ACPI `BMI0160` in `drivers/iio/imu/bmi270/bmi270_i2c.c`
- Upstream does not ship a `drivers/iio/imu/bmi260-legacy/` driver
- A standalone patch based on a legacy BMI260 IIO driver fixes the issue locally
## Version scope
- 7.0 series: still relevant as a candidate contribution, because the current kernel code still uses the `bmi270` match path and does not include a legacy BMI260 driver
- 6.9 series: the standalone patch is not directly applicable as-is, because upstream 6.9 did not yet carry the same `bmi270` IIO layout; this would need a separate backport instead of reusing the exact same patch
## Proposed direction
- Add a versioned handheld/BMI260 legacy patch for maintained CachyOS kernel branches that still need it
- Gate the `BMI0160` ACPI match in `bmi270_i2c.c` when `CONFIG_BMI260_LEGACY_I2C` is enabled
- Keep `BMI0260` on the existing upstream `bmi270` path
## Extra note
I have a standalone patch that adds:
- `drivers/iio/imu/bmi260-legacy/`
- Kconfig/Makefile hooks under `drivers/iio/imu/`
- ACPI IDs `BOSC0160` and `BMI0160` for the legacy driver
- a guard in `drivers/iio/imu/bmi270/bmi270_i2c.c` to avoid matching `BMI0160` there when the legacy driver is enabled
If this approach is acceptable, I can send a PR rebased into the repo's numbered patch format for the relevant kernel branch.
关闭于 2026-03-17 3 条评论