ALSA: hda - ALC888S-VC remark to ALC886
authorKailang Yang <kailang@realtek.com>
Mon, 17 Oct 2011 14:02:42 +0000 (16:02 +0200)
committerTakashi Iwai <tiwai@suse.de>
Mon, 17 Oct 2011 21:39:12 +0000 (23:39 +0200)
Signed-off-by: Kailang Yang <kailang@realtek.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_realtek.c

index b4938ccdb940a68c938cfa29aa69570f116d16d7..e78f36a528ca1b0bb815fb1e1ccdbd02f913cb64 100644 (file)
@@ -5671,7 +5671,11 @@ static int patch_alc662(struct hda_codec *codec)
 
 static int patch_alc888(struct hda_codec *codec)
 {
-       if ((alc_read_coef_idx(codec, 0) & 0x00f0)==0x0030){
+       int coef;
+
+       coef = alc_read_coef_idx(codec, 0);
+       /* For ALC887-VD ALC888S-VD */
+       if ((coef & 0x00f0) == 0x0030) {
                kfree(codec->chip_name);
                if (codec->vendor_id == 0x10ec0887)
                        codec->chip_name = kstrdup("ALC887-VD", GFP_KERNEL);
@@ -5683,6 +5687,18 @@ static int patch_alc888(struct hda_codec *codec)
                }
                return patch_alc662(codec);
        }
+
+       /* For ALC888S-VC */
+       if (codec->vendor_id == 0x10ec0888) {
+               if ((coef & 0xf0f0) == 0x3020) {
+                       kfree(codec->chip_name);
+                       codec->chip_name = kstrdup("ALC886", GFP_KERNEL);
+                       if (!codec->chip_name) {
+                               alc_free(codec);
+                               return -ENOMEM;
+                       }
+               }
+       }
        return patch_alc882(codec);
 }