]> git.baikalelectronics.ru Git - kernel.git/commitdiff
ALSA: hda: cs35l41: Save Subsystem ID inside CS35L41 Driver
authorStefan Binding <sbinding@opensource.cirrus.com>
Thu, 30 Jun 2022 00:23:26 +0000 (01:23 +0100)
committerTakashi Iwai <tiwai@suse.de>
Thu, 14 Jul 2022 09:23:13 +0000 (11:23 +0200)
The Subsystem ID is read from the HDA driver, and will
be used by the CS35L41 driver to be able to uniquely
identify the laptop, which is required to be able to
define firmware to be used by specific models.

Signed-off-by: Stefan Binding <sbinding@opensource.cirrus.com>
Signed-off-by: Vitaly Rodionov <vitalyr@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220630002335.366545-6-vitalyr@opensource.cirrus.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/cs35l41_hda.c
sound/pci/hda/cs35l41_hda.h

index d68d951c434ed84c90671d84def317318e5478ef..25cb76437ba52192c0e675848d8443109d5e0297 100644 (file)
@@ -355,6 +355,9 @@ static int cs35l41_hda_bind(struct device *dev, struct device *master, void *mas
                return -EBUSY;
 
        comps->dev = dev;
+       if (!cs35l41->acpi_subsystem_id)
+               cs35l41->acpi_subsystem_id = devm_kasprintf(dev, GFP_KERNEL, "%.8x",
+                                                           comps->codec->core.subsystem_id);
        cs35l41->codec = comps->codec;
        strscpy(comps->name, dev_name(dev), sizeof(comps->name));
        comps->playback_hook = cs35l41_hda_playback_hook;
index 5814af0509447a5a1c8eb3ed7c4e0e83468c1cc8..b57f59a1ba49e5a69763eccd7f834675c88be323 100644 (file)
@@ -42,6 +42,7 @@ struct cs35l41_hda {
        int channel_index;
        unsigned volatile long irq_errors;
        const char *amp_name;
+       const char *acpi_subsystem_id;
        struct mutex fw_mutex;
        struct regmap_irq_chip_data *irq_data;
        bool firmware_running;