forked from KolibriOS/kolibrios
HDA: Use another codec when no AFG found if possible
git-svn-id: svn://kolibrios.org@4324 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
d24c668030
commit
6b3f1e224c
@ -13,15 +13,15 @@ proc make_codec_cmd stdcall, nid:dword, direct:dword, verb:dword, parm:dword
|
|||||||
shl eax, 28
|
shl eax, 28
|
||||||
mov ebx, [direct]
|
mov ebx, [direct]
|
||||||
shl ebx, 27
|
shl ebx, 27
|
||||||
or eax, ebx
|
or eax, ebx
|
||||||
mov ebx, [nid]
|
mov ebx, [nid]
|
||||||
shl ebx, 20
|
shl ebx, 20
|
||||||
or eax, ebx
|
or eax, ebx
|
||||||
mov ebx, [verb]
|
mov ebx, [verb]
|
||||||
shl ebx, 8
|
shl ebx, 8
|
||||||
or eax, ebx
|
or eax, ebx
|
||||||
mov ebx, [parm]
|
mov ebx, [parm]
|
||||||
or eax, ebx
|
or eax, ebx
|
||||||
pop ebx
|
pop ebx
|
||||||
ret
|
ret
|
||||||
.err:
|
.err:
|
||||||
@ -32,11 +32,11 @@ endp
|
|||||||
|
|
||||||
;; Send and receive a verb
|
;; Send and receive a verb
|
||||||
proc codec_exec_verb stdcall, cmd:dword;, res:dword <- returned in eax
|
proc codec_exec_verb stdcall, cmd:dword;, res:dword <- returned in eax
|
||||||
push ebx edx
|
push ebx edx
|
||||||
mov ebx, [cmd]
|
mov ebx, [cmd]
|
||||||
cmp ebx, -1
|
cmp ebx, -1
|
||||||
jne @f
|
jne @f
|
||||||
pop edx ebx
|
pop edx ebx
|
||||||
mov eax, -1
|
mov eax, -1
|
||||||
ret
|
ret
|
||||||
@@:
|
@@:
|
||||||
@ -61,7 +61,7 @@ proc codec_exec_verb stdcall, cmd:dword;, res:dword <- returned in eax
|
|||||||
mov edx, eax
|
mov edx, eax
|
||||||
if FDEBUG
|
if FDEBUG
|
||||||
test edx, edx
|
test edx, edx
|
||||||
jz .end_debug
|
jz .end_debug
|
||||||
push eax esi
|
push eax esi
|
||||||
mov esi, msgVerbAnswer
|
mov esi, msgVerbAnswer
|
||||||
call SysMsgBoardStr
|
call SysMsgBoardStr
|
||||||
@ -80,10 +80,10 @@ proc codec_exec_verb stdcall, cmd:dword;, res:dword <- returned in eax
|
|||||||
|
|
||||||
mov eax, [ctrl.rirb_error]
|
mov eax, [ctrl.rirb_error]
|
||||||
test eax, eax
|
test eax, eax
|
||||||
jz .l1
|
jz .l1
|
||||||
|
|
||||||
mov eax, [ctrl.response_reset]
|
mov eax, [ctrl.response_reset]
|
||||||
jz @f
|
jz @f
|
||||||
|
|
||||||
if DEBUG
|
if DEBUG
|
||||||
push esi
|
push esi
|
||||||
@ -101,7 +101,7 @@ proc codec_exec_verb stdcall, cmd:dword;, res:dword <- returned in eax
|
|||||||
@@:
|
@@:
|
||||||
mov eax, edx
|
mov eax, edx
|
||||||
|
|
||||||
pop edx ebx
|
pop edx ebx
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
@ -163,7 +163,7 @@ proc snd_hda_sequence_write stdcall, seq:dword
|
|||||||
;jnz @b
|
;jnz @b
|
||||||
;______________________________________
|
;______________________________________
|
||||||
cmp dword [esi], 0
|
cmp dword [esi], 0
|
||||||
je .out
|
je .out
|
||||||
movzx ecx, word [esi] ; NID
|
movzx ecx, word [esi] ; NID
|
||||||
movzx ebx, word [esi+2] ; verb
|
movzx ebx, word [esi+2] ; verb
|
||||||
and bx, 0x0FFF
|
and bx, 0x0FFF
|
||||||
@ -192,7 +192,7 @@ macro snd_hda_param_read nid, param
|
|||||||
;; Returns the number of sub-nodes.
|
;; Returns the number of sub-nodes.
|
||||||
;;
|
;;
|
||||||
proc snd_hda_get_sub_nodes stdcall, nid:dword;, start_id:dword <- returned in upper word of eax
|
proc snd_hda_get_sub_nodes stdcall, nid:dword;, start_id:dword <- returned in upper word of eax
|
||||||
snd_hda_param_read [nid], AC_PAR_NODE_COUNT
|
snd_hda_param_read [nid], AC_PAR_NODE_COUNT
|
||||||
|
|
||||||
cmp eax, -1
|
cmp eax, -1
|
||||||
jne @f
|
jne @f
|
||||||
@ -217,20 +217,20 @@ endp
|
|||||||
;;
|
;;
|
||||||
proc snd_hda_get_connections stdcall, nid:dword, conn_list:dword, max_conns:dword ;Asper: Complete translation!
|
proc snd_hda_get_connections stdcall, nid:dword, conn_list:dword, max_conns:dword ;Asper: Complete translation!
|
||||||
locals
|
locals
|
||||||
parm dd ?
|
parm dd ?
|
||||||
conn_len dd ?
|
conn_len dd ?
|
||||||
conns dd 0
|
conns dd 0
|
||||||
shift db 8
|
shift db 8
|
||||||
num_elements dd 4
|
num_elements dd 4
|
||||||
mask dd 0x7F
|
mask dd 0x7F
|
||||||
wcaps dd ?
|
wcaps dd ?
|
||||||
prev_nid dw 1 ;Asper: Hmm.. Probably ALSA bug that it isn't initialized. I suppose to init it with 1.
|
prev_nid dw 1 ;Asper: Hmm.. Probably ALSA bug that it isn't initialized. I suppose to init it with 1.
|
||||||
endl
|
endl
|
||||||
|
|
||||||
push ebx ecx edx edi esi
|
push ebx ecx edx edi esi
|
||||||
mov edi, [conn_list]
|
mov edi, [conn_list]
|
||||||
test edi, edi
|
test edi, edi
|
||||||
jz .err_out
|
jz .err_out
|
||||||
mov ecx, [max_conns]
|
mov ecx, [max_conns]
|
||||||
cmp ecx, 0
|
cmp ecx, 0
|
||||||
jle .err_out
|
jle .err_out
|
||||||
@ -241,7 +241,7 @@ proc snd_hda_get_connections stdcall, nid:dword, conn_list:dword, max_conns:dwo
|
|||||||
mov [wcaps], eax
|
mov [wcaps], eax
|
||||||
stdcall get_wcaps_type, ebx
|
stdcall get_wcaps_type, ebx
|
||||||
cmp eax, AC_WID_VOL_KNB
|
cmp eax, AC_WID_VOL_KNB
|
||||||
je .conn_list_ok
|
je .conn_list_ok
|
||||||
test ebx, AC_WCAP_CONN_LIST
|
test ebx, AC_WCAP_CONN_LIST
|
||||||
jnz .conn_list_ok
|
jnz .conn_list_ok
|
||||||
if DEBUG
|
if DEBUG
|
||||||
@ -256,11 +256,11 @@ proc snd_hda_get_connections stdcall, nid:dword, conn_list:dword, max_conns:dwo
|
|||||||
jmp .out
|
jmp .out
|
||||||
.conn_list_ok:
|
.conn_list_ok:
|
||||||
|
|
||||||
snd_hda_param_read [nid], AC_PAR_CONNLIST_LEN
|
snd_hda_param_read [nid], AC_PAR_CONNLIST_LEN
|
||||||
mov [parm], eax
|
mov [parm], eax
|
||||||
|
|
||||||
test eax, AC_CLIST_LONG
|
test eax, AC_CLIST_LONG
|
||||||
jz @f
|
jz @f
|
||||||
; long form
|
; long form
|
||||||
mov [shift], 16
|
mov [shift], 16
|
||||||
mov [num_elements], 2
|
mov [num_elements], 2
|
||||||
@ -268,7 +268,7 @@ proc snd_hda_get_connections stdcall, nid:dword, conn_list:dword, max_conns:dwo
|
|||||||
@@:
|
@@:
|
||||||
and eax, AC_CLIST_LENGTH
|
and eax, AC_CLIST_LENGTH
|
||||||
test eax, eax
|
test eax, eax
|
||||||
jz .out ; no connection
|
jz .out ; no connection
|
||||||
|
|
||||||
mov [conn_len], eax
|
mov [conn_len], eax
|
||||||
cmp eax, 1
|
cmp eax, 1
|
||||||
@ -300,7 +300,7 @@ proc snd_hda_get_connections stdcall, nid:dword, conn_list:dword, max_conns:dwo
|
|||||||
mov eax, ecx
|
mov eax, ecx
|
||||||
.mod:
|
.mod:
|
||||||
cmp eax, edx
|
cmp eax, edx
|
||||||
jl .mod_counted
|
jl .mod_counted
|
||||||
sub eax, edx
|
sub eax, edx
|
||||||
jmp .mod
|
jmp .mod
|
||||||
.mod_counted:
|
.mod_counted:
|
||||||
@ -360,13 +360,13 @@ proc snd_hda_get_connections stdcall, nid:dword, conn_list:dword, max_conns:dwo
|
|||||||
pop ecx
|
pop ecx
|
||||||
|
|
||||||
test ebx, ebx
|
test ebx, ebx
|
||||||
jz .range_zero
|
jz .range_zero
|
||||||
; ranges between the previous and this one
|
; ranges between the previous and this one
|
||||||
movzx esi, word [prev_nid]
|
movzx esi, word [prev_nid]
|
||||||
test esi, esi
|
test esi, esi
|
||||||
jz .l2
|
jz .l2
|
||||||
cmp esi, eax
|
cmp esi, eax
|
||||||
jl @f
|
jl @f
|
||||||
.l2:
|
.l2:
|
||||||
if DEBUG
|
if DEBUG
|
||||||
push eax esi
|
push eax esi
|
||||||
@ -394,7 +394,7 @@ proc snd_hda_get_connections stdcall, nid:dword, conn_list:dword, max_conns:dwo
|
|||||||
mov ebx, [conns]
|
mov ebx, [conns]
|
||||||
.next_conn2:
|
.next_conn2:
|
||||||
cmp ebx, [max_conns]
|
cmp ebx, [max_conns]
|
||||||
jl @f
|
jl @f
|
||||||
if DEBUG
|
if DEBUG
|
||||||
push esi
|
push esi
|
||||||
mov esi, emsgTooManyConns
|
mov esi, emsgTooManyConns
|
||||||
@ -422,7 +422,7 @@ proc snd_hda_get_connections stdcall, nid:dword, conn_list:dword, max_conns:dwo
|
|||||||
|
|
||||||
mov ebx, [conns]
|
mov ebx, [conns]
|
||||||
cmp ebx, [max_conns]
|
cmp ebx, [max_conns]
|
||||||
jl @f
|
jl @f
|
||||||
if DEBUG
|
if DEBUG
|
||||||
push esi
|
push esi
|
||||||
mov esi, emsgTooManyConns
|
mov esi, emsgTooManyConns
|
||||||
@ -444,7 +444,7 @@ proc snd_hda_get_connections stdcall, nid:dword, conn_list:dword, max_conns:dwo
|
|||||||
.continue:
|
.continue:
|
||||||
inc ecx
|
inc ecx
|
||||||
cmp ecx, [conn_len]
|
cmp ecx, [conn_len]
|
||||||
jl .next_conn
|
jl .next_conn
|
||||||
|
|
||||||
mov eax, [conns]
|
mov eax, [conns]
|
||||||
.out:
|
.out:
|
||||||
@ -512,6 +512,22 @@ proc snd_hda_codec_init ; We use just one codec (the first found)
|
|||||||
test eax, eax
|
test eax, eax
|
||||||
jnz @f
|
jnz @f
|
||||||
|
|
||||||
|
;Asper+: try to use another codec if possible [
|
||||||
|
if DEBUG
|
||||||
|
push esi
|
||||||
|
mov esi, msgNoAFGFound
|
||||||
|
call SysMsgBoardStr
|
||||||
|
pop esi
|
||||||
|
end if
|
||||||
|
push ecx
|
||||||
|
inc eax
|
||||||
|
mov ecx, [codec.addr]
|
||||||
|
shl eax, cl
|
||||||
|
pop ecx
|
||||||
|
cmp eax, [ctrl.codec_mask]
|
||||||
|
jl .skip_codec
|
||||||
|
;Asper+]
|
||||||
|
|
||||||
mov eax, [codec.mfg]
|
mov eax, [codec.mfg]
|
||||||
test eax, eax
|
test eax, eax
|
||||||
jnz @f
|
jnz @f
|
||||||
@ -521,6 +537,7 @@ proc snd_hda_codec_init ; We use just one codec (the first found)
|
|||||||
call SysMsgBoardStr
|
call SysMsgBoardStr
|
||||||
pop esi
|
pop esi
|
||||||
end if
|
end if
|
||||||
|
.skip_codec:
|
||||||
mov eax, -1
|
mov eax, -1
|
||||||
ret
|
ret
|
||||||
@@:
|
@@:
|
||||||
@ -560,6 +577,7 @@ proc snd_hda_codec_init ; We use just one codec (the first found)
|
|||||||
; power up all before initialization
|
; power up all before initialization
|
||||||
stdcall snd_hda_set_power_state, ebx, AC_PWRST_D0
|
stdcall snd_hda_set_power_state, ebx, AC_PWRST_D0
|
||||||
|
|
||||||
|
xor eax, eax
|
||||||
pop ebx
|
pop ebx
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
@ -820,9 +838,9 @@ proc read_pin_defaults
|
|||||||
|
|
||||||
if FDEBUG
|
if FDEBUG
|
||||||
push eax esi
|
push eax esi
|
||||||
mov esi, msgPinCfgs
|
mov esi, msgPinCfgs
|
||||||
call SysMsgBoardStr
|
call SysMsgBoardStr
|
||||||
pop esi eax
|
pop esi eax
|
||||||
end if
|
end if
|
||||||
|
|
||||||
|
|
||||||
@ -972,7 +990,7 @@ proc hda_codec_setup_stream stdcall, nid:dword, stream_tag:dword, channel_id:dwo
|
|||||||
or eax, [channel_id]
|
or eax, [channel_id]
|
||||||
stdcall snd_hda_codec_write, [nid], 0, AC_VERB_SET_CHANNEL_STREAMID, eax
|
stdcall snd_hda_codec_write, [nid], 0, AC_VERB_SET_CHANNEL_STREAMID, eax
|
||||||
|
|
||||||
mov eax, 1000 ; wait 1 ms
|
mov eax, 1000 ; wait 1 ms
|
||||||
call StallExec
|
call StallExec
|
||||||
|
|
||||||
stdcall snd_hda_codec_write, [nid], 0, AC_VERB_SET_STREAM_FORMAT, [format]
|
stdcall snd_hda_codec_write, [nid], 0, AC_VERB_SET_STREAM_FORMAT, [format]
|
||||||
@ -998,7 +1016,7 @@ proc snd_hda_codec_cleanup_stream stdcall, nid:dword
|
|||||||
pop esi
|
pop esi
|
||||||
end if
|
end if
|
||||||
stdcall snd_hda_codec_write, [nid], 0, AC_VERB_SET_CHANNEL_STREAMID, 0
|
stdcall snd_hda_codec_write, [nid], 0, AC_VERB_SET_CHANNEL_STREAMID, 0
|
||||||
if 0 ; keep the format
|
if 0 ; keep the format
|
||||||
mov eax, 1000000 ; wait 100 ms
|
mov eax, 1000000 ; wait 100 ms
|
||||||
call StallExec
|
call StallExec
|
||||||
stdcall snd_hda_codec_write, [nid], 0, AC_VERB_SET_STREAM_FORMAT, 0
|
stdcall snd_hda_codec_write, [nid], 0, AC_VERB_SET_STREAM_FORMAT, 0
|
||||||
@ -1180,7 +1198,7 @@ proc snd_hda_set_power_state stdcall, fg:dword, power_state:dword
|
|||||||
stdcall snd_hda_codec_read, [fg], 0, AC_VERB_GET_POWER_STATE, 0
|
stdcall snd_hda_codec_read, [fg], 0, AC_VERB_GET_POWER_STATE, 0
|
||||||
cmp eax, ebx
|
cmp eax, ebx
|
||||||
je .out
|
je .out
|
||||||
mov eax, 1000 ; msleep(1);
|
mov eax, 1000 ; msleep(1);
|
||||||
call StallExec
|
call StallExec
|
||||||
dec ecx
|
dec ecx
|
||||||
jnz .wait_D0
|
jnz .wait_D0
|
||||||
@ -1194,21 +1212,21 @@ endp
|
|||||||
|
|
||||||
; codec vendors
|
; codec vendors
|
||||||
align 16
|
align 16
|
||||||
msg_Cirrus db 'Cirrus Logic ',0
|
msg_Cirrus db 'Cirrus Logic ',0
|
||||||
msg_Motorola db 'Motorola ',0
|
msg_Motorola db 'Motorola ',0
|
||||||
msg_SiliconImage db 'Silicon Image ',0
|
msg_SiliconImage db 'Silicon Image ',0
|
||||||
msg_Realtek db 'Realtek ',0
|
msg_Realtek db 'Realtek ',0
|
||||||
msg_Creative db 'Creative ',0
|
msg_Creative db 'Creative ',0
|
||||||
msg_IDT db 'IDT ',0
|
msg_IDT db 'IDT ',0
|
||||||
msg_LSI db 'LSI ',0
|
msg_LSI db 'LSI ',0
|
||||||
msg_AnalogDevices db 'Analog Devices ',0
|
msg_AnalogDevices db 'Analog Devices ',0
|
||||||
msg_CMedia db 'C-Media ',0
|
msg_CMedia db 'C-Media ',0
|
||||||
msg_Conexant db 'Conexant ',0
|
msg_Conexant db 'Conexant ',0
|
||||||
msg_Chrontel db 'Chrontel ',0
|
msg_Chrontel db 'Chrontel ',0
|
||||||
msg_LG db 'LG ',0
|
msg_LG db 'LG ',0
|
||||||
msg_Wolfson db 'Wolfson Microelectronics ',0
|
msg_Wolfson db 'Wolfson Microelectronics ',0
|
||||||
msg_Qumranet db 'Qumranet ',0
|
msg_Qumranet db 'Qumranet ',0
|
||||||
msg_SigmaTel db 'SigmaTel ',0
|
msg_SigmaTel db 'SigmaTel ',0
|
||||||
ac_unknown db 'unknown manufacturer ',0
|
ac_unknown db 'unknown manufacturer ',0
|
||||||
|
|
||||||
chip_unknown db 'unknown codec id ', 0
|
chip_unknown db 'unknown codec id ', 0
|
||||||
@ -1239,105 +1257,105 @@ hda_vendor_ids:
|
|||||||
dd 0x8384, msg_SigmaTel, chips_SigmaTel
|
dd 0x8384, msg_SigmaTel, chips_SigmaTel
|
||||||
dd 0 ; terminator
|
dd 0 ; terminator
|
||||||
|
|
||||||
align 16 ;known codecs
|
align 16 ;known codecs
|
||||||
chips_ATI dd 0xAA01, chip_ATIR6XX
|
chips_ATI dd 0xAA01, chip_ATIR6XX
|
||||||
dd 0xFF
|
dd 0xFF
|
||||||
|
|
||||||
chips_Cirrus dd 0xFF
|
chips_Cirrus dd 0xFF
|
||||||
chips_Motorola dd 0xFF
|
chips_Motorola dd 0xFF
|
||||||
|
|
||||||
chips_SiliconImage dd 0x1392, chip_SI1392
|
chips_SiliconImage dd 0x1392, chip_SI1392
|
||||||
dd 0xFF
|
dd 0xFF
|
||||||
|
|
||||||
chips_NVidia dd 0x0002, chip_MCP78
|
chips_NVidia dd 0x0002, chip_MCP78
|
||||||
dd 0xFF
|
dd 0xFF
|
||||||
|
|
||||||
chips_Realtek dd 0x0262, chip_ALC262
|
chips_Realtek dd 0x0262, chip_ALC262
|
||||||
dd 0x0268, chip_ALC268
|
dd 0x0268, chip_ALC268
|
||||||
dd 0x0269, chip_ALC269
|
dd 0x0269, chip_ALC269
|
||||||
dd 0x0272, chip_ALC272
|
dd 0x0272, chip_ALC272
|
||||||
dd 0x0662, chip_ALC662
|
dd 0x0662, chip_ALC662
|
||||||
dd 0x0663, chip_ALC663
|
dd 0x0663, chip_ALC663
|
||||||
dd 0x0883, chip_ALC883
|
dd 0x0883, chip_ALC883
|
||||||
dd 0x0887, chip_ALC887
|
dd 0x0887, chip_ALC887
|
||||||
dd 0x0888, chip_ALC888
|
dd 0x0888, chip_ALC888
|
||||||
dd 0x0889, chip_ALC889
|
dd 0x0889, chip_ALC889
|
||||||
dd 0xFF
|
dd 0xFF
|
||||||
|
|
||||||
chips_Creative dd 0xFF
|
chips_Creative dd 0xFF
|
||||||
|
|
||||||
chips_VIA dd 0xE721, chip_VT1708B_1
|
chips_VIA dd 0xE721, chip_VT1708B_1
|
||||||
dd 0x0397, chip_VT17085_0
|
dd 0x0397, chip_VT17085_0
|
||||||
dd 0xFF
|
dd 0xFF
|
||||||
|
|
||||||
chips_IDT dd 0xFF
|
chips_IDT dd 0xFF
|
||||||
|
|
||||||
chips_LSI dd 0x1039, chip_LSI1039
|
chips_LSI dd 0x1039, chip_LSI1039
|
||||||
dd 0x1040, chip_LSI1040
|
dd 0x1040, chip_LSI1040
|
||||||
dd 0x3026, chip_LSI3026
|
dd 0x3026, chip_LSI3026
|
||||||
dd 0x3055, chip_LSI3055
|
dd 0x3055, chip_LSI3055
|
||||||
dd 0xFF
|
dd 0xFF
|
||||||
|
|
||||||
chips_Analog dd 0x1986, chip_AD1986A
|
chips_Analog dd 0x1986, chip_AD1986A
|
||||||
dd 0x198B, chip_AD198B
|
dd 0x198B, chip_AD198B
|
||||||
dd 0xFF
|
dd 0xFF
|
||||||
|
|
||||||
chips_CMedia dd 0xFF
|
chips_CMedia dd 0xFF
|
||||||
|
|
||||||
chips_Conexant dd 0x5045, chip_CX20549
|
chips_Conexant dd 0x5045, chip_CX20549
|
||||||
dd 0x5051, chip_CX20561
|
dd 0x5051, chip_CX20561
|
||||||
dd 0xFF
|
dd 0xFF
|
||||||
|
|
||||||
chips_Chrontel dd 0xFF
|
chips_Chrontel dd 0xFF
|
||||||
chips_LG dd 0xFF
|
chips_LG dd 0xFF
|
||||||
chips_Wolfson dd 0xFF
|
chips_Wolfson dd 0xFF
|
||||||
chips_Intel dd 0xFF
|
chips_Intel dd 0xFF
|
||||||
|
|
||||||
chips_Qumranet dd 0x0010, chip_HDA_OUTPUT
|
chips_Qumranet dd 0x0010, chip_HDA_OUTPUT
|
||||||
dd 0x0020, chip_HDA_DUPLEX
|
dd 0x0020, chip_HDA_DUPLEX
|
||||||
dd 0xFF
|
dd 0xFF
|
||||||
|
|
||||||
chips_SigmaTel dd 0x7680, chip_STAC9221
|
chips_SigmaTel dd 0x7680, chip_STAC9221
|
||||||
dd 0x7682, chip_STAC9221_A2
|
dd 0x7682, chip_STAC9221_A2
|
||||||
dd 0xFF
|
dd 0xFF
|
||||||
|
|
||||||
align 16
|
align 16
|
||||||
;AnalogDevices
|
;AnalogDevices
|
||||||
chip_AD1986A db 'AD1986A',13,10,0
|
chip_AD1986A db 'AD1986A',13,10,0
|
||||||
chip_AD198B db 'AD198B',13,10,0
|
chip_AD198B db 'AD198B',13,10,0
|
||||||
|
|
||||||
;ATI
|
;ATI
|
||||||
chip_ATIR6XX db 'ATIR6XX',13,10,0
|
chip_ATIR6XX db 'ATIR6XX',13,10,0
|
||||||
|
|
||||||
;Silicon Image
|
;Silicon Image
|
||||||
chip_SI1392 db 'SI1392',13,10,0
|
chip_SI1392 db 'SI1392',13,10,0
|
||||||
|
|
||||||
;NVidia
|
;NVidia
|
||||||
chip_MCP78 db 'MCP78',13,10,0
|
chip_MCP78 db 'MCP78',13,10,0
|
||||||
|
|
||||||
;Realtek
|
;Realtek
|
||||||
chip_ALC262 db 'ALC262',13,10,0
|
chip_ALC262 db 'ALC262',13,10,0
|
||||||
chip_ALC268 db 'ALC268',13,10,0
|
chip_ALC268 db 'ALC268',13,10,0
|
||||||
chip_ALC269 db 'ALC269',13,10,0
|
chip_ALC269 db 'ALC269',13,10,0
|
||||||
chip_ALC272 db 'ALC272',13,10,0
|
chip_ALC272 db 'ALC272',13,10,0
|
||||||
chip_ALC662 db 'ALC662',13,10,0
|
chip_ALC662 db 'ALC662',13,10,0
|
||||||
chip_ALC663 db 'ALC663',13,10,0
|
chip_ALC663 db 'ALC663',13,10,0
|
||||||
chip_ALC883 db 'ALC883',13,10,0
|
chip_ALC883 db 'ALC883',13,10,0
|
||||||
chip_ALC887 db 'ALC887',13,10,0
|
chip_ALC887 db 'ALC887',13,10,0
|
||||||
chip_ALC888 db 'ALC888',13,10,0
|
chip_ALC888 db 'ALC888',13,10,0
|
||||||
chip_ALC889 db 'ALC889',13,10,0
|
chip_ALC889 db 'ALC889',13,10,0
|
||||||
|
|
||||||
;Sigmatel
|
;Sigmatel
|
||||||
chip_STAC9221 db 'STAC9221',13,10,0
|
chip_STAC9221 db 'STAC9221',13,10,0
|
||||||
chip_STAC9221_A2 db 'STAC9221_A2',13,10,0
|
chip_STAC9221_A2 db 'STAC9221_A2',13,10,0
|
||||||
|
|
||||||
;VIA
|
;VIA
|
||||||
chip_VT1708B_1 db 'VT1708B_1',13,10,0
|
chip_VT1708B_1 db 'VT1708B_1',13,10,0
|
||||||
chip_VT17085_0 db 'VT17085_0',13,10,0
|
chip_VT17085_0 db 'VT17085_0',13,10,0
|
||||||
|
|
||||||
;Conexant
|
;Conexant
|
||||||
chip_CX20549 db 'CX20549',13,10,0
|
chip_CX20549 db 'CX20549',13,10,0
|
||||||
chip_CX20561 db 'CX20561',13,10,0
|
chip_CX20561 db 'CX20561',13,10,0
|
||||||
|
|
||||||
;Qumranet
|
;Qumranet
|
||||||
chip_HDA_OUTPUT db 'HDA-OUTPUT',13,10,0
|
chip_HDA_OUTPUT db 'HDA-OUTPUT',13,10,0
|
||||||
|
@ -13,7 +13,7 @@ DEBUG_IRQ equ 0
|
|||||||
|
|
||||||
USE_SINGLE_MODE equ 0 ; 1 = Single mode; 0 = Normal mode.
|
USE_SINGLE_MODE equ 0 ; 1 = Single mode; 0 = Normal mode.
|
||||||
|
|
||||||
TEST_VERSION_NUMBER equ '018d'
|
TEST_VERSION_NUMBER equ '018e'
|
||||||
|
|
||||||
;Asper+ [
|
;Asper+ [
|
||||||
SDO_TAG equ 1 ;Asper: Output stream tag id (any number except 0)
|
SDO_TAG equ 1 ;Asper: Output stream tag id (any number except 0)
|
||||||
@ -2338,14 +2338,17 @@ proc azx_codec_create
|
|||||||
; if USE_FIRST_CODEC
|
; if USE_FIRST_CODEC
|
||||||
; cmp ecx, 1
|
; cmp ecx, 1
|
||||||
; else
|
; else
|
||||||
cmp ecx, 3
|
cmp ecx, 4
|
||||||
; end if
|
; end if
|
||||||
jl .next_slot
|
jl .next_slot
|
||||||
mov eax, -1
|
mov eax, -1
|
||||||
jmp .out
|
jmp .out
|
||||||
.init:
|
.init:
|
||||||
|
push ecx edx
|
||||||
stdcall snd_hda_codec_init
|
stdcall snd_hda_codec_init
|
||||||
xor eax, eax
|
pop edx ecx
|
||||||
|
test eax, eax
|
||||||
|
jnz @b
|
||||||
.out:
|
.out:
|
||||||
pop edx ecx ebx
|
pop edx ecx ebx
|
||||||
ret
|
ret
|
||||||
@ -2900,6 +2903,7 @@ if DEBUG
|
|||||||
msgCodecOK db 'codec probed OK',13,10,0
|
msgCodecOK db 'codec probed OK',13,10,0
|
||||||
msgCodecError db 'codec probe error disabling it...',13,10,0
|
msgCodecError db 'codec probe error disabling it...',13,10,0
|
||||||
emsgNoAFGorMFGFound db 'no AFG or MFG node found',13,10,0
|
emsgNoAFGorMFGFound db 'no AFG or MFG node found',13,10,0
|
||||||
|
msgNoAFGFound db 'no AFG node found, trying another codec',13,10,0
|
||||||
emsgNoMem db 'hda_codec: cannot malloc',13,10,0
|
emsgNoMem db 'hda_codec: cannot malloc',13,10,0
|
||||||
msgConnect db 'CONNECT: NID=',0
|
msgConnect db 'CONNECT: NID=',0
|
||||||
msgIdx db ' IDX=',0
|
msgIdx db ' IDX=',0
|
||||||
|
Loading…
Reference in New Issue
Block a user