ALSA: hda/realtek - Add new type for ALC245
authorKailang Yang <kailang@realtek.com>
Tue, 24 May 2022 08:14:04 +0000 (16:14 +0800)
committerTakashi Iwai <tiwai@suse.de>
Tue, 24 May 2022 09:00:15 +0000 (11:00 +0200)
Add new type for ALC245.

Signed-off-by: Kailang Yang <kailang@realtek.com>
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/cef26a7cd3d146eb96a3994ce79e34d2@realtek.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_realtek.c

index 4ef5aa2..80e4955 100644 (file)
@@ -3131,6 +3131,7 @@ enum {
        ALC269_TYPE_ALC257,
        ALC269_TYPE_ALC215,
        ALC269_TYPE_ALC225,
+       ALC269_TYPE_ALC245,
        ALC269_TYPE_ALC287,
        ALC269_TYPE_ALC294,
        ALC269_TYPE_ALC300,
@@ -3168,6 +3169,7 @@ static int alc269_parse_auto_config(struct hda_codec *codec)
        case ALC269_TYPE_ALC257:
        case ALC269_TYPE_ALC215:
        case ALC269_TYPE_ALC225:
+       case ALC269_TYPE_ALC245:
        case ALC269_TYPE_ALC287:
        case ALC269_TYPE_ALC294:
        case ALC269_TYPE_ALC300:
@@ -3695,7 +3697,8 @@ static void alc225_init(struct hda_codec *codec)
        hda_nid_t hp_pin = alc_get_hp_pin(spec);
        bool hp1_pin_sense, hp2_pin_sense;
 
-       if (spec->codec_variant != ALC269_TYPE_ALC287)
+       if (spec->codec_variant != ALC269_TYPE_ALC287 &&
+               spec->codec_variant != ALC269_TYPE_ALC245)
                /* required only at boot or S3 and S4 resume time */
                if (!spec->done_hp_init ||
                        is_s3_resume(codec) ||
@@ -10096,7 +10099,10 @@ static int patch_alc269(struct hda_codec *codec)
        case 0x10ec0245:
        case 0x10ec0285:
        case 0x10ec0289:
-               spec->codec_variant = ALC269_TYPE_ALC215;
+               if (alc_get_coef0(codec) & 0x0010)
+                       spec->codec_variant = ALC269_TYPE_ALC245;
+               else
+                       spec->codec_variant = ALC269_TYPE_ALC215;
                spec->shutup = alc225_shutup;
                spec->init_hook = alc225_init;
                spec->gen.mixer_nid = 0;