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

joey.jiaojg joey.jiaojg at gmail.com
Thu Feb 16 10:38:33 CET 2012


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?

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