Hello,
With the stock BIOS in the board I am working on one of the nodes for the ALC256 CODEC is:
Node 0x21 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out Control: name="Headphone Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0001001c: OUT HP EAPD Detect EAPD 0x2: EAPD Pin Default 0x02214020: [Jack] HP Out at Ext Front Conn = 1/8, Color = Green DefAssociation = 0x2, Sequence = 0x0 Pin-ctls: 0xc0: OUT HP Unsolicited: tag=01, enabled=1 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x02 0x03*
In the real world we are finding that the detection of headphones being plugged in aren’t being detected and the audio continues to be played through the onboard speakers. Based on experimentation the customer has determined that the alc256-asus-mic quirk in the Linux kernel gets it work properly but I want to fix this issue properly in Coreboot.
The only change in the output of /proc/asound/card/codec#0 appears to be:
Node 0x21 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
changes to:
Node 0x21 [Pin Complex] wcaps 0x03211020: Stereo Amp-Out
I’m assuming that this needs me to add some raw 32bit values into cim_verb_data[] as well as the AZALIA_PIN_CFG() definitions that I already have.
Based on what I have seen in files such (src/mainboard/intel/coffeelake_rvp/variants/cml_u/include/variant/hda_verb.h then I guess this is going to be multiple values that will be of the form 0x021xxxxx. How do I convert the change I need to make to fill in the xxxxx values?
-Andy.