Skip to content

Commit e340663

Browse files
0x9fff00tiwai
authored andcommitted
ALSA: hda/tas2781: properly initialize speaker_id for TAS2563
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 failed 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: 945865a ("ALSA: hda/tas2781: fix speaker id retrieval for multiple probes") Cc: stable@vger.kernel.org Signed-off-by: August Wikerfors <git@augustwikerfors.se> Link: https://patch.msgid.link/20251222194704.87232-1-git@augustwikerfors.se Signed-off-by: Takashi Iwai <tiwai@suse.de>
1 parent 830988b commit e340663

1 file changed

Lines changed: 3 additions & 1 deletion

File tree

sound/hda/codecs/side-codecs/tas2781_hda_i2c.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,10 @@ static int tas2781_read_acpi(struct tasdevice_priv *p, const char *hid)
111111
sub = acpi_get_subsystem_id(ACPI_HANDLE(physdev));
112112
if (IS_ERR(sub)) {
113113
/* No subsys id in older tas2563 projects. */
114-
if (!strncmp(hid, "INT8866", sizeof("INT8866")))
114+
if (!strncmp(hid, "INT8866", sizeof("INT8866"))) {
115+
p->speaker_id = -1;
115116
goto end_2563;
117+
}
116118
dev_err(p->dev, "Failed to get SUBSYS ID.\n");
117119
ret = PTR_ERR(sub);
118120
goto err;

0 commit comments

Comments
 (0)