Interrupt storm on GPIO controller on AMD platforms

Bug #2027816 reported by You-Sheng Yang
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
HWE Next
New
Undecided
Unassigned
linux (Ubuntu)
Fix Released
Undecided
Unassigned
Jammy
Confirmed
Undecided
Unassigned
Lunar
Won't Fix
Undecided
Unassigned
Mantic
Fix Released
Undecided
Unassigned
linux-oem-6.1 (Ubuntu)
Invalid
Undecided
Unassigned
Jammy
Fix Released
High
You-Sheng Yang

Bug Description

On ASUS TUF A16 it is reported that the ITE5570 ACPI device connected to
GPIO 7 is causing an interrupt storm. This issue doesn't happen on
Windows.

Comparing the GPIO register configuration between Windows and Linux
bit 20 has been configured as a pull up on Windows, but not on Linux.
Checking GPIO declaration from the firmware it is clear it *should* have
been a pull up on Linux as well.

```
GpioInt (Level, ActiveLow, Exclusive, PullUp, 0x0000,
  "\\_SB.GPIO", 0x00, ResourceConsumer, ,)
{ // Pin list
0x0007
}
```

On Linux amd_gpio_set_config() is currently only used for programming
the debounce. Actually the GPIO core calls it with all the arguments
that are supported by a GPIO, pinctrl-amd just responds `-ENOTSUPP`.

To solve this issue expand amd_gpio_set_config() to support the other
arguments amd_pinconf_set() supports, namely `PIN_CONFIG_BIAS_PULL_DOWN`,
`PIN_CONFIG_BIAS_PULL_UP`, and `PIN_CONFIG_DRIVE_STRENGTH`.

Upstream bug in https://bugzilla.kernel.org/show_bug.cgi?id=217336

Related fixes are:
* v6.4:
  * commit 010f493d90ee ("pinctrl: amd: Add fields for interrupt status and wake status")
  * commit 75358cf3319d ("pinctrl: amd: Adjust debugfs output")
* v6.5-rc1:
  * commit 968ab9261627 ("pinctrl: amd: Detect internal GPIO0 debounce handling")
* linux-next:
  * commit 0d5ace1a07f7 ("pinctrl: amd: Only use special debounce behavior for GPIO 0")
  * commit 635a750d958e ("pinctrl: amd: Use amd_pinconf_set() for all config options")
  * commit 3f62312d04d4 ("pinctrl: amd: Drop pull up select configuration")
  * commit 283c5ce7da0a ("pinctrl: amd: Unify debounce handling into amd_pinconf_set()")

Revision history for this message
You-Sheng Yang (vicamo) wrote :

commit 635a750d958e ("pinctrl: amd: Use amd_pinconf_set() for all config options") is marked with:

  Fixes: 2956b5d94a76 ("pinctrl / gpio: Introduce .set_config() callback for GPIO chips")

which was landed to v4.11. It follows all the kernels ever since could suffer from the same issue here.

tags: added: amd oem-priority originate-from-2026793
Changed in linux-oem-6.1 (Ubuntu Lunar):
status: New → Invalid
Changed in linux-oem-6.1 (Ubuntu Mantic):
status: New → Invalid
Changed in linux-oem-6.1 (Ubuntu Jammy):
status: New → In Progress
importance: Undecided → High
assignee: nobody → You-Sheng Yang (vicamo)
Changed in linux (Ubuntu Mantic):
status: New → Confirmed
Changed in linux (Ubuntu Lunar):
status: New → Confirmed
Changed in linux (Ubuntu Jammy):
status: New → Confirmed
You-Sheng Yang (vicamo)
summary: - interrupt storm on GPIO controller on AMD platforms
+ Interrupt storm on GPIO controller on AMD platforms
You-Sheng Yang (vicamo)
description: updated
description: updated
Revision history for this message
Timo Aaltonen (tjaalton) wrote :

please verify oem-6.1 1022

tags: added: verification-needed-jammy-linux-oem-6.1
Revision history for this message
Timo Aaltonen (tjaalton) wrote :

oops, disregard that one, didn't land yet

tags: removed: verification-needed-jammy-linux-oem-6.1
Revision history for this message
Mario Limonciello (superm1) wrote :

These fixes all landed in 6.5-rc2, mantic and noble have them for sure, closing those tasks.
I'd expect backporting to be done for Lunar and Jammy if necessary.

Changed in linux-oem-6.1 (Ubuntu Jammy):
status: In Progress → Fix Released
Changed in linux (Ubuntu Mantic):
status: Confirmed → Fix Released
Changed in linux (Ubuntu):
status: Confirmed → Fix Released
no longer affects: linux-oem-6.1 (Ubuntu Lunar)
no longer affects: linux-oem-6.1 (Ubuntu Mantic)
Revision history for this message
Brian Murray (brian-murray) wrote :

Ubuntu 23.04 (Lunar Lobster) has reached end of life, so this bug will not be fixed for that specific release.

Changed in linux (Ubuntu Lunar):
status: Confirmed → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.