120 Programmer’s Reference Manual
Intel® High Definition Audio BIOS Considerations
; the verb has been sent to the codec and response data from codec
is now valid.
PollDataValid:
mov al, byte ptr es:[ebx+HDAudio_MMIO_ICS]
cmp al, 10b
jne PollDataValid
; e. Read IR register at AZBAR+64h, the dword data is the VendorID/
Device
; ID value returned by the codec
mov eax, dword ptr es:[ebx+HDAudio_MMIO_IR] ; eax=vendorID/
deviceID
;----------------------------------------------------------------------------
;3. Check against the list of supported vendor ID/Device ID combinations
; to determine if the received VID/DID is supported.
;----------------------------------------------------------------------------
push ecx
call CheckforValidCodec
or cx, cx
jz VerbTableDone ; jump if VID/DID not supported
;----------------------------------------------------------------------------
;4. If there is a match, send the entire list of verbs in the matching verb
; table one by one to the codec
; a. Poll the ICB bit of the ICS register at AZBAR+68h[0] until it returns 0.
; b. Write the next verb (dword) in the table to the IC register at
AZBAR+60h.
; c. Write the bits of the ICS register at AZBAR+68h[1:0] to 11b to send the
; verb to the codec.
; d. Repeat steps 4a-4c until all verbs in the table have been sent for the
; current codec.
;----------------------------------------------------------------------------
; a. Poll the ICB bit of the ICS register at AZBAR+68h[0] until it returns 0.
push cx
xor cx, cx
PollICBBit2: