[PATCH AUTOSEL 7.0-5.10] pinctrl: amd: Support new ACPI ID AMDI0033

From: Sasha Levin

Date: Mon Apr 20 2026 - 10:41:06 EST


From: Basavaraj Natikar <Basavaraj.Natikar@xxxxxxx>

[ Upstream commit 127e98c05c46654867faf5f578cb56d375b89092 ]

Add AMDI0033 to the AMD GPIO ACPI match table.
This lets the driver bind on new AMD platforms that expose this HID.

Signed-off-by: Basavaraj Natikar <Basavaraj.Natikar@xxxxxxx>
Signed-off-by: Linus Walleij <linusw@xxxxxxxxxx>
Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
---

LLM Generated explanations, may be completely bogus:

## Analysis Walkthrough

### PHASE 1: COMMIT MESSAGE FORENSICS

**Step 1.1: Subject Line Parse**
Record: Subsystem `pinctrl: amd:`; action verb `Support` (effectively
"add"); summary: adds new ACPI HID `AMDI0033` to the AMD GPIO ACPI match
table.

**Step 1.2: Commit Message Tags**
Record: Tags present:
- `Signed-off-by: Basavaraj Natikar <Basavaraj.Natikar@xxxxxxx>` (AMD
vendor author)
- `Signed-off-by: Linus Walleij <linusw@xxxxxxxxxx>` (pinctrl subsystem
maintainer)
- No `Fixes:`, no `Cc: stable`, no `Reported-by:`, no `Link:` — absence
is expected for a review candidate.

**Step 1.3: Commit Body**
Record: Body states `Add AMDI0033 to the AMD GPIO ACPI match table. This
lets the driver bind on new AMD platforms that expose this HID.` No
stack traces, no crash symptoms — this is a hardware enablement patch,
not a crash fix.

**Step 1.4: Hidden Bug Fix?**
Record: Not a hidden bug fix. It is an explicit hardware-enablement (new
device ID) addition. Falls into the stable exception "NEW DEVICE IDs".

### PHASE 2: DIFF ANALYSIS

**Step 2.1: Inventory**
Record: 1 file modified, `drivers/pinctrl/pinctrl-amd.c`, +1/-0. Scope:
single-line addition inside `amd_gpio_acpi_match[]`. No functions
modified.

**Step 2.2: Code Flow Change**
Record: Before, the `acpi_device_id` table had `AMD0030`, `AMDI0030`,
`AMDI0031`. After, `AMDI0033` is an additional entry. With this change
the `amd_gpio` platform driver will match/bind on ACPI devices whose
`_HID` is `AMDI0033`.

**Step 2.3: Bug Mechanism Category**
Record: Category (h) — Hardware workaround / device ID addition. No
locking, no refcount, no error path, no memory safety change.

**Step 2.4: Fix Quality**
Record: Obviously correct. Identical in pattern to the 2021 `AMDI0031`
addition (commit `1ca46d3e43569`) and 2016 `AMDI0030` addition (commit
`42a44402ecb78`). Cannot regress existing platforms because adding an
entry to an ACPI match table only expands which devices bind; it does
not change behavior for existing IDs. Zero regression risk for systems
lacking `AMDI0033`.

### PHASE 3: GIT HISTORY INVESTIGATION

**Step 3.1: Blame**
Record: `git blame` on lines 1273–1280 shows the table was introduced in
`dbad75dd1f25e0` (Ken Xue, 2015). Prior ID additions:
- `AMDI0030` in `42a44402ecb78` (2016)
- `AMDI0031` in `1ca46d3e43569` (2021)
Both precedents for the same kind of change, and both the driver and its
ACPI table have existed since v4.1-era.

**Step 3.2: Fixes: tag**
Record: No `Fixes:` tag — N/A. This is not a bug fix commit.

**Step 3.3: Related Recent Changes**
Record: `git log --oneline -5 -- drivers/pinctrl/pinctrl-amd.c` shows
benign recent churn (header cleanup, IRQ hwirq access, PM debug
messages, treewide rename). No prerequisite refactor touches
`amd_gpio_acpi_match[]`.

**Step 3.4: Author**
Record: Basavaraj Natikar is an AMD engineer with a long history of AMD
pinctrl/platform fixes (`git log --author=Basavaraj` shows many prior
AMD pinctrl commits). The co-SoB is Linus Walleij, the pinctrl
maintainer. Both strong credibility signals.

**Step 3.5: Prerequisites**
Record: None. The match array already exists; only adds one entry.
Stands alone. Patch applies literally to the file's existing structure.

### PHASE 4: MAILING LIST RESEARCH

**Step 4.1 / 4.2: b4 dig results**
Record: `b4 dig -c 127e98c05c466` located the submission at `https://lor
e.kernel.org/all/20260327050616.3816318-1-Basavaraj.Natikar@xxxxxxx/` (a
RESEND of the initial post). `b4 dig -a` shows only a single series
version (v1 / RESEND). `b4 dig -w` shows recipients: Basavaraj Natikar,
Shyam-sundar.S-k@xxxxxxx (AMD), Linus Walleij (maintainer), `linux-
gpio@xxxxxxxxxxxxxxx`. All appropriate people were included; the pinctrl
maintainer signed it off.

Note: Lore requires interactive JS (Anubis); direct WebFetch was blocked
so I could not read thread replies. Based on the patch having only a
RESEND (no revisions) and being applied by the maintainer via his own
SoB, there is no evidence of objections. UNVERIFIED: exact thread reply
content.

**Step 4.3 / 4.4 / 4.5**
Record: No Reported-by/Link tags; no bug report to follow. Not part of a
larger dependent series (single-patch submission). No prior stable
discussion — N/A for a trivial ID add.

### PHASE 5: CODE SEMANTIC ANALYSIS

**Step 5.1–5.5**
Record: The modified entity is a data table, not a function. Impact
surface: the ACPI subsystem's platform-bus matcher reads this table at
driver registration to decide which ACPI devices the `amd_gpio` platform
driver probes. Adding an entry makes exactly one additional HID
(`AMDI0033`) bind to `amd_gpio_probe()`. Existing ID behavior is
unchanged. No other code needs updating; no quirks table search turned
up `AMDI0033` (Grep found the new ID only in `pinctrl-amd.c`).

### PHASE 6: STABLE TREE CROSS-REFERENCING

**Step 6.1: Does the code exist in stable?**
Record: The AMD pinctrl driver and its ACPI match table have existed
since 2015. Every active stable tree (5.4, 5.10, 5.15, 6.1, 6.6, 6.12,
6.17) contains `amd_gpio_acpi_match[]`. Adding one more entry applies
trivially.

**Step 6.2: Backport Complications**
Record: Clean apply expected across all active stable trees. The context
lines (`AMD0030`, `AMDI0030`, `AMDI0031` entries) are present in every
stable tree that contains the driver.

**Step 6.3: Related fixes already in stable?**
Record: No — this ID is genuinely new. Not a duplicate of anything.

### PHASE 7: SUBSYSTEM CONTEXT

**Step 7.1: Subsystem**
Record: `drivers/pinctrl/pinctrl-amd.c` — AMD GPIO/pinctrl driver used
on essentially all modern AMD client platforms (laptops/desktops).
Criticality: IMPORTANT — without this binding, GPIO-driven devices
(trackpads, PM controls, power buttons, wake sources) on affected AMD
systems may not work, and wake-from-suspend can regress.

**Step 7.2: Activity**
Record: Actively maintained; regular but modest activity. New ACPI HIDs
appear every few years as AMD rolls out new platform silicon.

### PHASE 8: IMPACT AND RISK

**Step 8.1: Who's affected**
Record: Users of new AMD platforms (SoCs/APUs) whose firmware exposes
GPIO with `_HID "AMDI0033"`. Without this patch, the `amd_gpio` driver
never binds → no pinctrl/GPIO, and anything depending on it (e.g., I2C
HID trackpads routed through AMD GPIO interrupts, wake-on-GPIO) fails.

**Step 8.2: Trigger**
Record: Triggered at every boot on affected hardware. Extremely
deterministic — it's simply whether the driver binds or not.

**Step 8.3: Failure Mode Severity**
Record: Without the patch: non-functional input/power/wake peripherals
on new AMD platforms. Not a crash, but a severe hardware-enablement
functional regression (no keyboard/trackpad/wake). Severity HIGH for
affected users.

**Step 8.4: Risk-Benefit**
Record: BENEFIT: high for owners of new AMD hardware that lands on
stable kernels. RISK: near-zero — adding an ACPI match entry cannot
break existing hardware, cannot introduce UAF/locking/corruption, and
the driver's probe path is unchanged. This is the textbook safe stable
exception.

### PHASE 9: SYNTHESIS

**Step 9.1: Evidence**
For: Exactly matches the explicit stable exception "NEW DEVICE IDs —
trivial one-line additions to existing drivers that enable hardware
support." One-line addition. Maintainer SoB. Vendor author. Long-
established driver. Prior precedent `AMDI0031` was added the same way.
Clean apply.
Against: None of substance. No Fixes:/Cc: stable (expected for review
candidates, not a negative signal per the criteria).
Unresolved: Could not read lore thread replies directly due to Anubis.

**Step 9.2: Stable Rules**
1. Obviously correct and tested? Yes — trivial table entry, in mainline
under the maintainer.
2. Fixes real issue? Yes — enables hardware that otherwise won't work.
3. Important? Yes — GPIO/pinctrl is foundational for input/power/wake on
affected AMD systems.
4. Small and contained? Yes — +1 line in one file.
5. New feature or API? No — no new API, no new uapi.
6. Applies to stable? Yes — context is ancient and unchanged.

**Step 9.3: Exception Category**
Hits the "NEW DEVICE IDs" exception explicitly.

**Step 9.4: Decision**
Classic stable-worthy one-line ACPI ID add to an existing, mature
driver. Risk is near zero; benefit is real hardware enablement on new
AMD platforms.

## Verification

- [Phase 1] Read commit subject, body, and tags; confirmed no Fixes:/Cc:
stable/Reported-by/Link tags; two SoBs (AMD author + pinctrl
maintainer Linus Walleij).
- [Phase 2] Read the diff: single entry `{ "AMDI0033", 0},` appended
between `AMDI0031` and terminator in `amd_gpio_acpi_match[]` in
`drivers/pinctrl/pinctrl-amd.c` (lines ~1273–1278). Confirmed no
function body changes.
- [Phase 2] Read `drivers/pinctrl/pinctrl-amd.c` lines 1270–1298 to
confirm context and that `MODULE_DEVICE_TABLE(acpi, ...)` is
unchanged.
- [Phase 3] `git blame drivers/pinctrl/pinctrl-amd.c -L 1273,1280`:
table introduced by `dbad75dd1f25e0` (Ken Xue, 2015); `AMDI0030` added
by `42a44402ecb78` (2016); `AMDI0031` added by `1ca46d3e43569` (2021).
Confirms long-standing driver and precedent for the same kind of
change.
- [Phase 3] `git log --oneline -5 -- drivers/pinctrl/pinctrl-amd.c`:
recent churn is benign and unrelated to the match table.
- [Phase 3] `git log --oneline --author="Basavaraj" -10 --
drivers/pinctrl/pinctrl-amd.c`: author has a substantive history of
AMD pinctrl commits — established AMD platform engineer.
- [Phase 4] `b4 dig -c 127e98c05c466`: matched by patch-id; URL `https:/
/lore.kernel.org/all/20260327050616.3816318-1-
Basavaraj.Natikar@xxxxxxx/`.
- [Phase 4] `b4 dig -c 127e98c05c466 -a`: only a single revision (v1 /
RESEND); no evolution from reviewer feedback.
- [Phase 4] `b4 dig -c 127e98c05c466 -w`: original recipients included
Linus Walleij (maintainer), linux-gpio list, and AMD reviewers —
appropriate coverage.
- [Phase 5] Grep for `AMDI003[0-9]` across the tree: new ID occurs only
in `drivers/pinctrl/pinctrl-amd.c`; existing `AMDI0030` references in
`drivers/gpio/gpiolib-acpi-quirks.c` are quirk entries not dependent
on this patch.
- [Phase 6] Confirmed by blame that the `amd_gpio_acpi_match[]` array
structure has existed since 2015, so context applies cleanly to all
active stable trees.
- [Phase 8] Impact reasoning is based on how ACPI platform driver
binding works generically (match table controls probe); no user-bug-
report was needed because the change is a pure hardware-enablement
addition.
- UNVERIFIED: I could not directly read replies on the lore thread
because lore.kernel.org is currently gated by Anubis anti-bot; however
`b4 dig -a` showed no later revisions, and the maintainer's SoB on the
committed patch indicates no unresolved objections.
- UNVERIFIED: I did not enumerate every stable branch's exact file state
because this is a workspace-only checkout; however, since all
preceding IDs (`AMDI0030`, `AMDI0031`) have been present since 2016
and 2021 respectively and the match-table block has not been
restructured, clean apply is expected on 5.4+.

This commit is a textbook stable exception: a trivial one-line ACPI
device ID addition to an existing, widely-used driver, authored by the
hardware vendor and signed off by the subsystem maintainer. Risk is
effectively zero; benefit is enabling GPIO/pinctrl on new AMD platforms
that would otherwise be non-functional.

**YES**

drivers/pinctrl/pinctrl-amd.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c
index 2af94ef564342..e3128b0045d22 100644
--- a/drivers/pinctrl/pinctrl-amd.c
+++ b/drivers/pinctrl/pinctrl-amd.c
@@ -1274,6 +1274,7 @@ static const struct acpi_device_id amd_gpio_acpi_match[] = {
{ "AMD0030", 0 },
{ "AMDI0030", 0},
{ "AMDI0031", 0},
+ { "AMDI0033", 0},
{ },
};
MODULE_DEVICE_TABLE(acpi, amd_gpio_acpi_match);
--
2.53.0