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)
Status tracked in Mantic
Jammy
Confirmed
Undecided
Unassigned
Lunar
Confirmed
Undecided
Unassigned
Mantic
Confirmed
Undecided
Unassigned
linux-oem-6.1 (Ubuntu)
Status tracked in Mantic
Jammy
In Progress
High
You-Sheng Yang
Lunar
Invalid
Undecided
Unassigned
Mantic
Invalid
Undecided
Unassigned

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
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.