ALSA: hda/tas2781: Ignore SUBSYS_ID not found for tas2563 projects
authorBaojun Xu <baojun.xu@ti.com>
Mon, 30 Dec 2024 06:49:10 +0000 (14:49 +0800)
committerTakashi Iwai <tiwai@suse.de>
Mon, 30 Dec 2024 10:39:39 +0000 (11:39 +0100)
Driver will return error if no SUBSYS_ID found in BIOS(acpi).
It will cause error in tas2563 projects, which have no SUBSYS_ID.

Fixes: 4e7035a75da9 ("ALSA: hda/tas2781: Add speaker id check for ASUS projects")
Signed-off-by: Baojun Xu <baojun.xu@ti.com>
Link: https://lore.kernel.org/20241223225442.1358491-1-stuart.a.hayhurst@gmail.com
Link: https://patch.msgid.link/20241230064910.1583-1-baojun.xu@ti.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/tas2781_hda_i2c.c

index 0af015806aba5747613a6e199f8b0e36d7d06002..0e42b87dadb8af7995123b6b83d4092d1d87dc6f 100644 (file)
@@ -142,6 +142,9 @@ static int tas2781_read_acpi(struct tasdevice_priv *p, const char *hid)
        }
        sub = acpi_get_subsystem_id(ACPI_HANDLE(physdev));
        if (IS_ERR(sub)) {
+               /* No subsys id in older tas2563 projects. */
+               if (!strncmp(hid, "INT8866", sizeof("INT8866")))
+                       goto end_2563;
                dev_err(p->dev, "Failed to get SUBSYS ID.\n");
                ret = PTR_ERR(sub);
                goto err;
@@ -164,6 +167,7 @@ static int tas2781_read_acpi(struct tasdevice_priv *p, const char *hid)
                p->speaker_id = NULL;
        }
 
+end_2563:
        acpi_dev_free_resource_list(&resources);
        strscpy(p->dev_name, hid, sizeof(p->dev_name));
        put_device(physdev);