diff options
author | Jan200101 <sentrycraft123@gmail.com> | 2024-06-12 23:03:17 +0200 |
---|---|---|
committer | Jan200101 <sentrycraft123@gmail.com> | 2024-06-12 23:04:02 +0200 |
commit | 4ccc9dfd8e38348d527d3704b87a680ba43756cd (patch) | |
tree | 2d72166c60df258cebe6160b5943624dceb8855d /SOURCES/rog-ally-gyro-fix.patch | |
parent | d39b424f868921cd22fbfac392912a911c72bcf2 (diff) | |
download | kernel-fsync-4ccc9dfd8e38348d527d3704b87a680ba43756cd.tar.gz kernel-fsync-4ccc9dfd8e38348d527d3704b87a680ba43756cd.zip |
kernel 6.9.4
Diffstat (limited to 'SOURCES/rog-ally-gyro-fix.patch')
-rw-r--r-- | SOURCES/rog-ally-gyro-fix.patch | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/SOURCES/rog-ally-gyro-fix.patch b/SOURCES/rog-ally-gyro-fix.patch index 8416b43..bed6fc7 100644 --- a/SOURCES/rog-ally-gyro-fix.patch +++ b/SOURCES/rog-ally-gyro-fix.patch @@ -1,105 +1,4 @@ From: Jonathan LoBue <jlobue10@gmail.com> - -Adds a description of the duplicate ACPI identifier issue -between devices using bmc150 and bmi323. - -Tested-by: Hans de Goede <hdegoede@redhat.com> -Reviewed-by: Hans de Goede <hdegoede@redhat.com> -Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> -Co-developed-by: Luke D. Jones <luke@ljones.dev> -Signed-off-by: Luke D. Jones <luke@ljones.dev> -Co-developed-by: Denis Benato <benato.denis96@gmail.com> -Signed-off-by: Denis Benato <benato.denis96@gmail.com> -Co-developed-by: Antheas Kapenekakis <lkml@antheas.dev> -Signed-off-by: Antheas Kapenekakis <lkml@antheas.dev> -Signed-off-by: Jonathan LoBue <jlobue10@gmail.com> ---- - 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..353271e23235 100644 ---- a/drivers/iio/accel/bmc150-accel-i2c.c -+++ b/drivers/iio/accel/bmc150-accel-i2c.c -@@ -224,6 +224,19 @@ static const struct acpi_device_id bmc150_accel_acpi_match[] = { - {"BMA250E"}, - {"BMC150A"}, - {"BMI055A"}, -+ /* -+ * 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"}, - {"BSBA0150"}, - {"DUAL250E"}, -From: Jonathan LoBue <jlobue10@gmail.com> - -Adds the ACPI match table for ASUS ROG ALLY to load the bmi323 -driver with an ACPI match of "BOSC0200", and a comment about duplicate -ACPI identifiers between devices using the bmc150 and bmi323 chips. - -Tested-by: Hans de Goede <hdegoede@redhat.com> -Reviewed-by: Hans de Goede <hdegoede@redhat.com> -Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> -Co-developed-by: Luke D. Jones <luke@ljones.dev> -Signed-off-by: Luke D. Jones <luke@ljones.dev> -Co-developed-by: Denis Benato <benato.denis96@gmail.com> -Signed-off-by: Denis Benato <benato.denis96@gmail.com> -Co-developed-by: Antheas Kapenekakis <lkml@antheas.dev> -Signed-off-by: Antheas Kapenekakis <lkml@antheas.dev> -Signed-off-by: Jonathan LoBue <jlobue10@gmail.com> ---- - drivers/iio/imu/bmi323/bmi323_i2c.c | 20 ++++++++++++++++++++ - 1 file changed, 20 insertions(+) - -diff --git a/drivers/iio/imu/bmi323/bmi323_i2c.c b/drivers/iio/imu/bmi323/bmi323_i2c.c -index 20a8001b9956..f7550503e47e 100644 ---- a/drivers/iio/imu/bmi323/bmi323_i2c.c -+++ b/drivers/iio/imu/bmi323/bmi323_i2c.c -@@ -93,6 +93,25 @@ static int bmi323_i2c_probe(struct i2c_client *i2c) - return bmi323_core_probe(dev); - } - -+static const struct acpi_device_id bmi323_acpi_match[] = { -+ /* -+ * The "BOSC0200" identifier used here is not unique to bmi323 devices. -+ * The same "BOSC0200" identifier is found in the ACPI tables of devices -+ * using the bmc150 chip. This creates a conflict with duplicate ACPI -+ * identifiers which multiple drivers want to use. If a non-bmi323 device -+ * starts to load with this "BOSC0200" ACPI match here, then the chip -+ * ID check portion should fail because the chip IDs received (via i2c) are -+ * unique between bmc150 and bmi323 and the driver should relinquish the -+ * device. If and when a different driver (such as bmc150) starts to load -+ * with the "BOSC0200" ACPI match, a short reset should ensure that the -+ * device is not in a bad state during that driver initialization. This -+ * device reset does occur in both the bmi323 and bmc150 init sequences. -+ */ -+ { "BOSC0200" }, -+ { } -+}; -+MODULE_DEVICE_TABLE(acpi, bmi323_acpi_match); -+ - static const struct i2c_device_id bmi323_i2c_ids[] = { - { "bmi323" }, - { } -@@ -109,6 +128,7 @@ static struct i2c_driver bmi323_i2c_driver = { - .driver = { - .name = "bmi323", - .of_match_table = bmi323_of_i2c_match, -+ .acpi_match_table = bmi323_acpi_match, - }, - .probe = bmi323_i2c_probe, - .id_table = bmi323_i2c_ids, -From: Jonathan LoBue <jlobue10@gmail.com> Date: Sun, 25 Feb 2024 14:43:01 -0800 Subject: [PATCH] iio: imu: bmi323: Implement ACPI method ROTM for mount matrix |