From 801f49d3b84c18f66afb54532b54894b1b2afe2d Mon Sep 17 00:00:00 2001
From: Kailang Yang <kailang@realtek.com>
Date: Mon, 17 Oct 2011 16:02:42 +0200
Subject: [PATCH] ALSA: hda - ALC888S-VC remark to ALC886
Git-commit: 801f49d3b84c18f66afb54532b54894b1b2afe2d
Patch-mainline: 3.2-rc1
References: FATE#314311

Signed-off-by: Kailang Yang <kailang@realtek.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>

---
 sound/pci/hda/patch_realtek.c |   18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -5685,7 +5685,11 @@ static int patch_alc662(struct hda_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);
@@ -5697,6 +5701,18 @@ static int patch_alc888(struct hda_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);
 }
 
