HDA Codec 参数定义备忘

/ 0评 / 0

1 文件头

 // WIP

Codec: Realtek ALC1220
Address: 0
Vendor Id: 0x10ec1168
Subsystem Id: 0x10438724
Revision Id: 0x100003

2 节点(Node)

这是一个节点的描述信息,其中常用的参数有NodeID、WCaps、Pincap和Pin Default,它们的行已经高亮。

Node 0x1a [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out
  Control: name="Line Boost Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
  Amp-In vals:  [0x00 0x00]
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80 0x80]
  Pincap 0x00003734: IN OUT Detect
    Vref caps: HIZ 50 GRD 80 100
  Pin Default 0x0181304f: [Jack] Line In at Ext Rear
    Conn = 1/8, Color = Blue
    DefAssociation = 0x4, Sequence = 0xf
  Pin-ctls: 0x20: IN VREF_HIZ
  Unsolicited: tag=04, enabled=1
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 5
     0x0c* 0x0d 0x0e 0x0f 0x26

2.1 节点ID(NodeID)

长度为8bit的无符号整数,如上文节点描述信息中第1行的0x1a。不可重复。

2.2 Audio Widget Capabilities(wcaps)

// WIP

#31~#24 #23~#20 #19~#16 #15~#13 #12 #11 #10 #9 #8
8bit 4bit 4bit 3bit 1bit 1bit 1bit 1bit 1bit
Reserved Type Delay Chan Count Ext CP Caps L-R Swap Power Cntrl Digital Conn List
#7 #6 #5 #4 #3 #2 #1 #0
1bit 1bit 1bit 1bit 1bit 1bit 1bit 1bit
Unsol Capable Proc Widget Stripe Format Override Amp Param Override Out Amp Present In Amp Present Chan Count LSB(Stereo)

2.3 Pin Capabilities(pin cap)

// WIP

.
#31~#28 #27 #26~#25 #24 #23~#17 #16 #15~8 #7
2bit 1bit 2bit 1bit 7bit 1bit 8bit 1bit
Reserved HBR Reserved DP Reserved EAPD Capable VRef Control HDMI
#6 #5 #4 #3 #2 #1 #0
1bit 1bit 1bit 1bit 1bit 1bit 1bit
Balanced I/O Pins Input Capable Output Capable Headphone Drive Capable Presence Detect Capable Trigger Req'd Impedance Sense Capable

2.4 接口默认配置(Pin Default)

长度为32bit的无符号整数,如上文节点描述信息中第10行的0x0181304f。

#31~#30 #29~24 #23~#20 #19~#16 #15~#12 #11~#08 #07~#04 #04~#00
1bit+1bit 2bit+4bit 4bit 4bit 4bit 4bit 4bit 4bit
Port Connectivity Location Default Device Connection Type Color Misc Association Sequence

2.4.1 Port Connectivity

共2位(#31~#30),用于标记节点对应的接口类型。

#31 == 0 : 节点有物理接口
#30 == 1 : 节点有内部设备(如内建的扬声器、内建的麦克风等)

2.4.2 Location

共6位(#29~#28 + #27~#24),用于标记接口或设备所在机箱面板的位置信息。前2位标记机箱面板的类型,后4位标记机箱面板的位置。

#29~#28 #27~#24 as uint
0h 1h 2h 3h 4h 5h 6h 7h 8h 9h
N/A Rear Front Left Right Top Bottom Special
00b External √ Rear √ DriveBay  
01b Internal             √ Riser √ DP √ ATAPI
10b Separate      
11b Other           √ Lid-Inside √ Lid-Outside  

2.4.3 Default Device

共4位(#23~#20),用于标记接口的数据类型,作为uint读取。

0hLine Out4hSPDIF Out8hLine InChSPDIF In
1hSpeaker5hDigital Other Out9hAUXDhDigital Other In
2hHP Out6hModem Line SideAhMic InEhReserved
3hCD7hModem Handset SideBhTelephonyFhOther

2.4.4 Connection Type

共4位(#19~#16),用于标记接口的物理形态,作为uint读取。

0hUnknown4hRCA8hMultichannel Analog(DIN)ChReserved
1h1/8" stereo/mono5hOptical9hXLR/ProfessionalDhReserved
2h1/4" stereo/mono6hOther DigitalAhRJ-11 (Modem)EhReserved
3hATAPI internal7hOther AnalogBhCombinationFhOther

2.4.5 Color

共4位(#15~#12),用于标记接口的颜色,作为uint读取。

0hUnknown4hGreen8hPurpleChReserved
1hBlack5hRed9hPinkDhReserved
2hGrey6hOrangeAhReservedEhWhite
3hBlue7hYellowBhReservedFhOther

2.4.6 Misc

共4位(#11~#08),用于标记接口的其他配置信息,作为4个独立的二进制位读取。

#15 : 暂无意义
#14 : 暂无意义
#13 : 暂无意义
#12 == 0 : 自动检测接口类型

2.4.7 Association

共4位(#07~#04),用于标记接口的默认关联号,作为uint读取。

在一般情况下,音频驱动会将引脚(Pin)的复合物,即音频接口(Jack),组合成支持多通道操作的功能块。音频驱动可能会假设具有相同关联号的接口为一个功能组,例如提供5.1通道输出。

在资源受限的情况下,软件还可以使用关联号按照优先级分配资源。对于处理节点或输入输出转换器等节点类型,关联值越低,优先级就越高。当然,关联值也可以被软件覆盖,例如AppleALC等。

值0000b是保留的,不应该使用。当软件遇到此值时肯能会认为节点的配置数据没有正常初始化。值1111b是一个特殊的值,表示最低的优先级。多个不同的音频接口可以同时使用此值,并且不影响每个接口作为独立的设备使用。

2.4.8 Sequence

共4位(#03~#00),用于标记联组中接口的默认序列号,作为uint读取。

关联组中编号最低的插孔应分配给音频流中编号最低的通道。在关联组内的编号不需要从0开始紧密排列(0,1,2,3……),只需要注意递增顺序即可。在默认关联组中,每个序列号必须是唯一的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注