[alsa-devel] Bug report - patch_realtek.c - Laptop HP COMPAQ B1900 Series
joey.jiaojg
joey.jiaojg at gmail.com
Thu Feb 16 04:41:10 CET 2012
And now this code works:
/* toggle speaker-output according to the hp-jack state */
static void alc260_b1900_automute(struct hda_codec *codec)
{
unsigned int present;
present = snd_hda_jack_detect(codec, 0x0f);
if (present) {
snd_hda_codec_write_cache(codec, 0x01, 0,
AC_VERB_SET_GPIO_MASK, 0);
snd_hda_codec_write_cache(codec, 0x01, 0,
AC_VERB_SET_GPIO_DIRECTION,
0);
snd_hda_codec_write_cache(codec, 0x01, 0,
AC_VERB_SET_GPIO_DATA,
1);
} else {
snd_hda_codec_write_cache(codec, 0x01, 0,
AC_VERB_SET_GPIO_MASK, 1);
snd_hda_codec_write_cache(codec, 0x01, 0,
AC_VERB_SET_GPIO_DIRECTION,
1);
snd_hda_codec_write_cache(codec, 0x01, 0,
AC_VERB_SET_GPIO_DATA,
0);
}
}
On 2012年02月16日 10:04, 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.
> Please noted the last two cmds, it's strange but it's true.
>
> 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
>
>
More information about the Alsa-devel
mailing list