Bug 199523

Summary: ACPI IRQ 7 wrong detected on HP Envy x360 - AMD Ryzen 5 2500U
Product: ACPI Reporter: Lukas Kahnert (openproggerfreak)
Component: BIOSAssignee: acpi_bios
Status: RESOLVED CODE_FIX    
Severity: normal CC: aidanjacobhahn, benjamin3992, bram.coenen96, developer, jwrdegoede, kai.heng.feng, lenb, maxime, samuel-kbugs, trougnouf
Priority: P1    
Hardware: x86-64   
OS: Linux   
Kernel Version: 4.16 Subsystem:
Regression: No Bisected commit-id:
Bug Depends on:    
Bug Blocks: 198715    
Attachments: Disassembled ACPI Table
dmesg log 4.16.4
[PATCH] pinctrl/amd: Take irq-type directly from the ACPI resource table
[PATCH] ACPI / platform: Add SMB0001 HID to forbidden_id_list

Description Lukas Kahnert 2018-04-26 15:13:12 UTC
Created attachment 275599 [details]
Disassembled ACPI Table

I tried to get the touchscreen work for HP Envy x360(Ryzen 2500u) on current kernel and found out that the Interrupt for the GPIO driver get wrong detected and configured. Maybe a typical bug in the ACPI table from BIOS.
In ACPI Table the IRQ is defined as

Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
                    {
                        0x00000007,
                    }

but in dmesg it prints

[    0.098531] ACPI: IRQ 7 override to edge, high

I just made a dirty hack to force "level, low" for this IRQ (and a change related to other bug) and the touchscreen works as expected.
But it needs a true fix in the hardware detection and configuration.
Comment 1 Lukas Kahnert 2018-04-26 15:15:39 UTC
Created attachment 275601 [details]
dmesg log 4.16.4

dmesg log of a vanilla 4.16.4 kernel
Comment 2 Hans de Goede 2018-11-19 11:37:49 UTC
Hi Lukas,

Thank you for pinpointing the problem like this for us. I don't see any really obvious nice answer here.

So I believe it is best to override the IRQ type manually in the AMD gpio driver to correct the acpi_get_override_irq() results from the ACPI core.

I've written a patch doing this, which although not really pretty should be upstreamable (and should not cause issues on other devices).

If you can give this patch a try that would be great. I will attach it here.

Regards,

Hans
Comment 3 Hans de Goede 2018-11-19 12:30:54 UTC
Created attachment 279527 [details]
[PATCH] pinctrl/amd: Take irq-type directly from the ACPI resource table
Comment 4 Hans de Goede 2018-11-20 11:08:30 UTC
Created attachment 279553 [details]
[PATCH]  ACPI / platform: Add SMB0001 HID to forbidden_id_list

So my previous patch was no good. As discussed in bug 198715 this patch actually fixes this and has been submitted upstream.

See the commit message inside the patch for a long explanation of what the problem was and how this patch fixes it.
Comment 5 Lukas Kahnert 2018-11-26 08:24:39 UTC
Patch upstream since Kernel 4.20-rc4