All of lore.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.