From: jlobue10 <jlobue10@xxxxxxxxx> --- drivers/iio/accel/bmc150-accel-i2c.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/iio/accel/bmc150-accel-i2c.c b/drivers/iio/accel/bmc150-accel-i2c.c index ee1ba134ad42..df7d48a35e41 100644 --- a/drivers/iio/accel/bmc150-accel-i2c.c +++ b/drivers/iio/accel/bmc150-accel-i2c.c @@ -15,6 +15,19 @@ #ifdef CONFIG_ACPI static const struct acpi_device_id bmc150_acpi_dual_accel_ids[] = { + /* + * The "BOSC0200" identifier used here is not unique to devices using + * bmc150. The same "BOSC0200" identifier is found in the ACPI tables of + * the ASUS ROG ALLY and Ayaneo AIR Plus which both use a Bosch BMI323 + * chip. This creates a conflict with duplicate ACPI identifiers which + * multiple drivers want to use. Fortunately, when the bmc150 driver + * starts to load on the ASUS ROG ALLY, the chip ID check portion fails + * (correctly) because the chip IDs received (via i2c) are unique between + * bmc150 and bmi323 and a dmesg output similar to this: + * "bmc150_accel_i2c i2c-BOSC0200:00: Invalid chip 0" can be seen. + * This allows the bmi323 driver to take over for ASUS ROG ALLY, and + * other devices using the bmi323 chip. + */ {"BOSC0200"}, {"DUAL250E"}, { } -- 2.43.0