On Tue, 18 Nov 2025 03:31:32 +0100, Xu, Baojun wrote:
From: Antheas Kapenekakis lkml@antheas.dev Sent: 27 October 2025 03:16 To: Ding, Shenghao; Xu, Baojun Cc: Takashi Iwai; linux-sound@vger.kernel.org; linux-kernel@vger.kernel.org; Antheas Kapenekakis; stable@vger.kernel.org Subject: [EXTERNAL] [PATCH v1 1/2] ALSA: hda/tas2781: fix speaker id retrieval for multiple probes
Currently, on ASUS projects, the TAS2781 codec attaches the speaker GPIO to the first tasdevice_priv instance using devm. This causes tas2781_read_acpi to fail on subsequent probes since the GPIO is already managed by the first device. This causes a failure on Xbox Ally X, because it has two amplifiers, and prevents us from quirking both the Xbox Ally and Xbox Ally X in the realtek codec driver.
It is unnecessary to attach the GPIO to a device as it is static. Therefore, instead of attaching it and then reading it when loading the firmware, read its value directly in tas2781_read_acpi and store it in the private data structure. Then, make reading the value non-fatal so that ASUS projects that miss a speaker pin can still work, perhaps using fallback firmware.
Fixes: 4e7035a75da9 ("ALSA: hda/tas2781: Add speaker id check for ASUS projects") Cc: stable@vger.kernel.org # 6.17 Signed-off-by: Antheas Kapenekakis lkml@antheas.dev
include/sound/tas2781.h | 2 +- .../hda/codecs/side-codecs/tas2781_hda_i2c.c | 44 +++++++++++-------- 2 files changed, 26 insertions(+), 20 deletions(-)
Reviewed-by: Baojun Xu baojun.xu@ti.com
OK, I applied both patches to for-next branch now.
For the remaining issues, let's fix on the top.
thanks,
Takashi