diff options
author | Daniel T Chen <crimsun@ubuntu.com> | 2009-12-13 16:22:58 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-12-14 05:08:39 -0500 |
commit | 01f5966d2f36f08eb6604665eade69c9f38ffaed (patch) | |
tree | 09c26e3eab404e16be54fac56f75e6bd232553e0 /sound | |
parent | 950200e2ff11daae1c5d9426703bdd494603f38b (diff) |
ALSA: hda: Fix max PCM level to 0 dB for AD1981_HP
BugLink: https://bugs.launchpad.net/bugs/461062
The original reporter states that PCM maxes at +12 dB and results in
very bad distortion. Cap PCM at 0 dB to resolve this symptom.
Signed-off-by: Daniel T Chen <crimsun@ubuntu.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/pci/hda/patch_analog.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c index 447eda1f6770..1a36137e13ec 100644 --- a/sound/pci/hda/patch_analog.c +++ b/sound/pci/hda/patch_analog.c | |||
@@ -1789,6 +1789,14 @@ static int patch_ad1981(struct hda_codec *codec) | |||
1789 | 1789 | ||
1790 | codec->patch_ops.init = ad1981_hp_init; | 1790 | codec->patch_ops.init = ad1981_hp_init; |
1791 | codec->patch_ops.unsol_event = ad1981_hp_unsol_event; | 1791 | codec->patch_ops.unsol_event = ad1981_hp_unsol_event; |
1792 | /* set the upper-limit for mixer amp to 0dB for avoiding the | ||
1793 | * possible damage by overloading | ||
1794 | */ | ||
1795 | snd_hda_override_amp_caps(codec, 0x11, HDA_INPUT, | ||
1796 | (0x17 << AC_AMPCAP_OFFSET_SHIFT) | | ||
1797 | (0x17 << AC_AMPCAP_NUM_STEPS_SHIFT) | | ||
1798 | (0x05 << AC_AMPCAP_STEP_SIZE_SHIFT) | | ||
1799 | (1 << AC_AMPCAP_MUTE_SHIFT)); | ||
1792 | break; | 1800 | break; |
1793 | case AD1981_THINKPAD: | 1801 | case AD1981_THINKPAD: |
1794 | spec->mixers[0] = ad1981_thinkpad_mixers; | 1802 | spec->mixers[0] = ad1981_thinkpad_mixers; |