[alsa-devel] Bug report - patch_realtek.c - Laptop HP COMPAQ B1900 Series
joey.jiaojg
joey.jiaojg at gmail.com
Wed Feb 15 11:06:39 CET 2012
OK, the situation is 0x01 is to control GPIO0:
1. if I write (codec,0x01,0,AC_VERB_SET_GPIO_MASK,1) only; the result is
speaker not work.
2. if I write (codec,0x01,0,AC_VERB_SET_GPIO_DIRECTION,1) only; the
result is speaker not work.
3. If I write step 1 & 2 together, speaker works when I reboot.
4. Then If I plugged in the headphone, the headphone doesn't work. It
only works when I write
(codec,0x0F,0,AC_VERB_SET_PIN_WIDGET_CONTROL,PIN_HP).
5. From step 3 & 4, it's similar for cases that I reboot with headphone
plugged in. That is, if I remove headphone, speaker doesn't work
automatically. If I write
(codec,0x0F,0,AC_VERB_SET_PIN_WIDGET_CONTROL,PIN_OUT), the
auto-detection function works well can switch speaker/headphone
automatically.
I don't know why it's this case, and from alsa document, it seems only
enable GPIO0 will work but actually not.
On 2012年02月15日 17:58, Takashi Iwai wrote:
> At Wed, 15 Feb 2012 17:45:37 +0800,
> joey.jiaojg wrote:
>> I have tried to enable each one of them separately, and the speaker
>> doesn't work.
> Sorry, it's not clear what you meant. Each of what separately?
> And what does GPIO do exactly?
>
>> I have to use these 3 write_cache to make switch and auto-detect work
>> smoothly.
> We need to know the reason why these must be needed.
>
>
> Takashi
>
>
>> On 2012年02月15日 17:40, Takashi Iwai wrote:
>>> At Wed, 15 Feb 2012 17:31:44 +0800,
>>> joey.jiaojg wrote:
>>>> Here is the diff file.
>>> Thanks.
>>>
>>>> +/* 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);
>>> What actually this GPIO bit does on your device?
>>> To mute/unmute the speaker?
>>>
>>> If so, doesn't the speaker toggle work with just changing the
>>> pin-control of the corresponding pin?
>>>
>>>
>>> Takashi
More information about the Alsa-devel
mailing list