mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
gpiolib: acpi: Ignore GPIO 11 interrupt on Acer Nitro V 16S AI
On the Acer Nitro V 16S AI (ANV16S-41) the internal USB camera (0408:4035) works on Windows but never shows up on Linux. The firmware drives GPIO 11 of AMDI0030 high to power the camera. The same pin is listed in \_SB.GPIO._AEI as an edge-triggered, active-low wake interrupt whose _EVT case only writes a debug code. gpiolib-acpi requests _AEI pins as inputs, which clears the output enable bit, so the camera loses power during boot. After boot the pin register reads 0x00447a00 (output value 1, output enable 0, line low). With the xHCI controller kept away from Linux (pci-stub), the camera port shows CSC=1, CCS=0: the camera was connected during boot and then dropped off. Booting with gpiolib_acpi.ignore_interrupt=AMDI0030:00@11 keeps the camera powered; it enumerates and works with uvcvideo. Add a DMI quirk so this works out of the box, like the existing one for the Acer Nitro V 14 on the same pin. Closes: https://lore.kernel.org/linux-usb/CAPGafdkBb49YFV+d0rYjbi4QjifCUr1Wos6C5TZtDQzN6-pn+g@mail.gmail.com/ Assisted-by: LLM Signed-off-by: Abduvaliy Abdulazizov <abduvaliy.hbai@gmail.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
This commit is contained in:
parent
8d37f20173
commit
6da1f34374
|
|
@ -343,6 +343,22 @@ static const struct dmi_system_id gpiolib_acpi_quirks[] __initconst = {
|
|||
.ignore_interrupt = "AMDI0030:00@11",
|
||||
},
|
||||
},
|
||||
{
|
||||
/*
|
||||
* GPIO 11 is the power enable of the internal USB camera.
|
||||
* The firmware drives it high but also lists it in _AEI with
|
||||
* an empty handler. Requesting it as an input turns the camera
|
||||
* off, so it never enumerates.
|
||||
* Found in BIOS V1.14
|
||||
*/
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
|
||||
DMI_MATCH(DMI_PRODUCT_FAMILY, "Acer Nitro V 16S AI"),
|
||||
},
|
||||
.driver_data = &(struct acpi_gpiolib_dmi_quirk) {
|
||||
.ignore_interrupt = "AMDI0030:00@11",
|
||||
},
|
||||
},
|
||||
{
|
||||
/*
|
||||
* Wakeup only works when keyboard backlight is turned off
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user