[PATCH 0/2] gpio: davinci: fix probe-time IRQ setup

From: Sahaj Chaudhari

Date: Mon Nov 09 2026 - 14:48:59 EST


This series fixes two independent probe-time bugs in the DaVinci GPIO
driver:

1. A file-global MMIO base can be overwritten by overlapping controller
probes, causing BINTEN setup to target the wrong controller.
2. Per-bank IRQ data is allocated as chained handlers are installed. A
later allocation failure can leave handlers pointing to devm-managed
data freed during probe unwind.

The first patch derives BINTEN from the current controller's mapped bank.
The second allocates all IRQ data before installing any handlers.

---
Testing:
- ARM64 W=1 Image builds passed for both patches.
- On AM642, a forced asynchronous-probe interleave made the baseline
compute the wrong BINTEN target. The test redirected the unsafe baseline
write before it reached hardware; the fixed path selected the expected
target and verified readback 0x3f.
- With targeted probe allocation failure, the baseline left one chained
handler installed; it was detached safely before devm cleanup. The fixed
path left no handlers installed and reprobed normally.

The private baseline and fixed kernels showed unexplained
TAINT_MACHINE_CHECK bit 16. No BUG/Oops/WARNING/call trace/SError was
captured; the cause remains unknown, so this is not a clean hardware-health
claim.

GitHub Copilot CLI assisted with investigating the bugs and drafting the
fixes. The submitter reviewed the code and personally ran both board tests.

Sahaj Chaudhari (2):
gpio: davinci: use controller-specific MMIO for BINTEN
gpio: davinci: allocate bank IRQ data before installing handlers

drivers/gpio/gpio-davinci.c | 28 +++++++++++++---------------
1 file changed, 13 insertions(+), 15 deletions(-)

base-commit: 4fc2c9ab68f4324bea62cb5a43e93392225f1d11

--
2.43.0