[ALSA] hda-codec - Avoid overload of PCM volume on Cx5045 codec
authorTakashi Iwai <tiwai@suse.de>
Mon, 17 Dec 2007 13:32:49 +0000 (14:32 +0100)
committerJaroslav Kysela <perex@perex.cz>
Thu, 31 Jan 2008 16:29:37 +0000 (17:29 +0100)
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

index 68f23b823e2591f55999a09133d71a9251653cd4..a6916da73c4631b81ffeaa6f755221ef3dcb7b4b 100644 (file)
@@ -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;
 }