On Wed, 04 Apr 2018 13:30:12 +0200, David Woodhouse wrote:
I have an HP EliteBook 850 G3 with CX20724:
hdaudioC0D0: CX20724: BIOS auto-probing. hdaudioC0D0: action: 0 gpio_led: 0 hdaudioC0D0: autoconfig for CX20724: line_outs=1 (0x16/0x0/0x0/0x0/0x0) type:line hdaudioC0D0: speaker_outs=1 (0x17/0x0/0x0/0x0/0x0) hdaudioC0D0: hp_outs=1 (0x1d/0x0/0x0/0x0/0x0) hdaudioC0D0: mono: mono_out=0x0 hdaudioC0D0: inputs: hdaudioC0D0: Mic=0x19 hdaudioC0D0: Internal Mic=0x1a hdaudioC0D0: Line=0x18 hdaudioC0D0: Enable sync_write for stable communication hdaudioC0D0: action: 1 gpio_led: 0 hdaudioC0D0: action: 2 gpio_led: 0 ... input: HDA Intel PCH Mic as /devices/pci0000:00/0000:00:1f.3/sound/card0/input21
The CX20724 datasheet¹ suggests that it supports headset button events — at least 'Function A' when the mic pin is shorted to ground, if not the other functions.
But it isn't working. Only the jack insertion is reported through the corresponding input device, not the button press. I added a printk into snd_hda_jack_unsol_event(), and it isn't even being invoked at all for the button presses; only insertion/removal.
How do we make this work?
Unfortunately, there is no standard definition for the headset button handling in HD-audio spec, and each vendor implements in own way without disclosure. For example, the datasheet you gave also doesn't shed any light how it's triggered (the headset button widget NID is empty and no more information).
So at this moment, only Conexant people can answer to this question properly, sorry.
Maybe you can try to enable the GPIO unsolicited event and see whether any unsolicited event is generated. Though, the datasheet says it's something else individual, but who knows.
thanks,
Takashi
¹ https://www.tonymacx86.com/attachments/datasheet_cx20724-pdf.203615/ [1.2 smime.p7s <application/x-pkcs7-signature (base64)>]
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel