aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2007-05-29 19:01:37 +0200
committerJaroslav Kysela <perex@suse.cz>2007-07-20 11:11:22 +0200
commit807a463603a2e014f36e88317aa5e07c15887fcd (patch)
tree46cf44ff9505da1e2b8d9c5accf2077e5500f6d0 /sound
parent5d5d3bc3eddf2ad97b2cb090b92580e7fed6cee1 (diff)
downloadkernel_samsung_espresso10-807a463603a2e014f36e88317aa5e07c15887fcd.zip
kernel_samsung_espresso10-807a463603a2e014f36e88317aa5e07c15887fcd.tar.gz
kernel_samsung_espresso10-807a463603a2e014f36e88317aa5e07c15887fcd.tar.bz2
[ALSA] hda-codec - Fix STAC922x capture boost level
STAC922x provides the capture boost level up to 4, but actually it works only up to 2. Since the range of the mixer is automatically defined from amp-capability bits, we need to override the value beforehand. snd_hda_override_amp_caps() is introduced for this purpose. The function patch_stac922x() calls this for NID 0x12 (Mux Capture Volume). This should fix another recording problem on Intel Macs. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/hda/patch_sigmatel.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index dd005ed..addcb2a 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -2127,6 +2127,13 @@ static int patch_stac922x(struct hda_codec *codec)
codec->patch_ops = stac92xx_patch_ops;
+ /* Fix Mux capture level; max to 2 */
+ snd_hda_override_amp_caps(codec, 0x12, HDA_OUTPUT,
+ (0 << AC_AMPCAP_OFFSET_SHIFT) |
+ (2 << AC_AMPCAP_NUM_STEPS_SHIFT) |
+ (0x27 << AC_AMPCAP_STEP_SIZE_SHIFT) |
+ (0 << AC_AMPCAP_MUTE_SHIFT));
+
return 0;
}