ALSA: hda: cs35l41: Save codec object inside component struct
authorStefan Binding <sbinding@opensource.cirrus.com>
Thu, 30 Jun 2022 00:23:24 +0000 (01:23 +0100)
committerTakashi Iwai <tiwai@suse.de>
Thu, 14 Jul 2022 09:22:39 +0000 (11:22 +0200)
This is required for ALSA control support.

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-4-vitalyr@opensource.cirrus.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/cs35l41_hda.c
sound/pci/hda/cs35l41_hda.h
sound/pci/hda/hda_component.h
sound/pci/hda/patch_realtek.c

index 1a1afa0..20d3ce8 100644 (file)
@@ -117,6 +117,7 @@ static int cs35l41_hda_bind(struct device *dev, struct device *master, void *mas
                return -EBUSY;
 
        comps->dev = dev;
+       cs35l41->codec = comps->codec;
        strscpy(comps->name, dev_name(dev), sizeof(comps->name));
        comps->playback_hook = cs35l41_hda_playback_hook;
 
index a52ffd1..aaf9e16 100644 (file)
@@ -32,6 +32,7 @@ struct cs35l41_hda {
        struct regmap *regmap;
        struct gpio_desc *reset_gpio;
        struct cs35l41_hw_cfg hw_cfg;
+       struct hda_codec *codec;
 
        int irq;
        int index;
index e26c896..534e845 100644 (file)
@@ -14,5 +14,6 @@
 struct hda_component {
        struct device *dev;
        char name[HDA_MAX_NAME_SIZE];
+       struct hda_codec *codec;
        void (*playback_hook)(struct device *dev, int action);
 };
index 007dd8b..44744d5 100644 (file)
@@ -6654,6 +6654,7 @@ static void cs35l41_generic_fixup(struct hda_codec *cdc, int action, const char
                                              "%s-%s:00-cs35l41-hda.%d", bus, hid, i);
                        if (!name)
                                return;
+                       spec->comps[i].codec = cdc;
                        component_match_add(dev, &spec->match, component_compare_dev_name, name);
                }
                ret = component_master_add_with_match(dev, &comp_master_ops, spec->match);