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.