From nobody Sat Feb 7 06:14:12 2026 Received: from retry-chloe4.scw-tem.cloud (retry-chloe4.scw-tem.cloud [51.159.124.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 90C641DEFF5 for ; Mon, 22 Dec 2025 20:02:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=51.159.124.110 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766433764; cv=none; b=etsoK5ZgUXHIysUejk8t+EirKfu2LlCwNIfqczVs0YZKNEPznXaUJvxXWaPtRrYZJeyNzXz6++Km0yUWU41pWh36lGXEh6i3Ch1mSgpxgjha56MLEROd2ALbD19HkCCCDJt/eRqfmB8JhmiXKjXpNEutM04jGMg/J7QTrXsIXC8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766433764; c=relaxed/simple; bh=5q6Gc9RbVKHlxdGqP+DukSSwJK7nYBNLZwfn8tl5M4U=; h=Cc:Date:From:Message-Id:Mime-Version:Subject:To; b=VT1cExLkNiEEa9f0jwt8CTt1yXFxwt3sN993j1PNibkwKFXOdo0DUX9qt36mw2T/oRR3GWcBDsio+AxpXnLFQDHqu6oU0kFfbznE21ai09o6ui3GTu7C6kkRpBWf/coovskPqOE1uRX1foXEBrakPjYTxkTJQUDfUXotyDWHYoE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=augustwikerfors.se; spf=pass smtp.mailfrom=augustwikerfors.se; dkim=pass (2048-bit key) header.d=augustwikerfors.se header.i=@augustwikerfors.se header.b=KcAct/dW; arc=none smtp.client-ip=51.159.124.110 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=augustwikerfors.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=augustwikerfors.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=augustwikerfors.se header.i=@augustwikerfors.se header.b="KcAct/dW" DKIM-Signature: a=rsa-sha256; bh=L3TLn/EcvZeWtU0VY8XFMU5miek6MUe85vKchA2Nn1A=; c=relaxed/relaxed; d=augustwikerfors.se; h=to:cc:date:message-id:subject:from; s=812a4465-b64d-440c-bdd2-3148e8f56cf0; t=1766433761; v=1; b=KcAct/dW0whaqcWS/Nkcc1azuyGOr9CD6YirGqxp8RFPLss2VZsELT0rD56PFg2iSZp/NhZD Dcsr1ZnlJ7fMn+VJPDAMKxwQOJATyq2Bnef17boigp/n+pqx0UHPLmvEKqW+V1eX3jWVowJzaZa 9i7I/G2g7gw3RkiRHoH58kO06SVwMt4HyU7SuYJ5NwVcUEcm6P35DTdKjff+lTfKklu3LbHjhC/ NgkpqBT9kNrefcf04VbvrxjElpSIkGNqEppvpGM/WXJkbHYs1qihS2/q50zQR+S9/qesvZR6Bcs PPKpHfSQBKlWthEmedf4mhJioidrD3JvAUsbht6hGR5hQ== Cc: Antheas Kapenekakis , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, August Wikerfors Content-Transfer-Encoding: quoted-printable Date: Mon, 22 Dec 2025 20:47:04 +0100 From: August Wikerfors Message-Id: <20251222194704.87232-1-git@augustwikerfors.se> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 Subject: [PATCH] ALSA: hda/tas2781: properly initialize speaker_id for TAS2563 To: Shenghao Ding , Kevin Lu , Baojun Xu , Jaroslav Kysela , Takashi Iwai X-Scw-Domain: augustwikerfors.se X-Scw-Tem-Message-Id: <3f6ec5d4-3e09-4320-bb75-59b270f5dc49@retry-chloe4.scw-tem.cloud> Content-Type: text/plain; charset="utf-8" After speaker id retrieval was refactored to happen in tas2781_read_acpi, devices that do not use a speaker id need a negative speaker_id value instead of NULL, but no initialization was added to the TAS2563 code path. This causes the driver to attempt to load a non-existent firmware file name with a speaker id of 0 ("TAS2XXX38700.bin") instead of the correct file name without a speaker id ("TAS2XXX3870.bin"), resulting in low volume and these dmesg errors: tas2781-hda i2c-INT8866:00: Direct firmware load for TAS2XXX38700.bin f= ailed with error -2 tas2781-hda i2c-INT8866:00: tasdevice_dsp_parser: load TAS2XXX38700.bin= error tas2781-hda i2c-INT8866:00: dspfw load TAS2XXX38700.bin error [...] tas2781-hda i2c-INT8866:00: tasdevice_prmg_load: Firmware is NULL Fix this by setting speaker_id to -1 as is done for other models. Fixes: 945865a0ddf3 ("ALSA: hda/tas2781: fix speaker id retrieval for multi= ple probes") Cc: stable@vger.kernel.org Signed-off-by: August Wikerfors --- sound/hda/codecs/side-codecs/tas2781_hda_i2c.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sound/hda/codecs/side-codecs/tas2781_hda_i2c.c b/sound/hda/cod= ecs/side-codecs/tas2781_hda_i2c.c index c8619995b1d7..f7a7f216d586 100644 --- a/sound/hda/codecs/side-codecs/tas2781_hda_i2c.c +++ b/sound/hda/codecs/side-codecs/tas2781_hda_i2c.c @@ -111,8 +111,10 @@ static int tas2781_read_acpi(struct tasdevice_priv *p,= const char *hid) sub =3D acpi_get_subsystem_id(ACPI_HANDLE(physdev)); if (IS_ERR(sub)) { /* No subsys id in older tas2563 projects. */ - if (!strncmp(hid, "INT8866", sizeof("INT8866"))) + if (!strncmp(hid, "INT8866", sizeof("INT8866"))) { + p->speaker_id =3D -1; goto end_2563; + } dev_err(p->dev, "Failed to get SUBSYS ID.\n"); ret =3D PTR_ERR(sub); goto err; --=20 2.52.0