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

Takashi Iwai tiwai at suse.de
Thu Feb 16 10:41:32 CET 2012


At Thu, 16 Feb 2012 17:38:33 +0800,
joey.jiaojg wrote:
> 
> YES, you are right on the assumption. I tried again many times of 
> SET_GPIO_DATA between 0/1, speaker/headphone switches.
> So is possible to merge into next ALSA release?

Not ready for "merge".  As mentioned, your patch can't be applied to
the latest tree.

I'll work on the better implementation of a quirk for the auto-parser
later.


Takashi

> On 2012年02月16日 17:35, Takashi Iwai wrote:
> 
> > 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