From: Svyatoslav Ryhel clamor95@gmail.com
[ Upstream commit 3f973d78d176768fa7456def97f0b9824235024f ]
Correct audio-codec interrupt should be PX3 while PX1 is used for external microphone detection.
Tested-by: Winona Schroeer-Smith wolfizen@wolfizen.net # ASUS SL101 Tested-by: Antoni Aloy Torrens aaloytorrens@gmail.com # ASUS TF101 Signed-off-by: Svyatoslav Ryhel clamor95@gmail.com Signed-off-by: Thierry Reding treding@nvidia.com Signed-off-by: Sasha Levin sashal@kernel.org ---
LLM Generated explanations, may be completely bogus:
YES - routing the WM8903 IRQ to PX3 fixes a long-standing wiring bug without side effects.
- `arch/arm/boot/dts/nvidia/tegra20-asus-tf101.dts:518` currently binds the codec IRQ to `TEGRA_GPIO(X, 1)`, yet `nvidia,mic-det-gpios` already consumes that pin (`arch/arm/boot/dts/nvidia/tegra20-asus- tf101.dts:1210`), so the SoC sees mic-detect instead of codec interrupts and jack events fail. - The Tegra audio machine driver requires a separate GPIO for mic detect (`sound/soc/tegra/tegra_asoc_machine.c:459`), while the WM8903 driver depends on its IRQ line for microphone/short detection (`sound/soc/codecs/wm8903.c:1604-1710`); misrouting the IRQ leaves these user-facing features broken. - `git blame` traces the bad mapping back to the TF101 DTS introduction in commit `b405066bd3e04`, so every stable release that includes this board inherits the bug. - Other Tegra20 WM8903 boards already wire the codec IRQ to PX3 (e.g. `arch/arm/boot/dts/nvidia/tegra20-acer-a500-picasso.dts:445`, `arch/arm/boot/dts/nvidia/tegra20-seaboard.dts:344`), matching the hardware layout described by the TF101 maintainers and the commit’s Tested-by reports. - The fix is a single DTS line change with verified testers, no dependency on new infrastructure, and aligns with existing pinmux defaults, making it safe to backport while restoring microphone/jack functionality for users.
arch/arm/boot/dts/nvidia/tegra20-asus-tf101.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/nvidia/tegra20-asus-tf101.dts b/arch/arm/boot/dts/nvidia/tegra20-asus-tf101.dts index 39008816fe5ee..efd8838f9644f 100644 --- a/arch/arm/boot/dts/nvidia/tegra20-asus-tf101.dts +++ b/arch/arm/boot/dts/nvidia/tegra20-asus-tf101.dts @@ -518,7 +518,7 @@ wm8903: audio-codec@1a { reg = <0x1a>;
interrupt-parent = <&gpio>; - interrupts = <TEGRA_GPIO(X, 1) IRQ_TYPE_EDGE_BOTH>; + interrupts = <TEGRA_GPIO(X, 3) IRQ_TYPE_EDGE_BOTH>;
gpio-controller; #gpio-cells = <2>;