From 48ecb7e879ea172a0b3fd432ad49a870d7be6a59 Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de>
Date: Mon, 17 Dec 2007 14:32:49 +0100
Subject: [PATCH] [ALSA] hda-codec - Avoid overload of PCM volume on Cx5045
 codec

The PCM volume of Cx5045 codec has overload that isn't useful but
rather harmful.  Add a hack to override the amp info to set the max
level 0 dB.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
 sound/pci/hda/patch_conexant.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
index 68f23b823e25..a6916da73c46 100644
--- a/sound/pci/hda/patch_conexant.c
+++ b/sound/pci/hda/patch_conexant.c
@@ -826,6 +826,17 @@ static int patch_cxt5045(struct hda_codec *codec)
 		spec->init_verbs[0] = cxt5045_test_init_verbs;
 #endif	
 	}
+
+	/*
+	 * Fix max PCM level to 0 dB
+	 * (originall it has 0x2b steps with 0dB offset 0x14)
+	 */
+	snd_hda_override_amp_caps(codec, 0x17, HDA_INPUT,
+				  (0x14 << AC_AMPCAP_OFFSET_SHIFT) |
+				  (0x14 << AC_AMPCAP_NUM_STEPS_SHIFT) |
+				  (0x05 << AC_AMPCAP_STEP_SIZE_SHIFT) |
+				  (1 << AC_AMPCAP_MUTE_SHIFT));
+
 	return 0;
 }
 
-- 
2.20.1