Patch "platform/x86: x86-android-tablets: Fix broken touchscreen on Chuwi Hi8 with Windows BIOS" has been added to the 5.19-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    platform/x86: x86-android-tablets: Fix broken touchscreen on Chuwi Hi8 with Windows BIOS

to the 5.19-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     platform-x86-x86-android-tablets-fix-broken-touchscr.patch
and it can be found in the queue-5.19 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 09be5c25e94275e818474e1eb2e158ec84434750
Author: Hans de Goede <hdegoede@xxxxxxxxxx>
Date:   Wed Aug 10 16:19:34 2022 +0200

    platform/x86: x86-android-tablets: Fix broken touchscreen on Chuwi Hi8 with Windows BIOS
    
    [ Upstream commit 2986c51540ed50ac654ffb5a772e546c02628c91 ]
    
    The x86-android-tablets handling for the Chuwi Hi8 is only necessary with
    the Android BIOS and it is causing problems with the Windows BIOS version.
    
    Specifically when trying to register the already present touchscreen
    x86_acpi_irq_helper_get() calls acpi_unregister_gsi(), this breaks
    the working of the touchscreen and also leads to an oops:
    
    [   14.248946] ------------[ cut here ]------------
    [   14.248954] remove_proc_entry: removing non-empty directory 'irq/75', leaking at least 'MSSL0001:00'
    [   14.248983] WARNING: CPU: 3 PID: 440 at fs/proc/generic.c:718 remove_proc_entry
    ...
    [   14.249293]  unregister_irq_proc+0xe0/0x100
    [   14.249305]  free_desc+0x29/0x70
    [   14.249312]  irq_free_descs+0x4b/0x80
    [   14.249320]  mp_unmap_irq+0x5c/0x60
    [   14.249329]  acpi_unregister_gsi_ioapic+0x2a/0x40
    [   14.249338]  x86_acpi_irq_helper_get+0x4b/0x190 [x86_android_tablets]
    [   14.249355]  x86_android_tablet_init+0x178/0xe34 [x86_android_tablets]
    
    Add an init callback for the Chuwi Hi8, which detects when the Windows BIOS
    is in use and exits with -ENODEV in that case, fixing this.
    
    Fixes: 84c2dcdd475f ("platform/x86: x86-android-tablets: Add an init() callback to struct x86_dev_info")
    Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/20220810141934.140771-1-hdegoede@xxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/platform/x86/x86-android-tablets.c b/drivers/platform/x86/x86-android-tablets.c
index 4803759774358..4acd6fa8d43b8 100644
--- a/drivers/platform/x86/x86-android-tablets.c
+++ b/drivers/platform/x86/x86-android-tablets.c
@@ -663,9 +663,23 @@ static const struct x86_i2c_client_info chuwi_hi8_i2c_clients[] __initconst = {
 	},
 };
 
+static int __init chuwi_hi8_init(void)
+{
+	/*
+	 * Avoid the acpi_unregister_gsi() call in x86_acpi_irq_helper_get()
+	 * breaking the touchscreen + logging various errors when the Windows
+	 * BIOS is used.
+	 */
+	if (acpi_dev_present("MSSL0001", NULL, 1))
+		return -ENODEV;
+
+	return 0;
+}
+
 static const struct x86_dev_info chuwi_hi8_info __initconst = {
 	.i2c_client_info = chuwi_hi8_i2c_clients,
 	.i2c_client_count = ARRAY_SIZE(chuwi_hi8_i2c_clients),
+	.init = chuwi_hi8_init,
 };
 
 #define CZC_EC_EXTRA_PORT	0x68



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux