public inbox for alsa-devel@alsa-project.org
 help / color / mirror / Atom feed
From: Wu Fengguang <fengguang.wu@intel.com>
To: Takashi Iwai <tiwai@suse.de>
Cc: "alsa-devel@alsa-project.org" <alsa-devel@alsa-project.org>
Subject: Re: [PATCH] hda: enable speaker output for Compaq 6530s/6531s
Date: Sun, 16 Aug 2009 19:01:10 +0800	[thread overview]
Message-ID: <20090816110110.GA32187@localhost> (raw)
In-Reply-To: <s5hvdkoi04w.wl%tiwai@suse.de>

On Sun, Aug 16, 2009 at 05:22:23PM +0800, Takashi Iwai wrote:
> At Sun, 16 Aug 2009 16:53:17 +0800,
> Wu Fengguang wrote:
> > 
> > There are 3 causes to the silence of Compaq 6530s' internal speaker:
> > - HP pin 0x11 always return 0xffff,ffff (pin_presence=1),
> >   which automutes the speaker at module loading time.
> 
> This is odd.  Is the sense-trigger issued before reading the pin sense?

Sorry, what do you mean?  The facts I explored are:
- ad1884a_hp_automute() will be explicitly called by ad1884a_hp_init()
- ad1884a_hp_unsol_event() is never called on plug events
- I tried manually execute AC_VERB_SET_PIN_SENSE then read pin sense,
  it takes effect on the impedance, but pin_presence still remains 1.

> > - HP pin 0x11 won't emit unsol events on jack plug/unplug,
> >   so the speaker have no chance to be unmuted.
> 
> Can it be fixed with enable_msi=1 option?

Not yet, will try it.

> > - pin 0x1c must be set to PIN_OUT mode to make the speaker work
> >   this is the most weird part - line-in pin 0x1c and speaker pin 0x16
> >   seem to be unrelated.
> 
> Hm, sounds strange.

Yes. Note that the 6530s I have is a test box. Another 6531s which
is bought directly from market don't have this bug.

> > Fix the problems by
> > - add "Speaker" and "Headphone" mixers to allow hand tuning by user
> 
> It's a bit buggy because the auto-mute feature can turn on/off these
> silently.  If any, these controls have to be notified at changing the
> state via plugging.

OK. Are there code examples for doing this? Thank you!

Thanks,
Fengguang

> 
> thanks,
> 
> Takashi
> 
> > - add the 0x1c PIN_OUT quirk
> > 
> > Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
> > ---
> >  sound/pci/hda/patch_analog.c |    8 +++++++-
> >  1 file changed, 7 insertions(+), 1 deletion(-)
> > 
> > --- sound-2.6.orig/sound/pci/hda/patch_analog.c	2009-08-05 09:40:13.000000000 +0800
> > +++ sound-2.6/sound/pci/hda/patch_analog.c	2009-08-16 16:49:39.000000000 +0800
> > @@ -3717,6 +3717,8 @@ static struct snd_kcontrol_new ad1884a_l
> >  	HDA_CODEC_VOLUME("Master Playback Volume", 0x21, 0x0, HDA_OUTPUT),
> >  	HDA_CODEC_MUTE("Master Playback Switch", 0x21, 0x0, HDA_OUTPUT),
> >  	HDA_CODEC_MUTE("Dock Playback Switch", 0x12, 0x0, HDA_OUTPUT),
> > +	HDA_CODEC_MUTE("Headphone Playback Switch", 0x11, 0x0, HDA_OUTPUT),
> > +	HDA_CODEC_MUTE("Speaker Playback Switch", 0x16, 0x0, HDA_OUTPUT),
> >  	HDA_CODEC_VOLUME("PCM Playback Volume", 0x20, 0x5, HDA_INPUT),
> >  	HDA_CODEC_MUTE("PCM Playback Switch", 0x20, 0x5, HDA_INPUT),
> >  	HDA_CODEC_VOLUME("Mic Playback Volume", 0x20, 0x00, HDA_INPUT),
> > @@ -3837,8 +3839,10 @@ static struct hda_verb ad1884a_laptop_ve
> >  	{0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
> >  	{0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)},
> >  	/* Port-F pin */
> > -	{0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP},
> > +	{0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
> >  	{0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE},
> > +	/* required for compaq 6530s speaker output */
> > +	{0x1c, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
> >  	/* Port-C pin - internal mic-in */
> >  	{0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
> >  	{0x14, AC_VERB_SET_AMP_GAIN_MUTE, 0x7002}, /* raise mic as default */
> > @@ -4003,6 +4007,8 @@ static struct snd_pci_quirk ad1884a_cfg_
> >  	SND_PCI_QUIRK(0x103c, 0x3030, "HP", AD1884A_MOBILE),
> >  	SND_PCI_QUIRK(0x103c, 0x3037, "HP 2230s", AD1884A_LAPTOP),
> >  	SND_PCI_QUIRK(0x103c, 0x3056, "HP", AD1884A_MOBILE),
> > +	SND_PCI_QUIRK(0x103c, 0x30e8, "HP Compaq 6530s", AD1884A_LAPTOP),
> > +	SND_PCI_QUIRK(0x103c, 0x30e9, "HP Compaq 6531s", AD1884A_LAPTOP),
> >  	SND_PCI_QUIRK_MASK(0x103c, 0xfff0, 0x3070, "HP", AD1884A_MOBILE),
> >  	SND_PCI_QUIRK_MASK(0x103c, 0xfff0, 0x30d0, "HP laptop", AD1884A_LAPTOP),
> >  	SND_PCI_QUIRK_MASK(0x103c, 0xfff0, 0x30e0, "HP laptop", AD1884A_LAPTOP),
> > 

  reply	other threads:[~2009-08-16 11:01 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-16  8:53 [PATCH] hda: enable speaker output for Compaq 6530s/6531s Wu Fengguang
2009-08-16  9:05 ` [PATCH] hda: enable speaker output of HP 2510p Wu Fengguang
2009-08-16  9:24   ` Takashi Iwai
2009-08-16 11:03     ` Wu Fengguang
2009-08-16  9:22 ` [PATCH] hda: enable speaker output for Compaq 6530s/6531s Takashi Iwai
2009-08-16 11:01   ` Wu Fengguang [this message]
2009-08-17  6:46     ` Takashi Iwai
2009-08-18  6:33       ` Takashi Iwai
2009-08-18  7:06         ` Wu Fengguang
2009-08-19  7:56         ` Wu Fengguang
2009-08-19  8:01           ` Wu Fengguang
2009-08-19  8:50             ` Takashi Iwai
2009-08-19  8:58               ` Wu Fengguang
2009-08-19 10:12                 ` Takashi Iwai
2009-08-19  8:27       ` Wu Fengguang
2009-08-19  8:47         ` Takashi Iwai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090816110110.GA32187@localhost \
    --to=fengguang.wu@intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox