From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: [PATCH] ALSA: hda: Fix 0 dB offset for Lenovo Thinkpad models using AD1981 Date: Wed, 31 Mar 2010 11:48:12 +0200 Message-ID: References: <604760771003301508y214ab9cco7eb8e8935cbb5119@mail.gmail.com> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by alsa0.perex.cz (Postfix) with ESMTP id 200B810380C for ; Wed, 31 Mar 2010 11:48:13 +0200 (CEST) In-Reply-To: <604760771003301508y214ab9cco7eb8e8935cbb5119@mail.gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: alsa-devel-bounces@alsa-project.org Errors-To: alsa-devel-bounces@alsa-project.org To: Daniel Chen Cc: alsa-devel , stable@kernel.org List-Id: alsa-devel@alsa-project.org At Tue, 30 Mar 2010 15:08:15 -0700, Daniel Chen wrote: > > Hi, > > Attached is a patch against sound-2.6 master HEAD (applicable to > 2.6.32.y and 2.6.33.y) that clamps the 0 dB offset accordingly. Applied now. Thanks. Takashi > > Best, > -Dan > [2 0001-ALSA-hda-Fix-0-dB-offset-for-Lenovo-Thinkpad-models-.patch ] > From fdf6a8727da7189f23e3cfe94140f38513144468 Mon Sep 17 00:00:00 2001 > From: Daniel T Chen > Date: Tue, 30 Mar 2010 13:29:28 -0400 > Subject: [PATCH] ALSA: hda: Fix 0 dB offset for Lenovo Thinkpad models using AD1981 > > BugLink: https://launchpad.net/bugs/551606 > > The OR's hardware distorts at PCM 100% because it does not correspond to > 0 dB. Fix this in patch_ad1981() for all models using the Thinkpad > quirk. > > Reported-by: Jane Silber > Cc: > Signed-off-by: Daniel T Chen > --- > 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 262f5b5..9cbd80c 100644 > --- a/sound/pci/hda/patch_analog.c > +++ b/sound/pci/hda/patch_analog.c > @@ -1904,6 +1904,14 @@ static int patch_ad1981(struct hda_codec *codec) > case AD1981_THINKPAD: > spec->mixers[0] = ad1981_thinkpad_mixers; > spec->input_mux = &ad1981_thinkpad_capture_source; > + /* set the upper-limit for mixer amp to 0dB for avoiding the > + * possible damage by overloading > + */ > + snd_hda_override_amp_caps(codec, 0x11, HDA_INPUT, > + (0x17 << AC_AMPCAP_OFFSET_SHIFT) | > + (0x17 << AC_AMPCAP_NUM_STEPS_SHIFT) | > + (0x05 << AC_AMPCAP_STEP_SIZE_SHIFT) | > + (1 << AC_AMPCAP_MUTE_SHIFT)); > break; > case AD1981_TOSHIBA: > spec->mixers[0] = ad1981_hp_mixers; > -- > 1.7.0 >