[alsa-devel] Bug report - patch_realtek.c - Laptop HP COMPAQ B1900 Series

Takashi Iwai tiwai at suse.de
Thu Feb 16 10:35:20 CET 2012


At Thu, 16 Feb 2012 10:04:09 +0800,
Joey Jiao wrote:
> 
> 1. I changed to model=will to test without headphone
> hda-verb /dev/snd/hwC0D0 0x0F~0x1B 0x707 0xC0 [NID=0x0F, 0x10~0x19, 0x1B]
> Result: for sure not work as GPIO not open
> 2. I changed to model=b1900 to test without headphone
> hda-verb /dev/snd/hwC0D0 0x0F~0x1B 0x707 0xC0
> Result: speaker still works. It's for sure.
> 3. Then same condition as step 2 but change 0xC0 to 0x0
> hda-verb /dev/snd/hwC0D0 0x0F~0x1B 0x707 0x0
> Result: speaker doesn't work only when NID=0x0F; then I tried
> param=0x40 and 0x80, when param=0x40, speaker works while param=0x80,
> speaker doesn't work.
> 4. Then I plugged in headphone.
> Now the param =0x40 for NID=0x0F.
> Result: Headphone works while speaker muted.
> Then I changed param=0x80. (same result when param=0xC0)
> Result: Headphone still works while speaker muted.
> 5. Then I reboot with headphone plugged in to test your step 2.
> YES, now the speaker muted while headphone works.
> Then I do your cmds:
> hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 1
> Result: headphone works, speaker muted
> hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 1
> Result: headphone muted, speaker works
> hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 1
> Result: headphone works, speaker muted
> hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0
> Result: headphone muted, speaker works.

And, if you run again
  hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 1
I guess the speaker will be muted and the headphone start working
again, right?

> Please noted the last two cmds, it's strange but it's true.

If my guess is correct, it's not strange at all.  Your machine shares
the same pin for both the headphone and the speaker outputs, but
switches between them just by GPIO-out bit 0.  It's _not_ the master
amp.

In addition, the HP-amp bit (0x80) of 0x0f seems controlling the
speaker amp.


Takashi

> 
> Any additional tests?
> 
> 在 2012年2月15日 下午11:04,Takashi Iwai <tiwai at suse.de> 写道:
> > At Wed, 15 Feb 2012 22:45:27 +0800,
> > joey.jiaojg wrote:
> >>
> >> I think the only question below is about the automute, right?
> >
> > Not really.  The most important thing is to understand what's doing
> > what.  Since your code can't be applied any longer at all to the
> > latest code tree because of the fundamental code rewrite, we need to
> > do it right.
> >
> > So, please check the following:
> >
> > 1. Does any pin correspond to the speaker output?  Try to change the
> >   pin control of each pin between 0x10 and 0x19 via hda-verb while
> >   the speaker output is active.  Does any pin change the speaker
> >   output?
> >
> > 2. Plug your headphone.  Now the speaker is muted with your patch.
> >   What happens when you run like below?
> >
> >        hda-verb /dev/snd/hwD0D0 0x01 SET_GPIO_MASK 1
> >        hda-verb /dev/snd/hwD0D0 0x01 SET_GPIO_DIR 1
> >        hda-verb /dev/snd/hwD0D0 0x01 SET_GPIO_DATA 1
> >
> >   Does the speaker starts playing again?  Then, what happens now
> >   with:
> >
> >        hda-verb /dev/snd/hwD0D0 0x01 SET_GPIO_DATA 0
> >
> >   ??
> >
> >
> > Takashi
> 
> 
> 
> -- 
> -Joey Jiao
> 


More information about the Alsa-devel mailing list