]> www.infradead.org Git - users/willy/xarray.git/commitdiff
ALSA: hda/ca0132 - Add AE-7 custom controls.
authorConnor McAdams <conmanx360@gmail.com>
Tue, 25 Aug 2020 20:10:38 +0000 (16:10 -0400)
committerTakashi Iwai <tiwai@suse.de>
Wed, 26 Aug 2020 08:29:19 +0000 (10:29 +0200)
Add headphone gain and DAC filter controls, which use the same commands
as the AE-5. Also, change input source enumerated control item count to
exclude front microphone.

Signed-off-by: Connor McAdams <conmanx360@gmail.com>
Link: https://lore.kernel.org/r/20200825201040.30339-20-conmanx360@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_ca0132.c

index 8c6e387344895e4d7aca6f45b9947078f52c2fba..52f6d3740e0a3050a23d7e9be8b5e50323776b1a 100644 (file)
@@ -5839,6 +5839,13 @@ static int ca0132_alt_input_source_put(struct snd_kcontrol *kcontrol,
        int sel = ucontrol->value.enumerated.item[0];
        unsigned int items = IN_SRC_NUM_OF_INPUTS;
 
+       /*
+        * The AE-7 has no front microphone, so limit items to 2: rear mic and
+        * line-in.
+        */
+       if (ca0132_quirk(spec) == QUIRK_AE7)
+               items = 2;
+
        if (sel >= items)
                return 0;
 
@@ -7029,20 +7036,25 @@ static int ca0132_build_controls(struct hda_codec *codec)
                }
        }
 
-       if (ca0132_quirk(spec) == QUIRK_AE5) {
+       switch (ca0132_quirk(spec)) {
+       case QUIRK_AE5:
+       case QUIRK_AE7:
                err = ae5_add_headphone_gain_enum(codec);
                if (err < 0)
                        return err;
                err = ae5_add_sound_filter_enum(codec);
                if (err < 0)
                        return err;
-       }
-
-       if (ca0132_quirk(spec) == QUIRK_ZXR) {
+               break;
+       case QUIRK_ZXR:
                err = zxr_add_headphone_gain_switch(codec);
                if (err < 0)
                        return err;
+               break;
+       default:
+               break;
        }
+
 #ifdef ENABLE_TUNING_CONTROLS
        add_tuning_ctls(codec);
 #endif