25#ifndef _EFI_HDA_CODEC_H_
26#define _EFI_HDA_CODEC_H_
35#define HDA_CODEC_PRIVATE_DATA_SIGNATURE SIGNATURE_32('H','D','C','O')
143#define HDA_CODEC_INFO_PRIVATE_DATA_FROM_THIS(This) CR(This, HDA_CODEC_INFO_PRIVATE_DATA, HdaCodecInfo, HDA_CODEC_PRIVATE_DATA_SIGNATURE)
159#define AUDIO_IO_PRIVATE_DATA_FROM_THIS(This) CR(This, AUDIO_IO_PRIVATE_DATA, AudioIo, HDA_CODEC_PRIVATE_DATA_SIGNATURE)
175 OUT CONST CHAR16 **CodecName
189 OUT UINT32 *RevisionId
196 OUT UINT8 *AudioFuncId,
197 OUT BOOLEAN *UnsolCapable
212 OUT UINT32 *AmpInCaps,
213 OUT UINT32 *AmpOutCaps
221 OUT UINTN *WidgetCount
239 OUT UINTN *OutputPortsCount
246 IN UINT64 OutputIndexMask,
255 IN UINT64 OutputIndexMask,
260 IN UINTN PlaybackDelay
269 IN UINTN Position OPTIONAL
278 IN UINTN Position OPTIONAL,
280 IN VOID *Context OPTIONAL
309 OUT UINT32 *SupportedRates
332 IN UINT16 StreamFormat
347 IN EFI_DRIVER_BINDING_PROTOCOL *This,
348 IN EFI_HANDLE ControllerHandle,
349 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
355 IN EFI_DRIVER_BINDING_PROTOCOL *This,
356 IN EFI_HANDLE ControllerHandle,
357 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
363 IN EFI_DRIVER_BINDING_PROTOCOL *This,
364 IN EFI_HANDLE ControllerHandle,
365 IN UINTN NumberOfChildren,
366 IN EFI_HANDLE *ChildHandleBuffer OPTIONAL
370#define GPIO_SETUP_STAGE_DATA BIT0
371#define GPIO_SETUP_STAGE_DIRECTION BIT1
372#define GPIO_SETUP_STAGE_ENABLE BIT2
374#define GPIO_SETUP_STAGE_NONE 0
376#define GPIO_SETUP_STAGE_ALL ( \
377 GPIO_SETUP_STAGE_DATA | \
378 GPIO_SETUP_STAGE_DIRECTION | \
379 GPIO_SETUP_STAGE_ENABLE \
383#define GPIO_PIN_MASK_AUTO 0
EFI_AUDIO_IO_PROTOCOL_FREQ
VOID(EFIAPI * EFI_AUDIO_IO_CALLBACK)(IN EFI_AUDIO_IO_PROTOCOL *AudioIo, IN VOID *Context)
EFI_AUDIO_IO_PROTOCOL_BITS
EFI_STATUS EFIAPI HdaCodecGetSupportedPcmRates(IN HDA_WIDGET_DEV *HdaPinWidget, OUT UINT32 *SupportedRates)
EFI_STATUS EFIAPI HdaCodecAudioIoSetupPlayback(IN EFI_AUDIO_IO_PROTOCOL *This, IN UINT64 OutputIndexMask, IN INT8 Gain, IN EFI_AUDIO_IO_PROTOCOL_FREQ Freq, IN EFI_AUDIO_IO_PROTOCOL_BITS Bits, IN UINT8 Channels, IN UINTN PlaybackDelay)
EFI_STATUS EFIAPI HdaCodecInfoGetCodecName(IN EFI_HDA_CODEC_INFO_PROTOCOL *This, OUT CONST CHAR16 **CodecName)
EFI_STATUS EFIAPI HdaCodecPrintDefaults(HDA_CODEC_DEV *HdaCodecDev)
EFI_STATUS EFIAPI HdaCodecInfoGetWidgets(IN EFI_HDA_CODEC_INFO_PROTOCOL *This, OUT HDA_WIDGET **Widgets, OUT UINTN *WidgetCount)
VOID EFIAPI HdaCodecCleanup(IN HDA_CODEC_DEV *HdaCodecDev)
EFI_STATUS EFIAPI HdaCodecAudioIoStartPlaybackAsync(IN EFI_AUDIO_IO_PROTOCOL *This, IN VOID *Data, IN UINTN DataLength, IN UINTN Position OPTIONAL, IN EFI_AUDIO_IO_CALLBACK Callback OPTIONAL, IN VOID *Context OPTIONAL)
EFI_STATUS EFIAPI HdaCodecInfoGetAudioFuncId(IN EFI_HDA_CODEC_INFO_PROTOCOL *This, OUT UINT8 *AudioFuncId, OUT BOOLEAN *UnsolCapable)
BOOLEAN gCodecUseConnNoneNode
EFI_STATUS EFIAPI HdaCodecDisableWidgetPath(IN HDA_WIDGET_DEV *HdaWidget)
EFI_STATUS EFIAPI HdaCodecGetOutputDac(IN HDA_WIDGET_DEV *HdaWidget, OUT HDA_WIDGET_DEV **HdaOutputWidget)
EFI_STATUS EFIAPI HdaCodecEnableWidgetPath(IN HDA_WIDGET_DEV *HdaWidget, IN INT8 Gain, IN UINT8 StreamId, IN UINT16 StreamFormat)
EFI_STATUS EFIAPI HdaCodecAudioIoStartPlayback(IN EFI_AUDIO_IO_PROTOCOL *This, IN VOID *Data, IN UINTN DataLength, IN UINTN Position OPTIONAL)
EFI_STATUS EFIAPI HdaCodecInfoGetRevisionId(IN EFI_HDA_CODEC_INFO_PROTOCOL *This, OUT UINT32 *RevisionId)
EFI_STATUS EFIAPI HdaCodecDriverBindingSupported(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL)
EFI_STATUS EFIAPI HdaCodecInfoFreeWidgetsBuffer(IN HDA_WIDGET *Widgets, IN UINTN WidgetCount)
EFI_STATUS EFIAPI HdaCodecDriverBindingStart(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL)
UINTN gGpioSetupStageMask
EFI_STATUS EFIAPI HdaCodecInfoGetVendorId(IN EFI_HDA_CODEC_INFO_PROTOCOL *This, OUT UINT32 *VendorId)
EFI_STATUS EFIAPI HdaCodecAudioIoGetOutputs(IN EFI_AUDIO_IO_PROTOCOL *This, OUT EFI_AUDIO_IO_PROTOCOL_PORT **OutputPorts, OUT UINTN *OutputPortsCount)
EFI_STATUS EFIAPI HdaCodecWidgetRawGainToDecibels(IN HDA_WIDGET_DEV *HdaWidget, IN UINT8 GainParam, OUT INT8 *Gain)
EFI_STATUS EFIAPI HdaCodecDriverBindingStop(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer OPTIONAL)
EFI_STATUS EFIAPI HdaCodecInfoGetAddress(IN EFI_HDA_CODEC_INFO_PROTOCOL *This, OUT UINT8 *Address)
EFI_STATUS EFIAPI HdaCodecInfoGetDefaultRatesFormats(IN EFI_HDA_CODEC_INFO_PROTOCOL *This, OUT UINT32 *Rates, OUT UINT32 *Formats)
EFI_STATUS EFIAPI HdaCodecInfoGetDefaultAmpCaps(IN EFI_HDA_CODEC_INFO_PROTOCOL *This, OUT UINT32 *AmpInCaps, OUT UINT32 *AmpOutCaps)
EFI_STATUS EFIAPI HdaCodecAudioIoRawGainToDecibels(IN EFI_AUDIO_IO_PROTOCOL *This, IN UINT64 OutputIndexMask, IN UINT8 GainParam, OUT INT8 *Gain)
EFI_STATUS EFIAPI HdaCodecAudioIoStopPlayback(IN EFI_AUDIO_IO_PROTOCOL *This)
UINT64 SelectedOutputIndexMask
HDA_CODEC_DEV * HdaCodecDev
EFI_AUDIO_IO_PROTOCOL AudioIo
HDA_FUNC_GROUP * FuncGroups
AUDIO_IO_PRIVATE_DATA * AudioIoData
EFI_HANDLE ControllerHandle
HDA_WIDGET_DEV ** OutputPorts
EFI_HDA_IO_PROTOCOL * HdaIo
HDA_FUNC_GROUP * AudioFuncGroup
EFI_DEVICE_PATH_PROTOCOL * DevicePath
HDA_CODEC_INFO_PRIVATE_DATA * HdaCodecInfoData
HDA_WIDGET_DEV ** InputPorts
HDA_CODEC_DEV * HdaCodecDev
EFI_HDA_CODEC_INFO_PROTOCOL HdaCodecInfo
UINT32 AmpOutCapabilities
UINT32 SupportedPowerStates
HDA_CODEC_DEV * HdaCodecDev
UINT8 DefaultConvChannelCount
UINT8 * AmpInRightDefaultGainMute
UINT32 AmpOutCapabilities
UINT8 AmpOutLeftDefaultGainMute
UINT8 DefaultConvStreamChannel
HDA_WIDGET_DEV * UpstreamWidget
HDA_FUNC_GROUP * FuncGroup
UINT32 DefaultConfiguration
UINT8 AmpOutRightDefaultGainMute
UINT32 ConnectionListLength
HDA_WIDGET_DEV ** WidgetConnections
UINT32 VolumeCapabilities
UINT8 * AmpInLeftDefaultGainMute
UINT32 SupportedPowerStates