Reviewed-by: Chasel Chiu <chasel.c...@intel.com>
> -----Original Message----- > From: Kubacki, Michael A > Sent: Saturday, August 17, 2019 8:16 AM > To: devel@edk2.groups.io > Cc: Chaganty, Rangasai V <rangasai.v.chaga...@intel.com>; Chiu, Chasel > <chasel.c...@intel.com>; Desimone, Nathaniel L > <nathaniel.l.desim...@intel.com>; Gao, Liming <liming....@intel.com>; > Kinney, Michael D <michael.d.kin...@intel.com>; Sinha, Ankit > <ankit.si...@intel.com> > Subject: [edk2-platforms][PATCH V1 22/37] CoffeelakeSiliconPkg/Pch: Add DXE > private library instances > > REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2082 > > Adds PCH DXE private library class instances. > > * DxeGpioNameBufferLib > * DxePchHdaLib > > Cc: Sai Chaganty <rangasai.v.chaga...@intel.com> > Cc: Chasel Chiu <chasel.c...@intel.com> > Cc: Nate DeSimone <nathaniel.l.desim...@intel.com> > Cc: Liming Gao <liming....@intel.com> > Cc: Michael D Kinney <michael.d.kin...@intel.com> > Cc: Ankit Sinha <ankit.si...@intel.com> > Signed-off-by: Michael Kubacki <michael.a.kuba...@intel.com> > --- > > Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxeGpioNameBufferLi > b/DxeGpioNameBufferLib.inf | 32 + > > Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/DxePch > HdaLib.inf | 43 + > > Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxeGpioNameBufferLi > b/GpioNameBufferDxe.c | 20 + > > Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/PchHd > aEndpoints.c | 333 ++++++++ > > Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/PchHd > aLib.c | 886 ++++++++++++++++++++ > > Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/PchHd > aNhltConfig.c | 439 ++++++++++ > 6 files changed, 1753 insertions(+) > > diff --git > a/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxeGpioNameBuffe > rLib/DxeGpioNameBufferLib.inf > b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxeGpioNameBuffe > rLib/DxeGpioNameBufferLib.inf > new file mode 100644 > index 0000000000..0dc8f9749d > --- /dev/null > +++ > b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxeGpioNameBuffe > rLib/DxeGpioNameBufferLib.inf > @@ -0,0 +1,32 @@ > +## @file > +# Component description file for the DxeGpioMemLib > +# > +# Copyright (c) 2019 Intel Corporation. All rights reserved. <BR> > +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > + > +[Defines] > +INF_VERSION = 0x00010017 > +BASE_NAME = DxeGpioNameBufferLib > +FILE_GUID = 16EC6AA8-81D5-4847-B6CB-662CDAB863F2 > +VERSION_STRING = 1.0 > +MODULE_TYPE = DXE_DRIVER > +LIBRARY_CLASS = GpioNameBufferLib > +# > +# The following information is for reference only and not required by the > build tools. > +# > +# VALID_ARCHITECTURES = IA32 X64 IPF EBC > +# > + > +[LibraryClasses] > +BaseLib > + > +[Packages] > +MdePkg/MdePkg.dec > +CoffeelakeSiliconPkg/SiPkg.dec > + > +[Sources] > +GpioNameBufferDxe.c > + > diff --git > a/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/DxeP > chHdaLib.inf > b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/DxeP > chHdaLib.inf > new file mode 100644 > index 0000000000..a8a3f60b53 > --- /dev/null > +++ > b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/DxeP > chHdaLib.inf > @@ -0,0 +1,43 @@ > +## @file > +# Component information file for PCH HD Audio Library > +# > +# Copyright (c) 2019 Intel Corporation. All rights reserved. <BR> > +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > + > +[Defines] > +INF_VERSION = 0x00010017 > +BASE_NAME = DxePchHdaLib > +FILE_GUID = DA915B7F-EE08-4C1D-B3D0-DE7C52AB155A > +VERSION_STRING = 1.0 > +MODULE_TYPE = BASE > +LIBRARY_CLASS = PchHdaLib > + > + > +[LibraryClasses] > +BaseLib > +DebugLib > +MemoryAllocationLib > +BaseMemoryLib > +PchInfoLib > + > + > +[Packages] > +MdePkg/MdePkg.dec > +CoffeelakeSiliconPkg/SiPkg.dec > + > + > +[Pcd] > + gSiPkgTokenSpaceGuid.PcdAcpiDefaultOemId > + gSiPkgTokenSpaceGuid.PcdAcpiDefaultOemTableId > + gSiPkgTokenSpaceGuid.PcdAcpiDefaultOemRevision > + gSiPkgTokenSpaceGuid.PcdAcpiDefaultCreatorId > + gSiPkgTokenSpaceGuid.PcdAcpiDefaultCreatorRevision > + > + > +[Sources] > +PchHdaLib.c > +PchHdaEndpoints.c > +PchHdaNhltConfig.c > diff --git > a/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxeGpioNameBuffe > rLib/GpioNameBufferDxe.c > b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxeGpioNameBuffe > rLib/GpioNameBufferDxe.c > new file mode 100644 > index 0000000000..af53387faf > --- /dev/null > +++ > b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxeGpioNameBuffe > rLib/GpioNameBufferDxe.c > @@ -0,0 +1,20 @@ > +/** @file > + This file contains implementation of the GpioMemLib for DXE phase > + > + Copyright (c) 2019 Intel Corporation. All rights reserved. <BR> > + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#include <Private/Library/GpioNameBufferLib.h> > + > +STATIC CHAR8 mGpioNameBuffer[GPIO_NAME_LENGTH_MAX]; > + > +CHAR8* > +GpioGetStaticNameBuffer ( > + VOID > + ) > +{ > + return mGpioNameBuffer; > +} > + > diff --git > a/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/PchH > daEndpoints.c > b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/PchH > daEndpoints.c > new file mode 100644 > index 0000000000..ea04512501 > --- /dev/null > +++ > b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/PchH > daEndpoints.c > @@ -0,0 +1,333 @@ > +/** @file > + This file contains HD Audio NHLT Endpoints definitions > + > + Copyright (c) 2019 Intel Corporation. All rights reserved. <BR> > + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#include <Private/PchHdaEndpoints.h> > + > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST WAVEFORMATEXTENSIBLE Ch1_48kHz16bitFormat = > +{ > + { > + WAVE_FORMAT_EXTENSIBLE, > + 1, > + 48000, > + 96000, > + 2, > + 16, > + sizeof (WAVEFORMATEXTENSIBLE) - sizeof (WAVEFORMATEX) > + }, > + {16}, > + KSAUDIO_SPEAKER_MONO, > + KSDATAFORMAT_SUBTYPE_PCM > +}; > + > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST WAVEFORMATEXTENSIBLE Ch2_48kHz16bitFormat = > +{ > + { > + WAVE_FORMAT_EXTENSIBLE, > + 2, > + 48000, > + 192000, > + 4, > + 16, > + sizeof (WAVEFORMATEXTENSIBLE) - sizeof (WAVEFORMATEX) > + }, > + {16}, > + KSAUDIO_SPEAKER_STEREO, > + KSDATAFORMAT_SUBTYPE_PCM > +}; > + > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST WAVEFORMATEXTENSIBLE Ch2_48kHz24bitFormat = > +{ > + { > + WAVE_FORMAT_EXTENSIBLE, > + 2, > + 48000, > + 384000, > + 8, > + 32, > + sizeof (WAVEFORMATEXTENSIBLE) - sizeof (WAVEFORMATEX) > + }, > + {24}, > + KSAUDIO_SPEAKER_STEREO, > + KSDATAFORMAT_SUBTYPE_PCM > +}; > + > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST WAVEFORMATEXTENSIBLE Ch2_48kHz32bitFormat = > +{ > + { > + WAVE_FORMAT_EXTENSIBLE, > + 2, > + 48000, > + 384000, > + 8, > + 32, > + sizeof (WAVEFORMATEXTENSIBLE) - sizeof (WAVEFORMATEX) > + }, > + {32}, > + KSAUDIO_SPEAKER_STEREO, > + KSDATAFORMAT_SUBTYPE_PCM > +}; > + > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST WAVEFORMATEXTENSIBLE Ch4_48kHz16bitFormat = > +{ > + { > + WAVE_FORMAT_EXTENSIBLE, > + 4, > + 48000, > + 384000, > + 8, > + 16, > + sizeof (WAVEFORMATEXTENSIBLE) - sizeof (WAVEFORMATEX) > + }, > + {16}, > + KSAUDIO_SPEAKER_QUAD, > + KSDATAFORMAT_SUBTYPE_PCM > +}; > + > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST WAVEFORMATEXTENSIBLE Ch4_48kHz32bitFormat = > +{ > + { > + WAVE_FORMAT_EXTENSIBLE, > + 4, > + 48000, > + 384000, > + 8, > + 32, > + sizeof (WAVEFORMATEXTENSIBLE) - sizeof (WAVEFORMATEX) > + }, > + {32}, > + KSAUDIO_SPEAKER_QUAD, > + KSDATAFORMAT_SUBTYPE_PCM > +}; > + > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST WAVEFORMATEXTENSIBLE NarrowbandFormat = > +{ > + { > + WAVE_FORMAT_EXTENSIBLE, > + 1, > + 8000, > + 16000, > + 2, > + 16, > + sizeof (WAVEFORMATEXTENSIBLE) - sizeof (WAVEFORMATEX) > + }, > + {16}, > + KSAUDIO_SPEAKER_MONO, > + KSDATAFORMAT_SUBTYPE_PCM > +}; > + > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST WAVEFORMATEXTENSIBLE WidebandFormat = > +{ > + { > + WAVE_FORMAT_EXTENSIBLE, > + 1, > + 16000, > + 32000, > + 2, > + 16, > + sizeof (WAVEFORMATEXTENSIBLE) - sizeof (WAVEFORMATEX) > + }, > + {16}, > + KSAUDIO_SPEAKER_MONO, > + KSDATAFORMAT_SUBTYPE_PCM > +}; > + > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST WAVEFORMATEXTENSIBLE A2dpFormat = > +{ > + { > + WAVE_FORMAT_EXTENSIBLE, > + 2, > + 48000, > + 384000, > + 8, > + 32, > + sizeof (WAVEFORMATEXTENSIBLE) - sizeof (WAVEFORMATEX) > + }, > + {24}, > + KSAUDIO_SPEAKER_STEREO, > + KSDATAFORMAT_SUBTYPE_PCM > +}; > +GLOBAL_REMOVE_IF_UNREFERENCED > +ENDPOINT_DESCRIPTOR HdaEndpointDmicX1 = { > + 0, // EndpointDescriptorLength > + HdaNhltLinkDmic, // LinkType > + 0, // InstanceId > + 0x8086, // HwVendorId > + 0xae20, // HwDeviceId > + 1, // HwRevisionId > + 1, // HwSubsystemId > + HdaNhltDeviceDmic, // DeviceType > + 1, // Direction > + 0, // VirtualBusId > + { 0 }, // EndpointConfig > + { 0 }, // FormatsConfig > + { 0 } // DevicesInformation > +}; > + > +GLOBAL_REMOVE_IF_UNREFERENCED > +ENDPOINT_DESCRIPTOR HdaEndpointDmicX2 = { > + 0, // EndpointDescriptorLength > + HdaNhltLinkDmic, // LinkType > + 0, // InstanceId > + 0x8086, // HwVendorId > + 0xae20, // HwDeviceId > + 1, // HwRevisionId > + 1, // HwSubsystemId > + HdaNhltDeviceDmic, // DeviceType > + 1, // Direction > + 0, // VirtualBusId > + { 0 }, // EndpointConfig > + { 0 }, // FormatsConfig > + { 0 } // DevicesInformation > +}; > + > +GLOBAL_REMOVE_IF_UNREFERENCED > +ENDPOINT_DESCRIPTOR HdaEndpointDmicX4 = { > + 0, // EndpointDescriptorLength > + HdaNhltLinkDmic, // LinkType > + 0, // InstanceId > + 0x8086, // HwVendorId > + 0xae20, // HwDeviceId > + 1, // HwRevisionId > + 1, // HwSubsystemId > + HdaNhltDeviceDmic, // DeviceType > + 1, // Direction > + 0, // VirtualBusId > + { 0 }, // EndpointConfig > + { 0 }, // FormatsConfig > + { 0 } // DevicesInformation > +}; > + > +GLOBAL_REMOVE_IF_UNREFERENCED > +ENDPOINT_DESCRIPTOR HdaEndpointBtRender = { > + 0, // EndpointDescriptorLength > + HdaNhltLinkSsp, // LinkType > + 0, // InstanceId > + 0x8086, // HwVendorId > + 0xae30, // HwDeviceId > + 1, // HwRevisionId > + 1, // HwSubsystemId > + HdaNhltDeviceBt, // DeviceType > + 0, // Direction > + 2, // VirtualBusId > + { 0 }, // EndpointConfig > + { 0 }, // FormatsConfig > + { 0 } // DevicesInformation > +}; > + > +GLOBAL_REMOVE_IF_UNREFERENCED > +ENDPOINT_DESCRIPTOR HdaEndpointBtCapture = { > + 0, // EndpointDescriptorLength > + HdaNhltLinkSsp, // LinkType > + 0, // InstanceId > + 0x8086, // HwVendorId > + 0xae30, // HwDeviceId > + 1, // HwRevisionId > + 1, // HwSubsystemId > + HdaNhltDeviceBt, // DeviceType > + 1, // Direction > + 2, // VirtualBusId > + { 0 }, // EndpointConfig > + { 0 }, // FormatsConfig > + { 0 } // DevicesInformation > +}; > + > +GLOBAL_REMOVE_IF_UNREFERENCED > +ENDPOINT_DESCRIPTOR HdaEndpointI2sRender = { > + 0, // EndpointDescriptorLength > + HdaNhltLinkSsp, // LinkType > + 1, // InstanceId > + 0x8086, // HwVendorId > + 0xae34, // HwDeviceId > + 1, // HwRevisionId > + 1, // HwSubsystemId > + HdaNhltDeviceI2s, // DeviceType > + 0, // Direction > + 0, // VirtualBusId > + { 0 }, // EndpointConfig > + { 0 }, // FormatsConfig > + { 0 } // DevicesInformation > +}; > + > +GLOBAL_REMOVE_IF_UNREFERENCED > +ENDPOINT_DESCRIPTOR HdaEndpointI2sCapture = { > + 0, // EndpointDescriptorLength > + HdaNhltLinkSsp, // LinkType > + 1, // InstanceId > + 0x8086, // HwVendorId > + 0xae34, // HwDeviceId > + 1, // HwRevisionId > + 1, // HwSubsystemId > + HdaNhltDeviceI2s, // DeviceType > + 1, // Direction > + 0, // VirtualBusId > + { 0 }, // EndpointConfig > + { 0 }, // FormatsConfig > + { 0 } // DevicesInformation > +}; > + > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT8 DmicX1Config[] = > +{ > + 0x00, // VirtualSlot > + 0x00, // eIntcConfigTypeMicArray = 1 , eIntcConfigTypeGeneric = 0 > +}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 DmicX1ConfigSize = > sizeof (DmicX1Config); > + > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT8 DmicX2Config[] = > +{ > + 0x00, // VirtualSlot > + 0x01, // eIntcConfigTypeMicArray = 1 , eIntcConfigTypeGeneric = 0 > + 0x0A // ArrayType > +}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 DmicX2ConfigSize = > sizeof (DmicX2Config); > + > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT8 DmicX4Config[] = > +{ > + 0x00, // VirtualSlot > + 0x01, // eIntcConfigTypeMicArray = 1 , eIntcConfigTypeGeneric = 0 > + 0x0D // ArrayType > +}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 DmicX4ConfigSize = > sizeof (DmicX4Config); > + > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT8 BtConfig[] = {0}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 BtConfigSize = 0; > + > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT8 I2sRender1Config[] = > {0}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 I2sRender1ConfigSize = > 0; > + > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT8 I2sRender2Config[] = > {0x01}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 I2sRender2ConfigSize = > sizeof (I2sRender2Config); > + > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT8 I2sCaptureConfig[] = > {0}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 I2sCaptureConfigSize = > 0; > + > +GLOBAL_REMOVE_IF_UNREFERENCED CONST DEVICE_INFO > I2sRenderDeviceInfo = > +{ > + "INT34C2", // DeviceId > + 0x00, // DeviceInstanceId > + 0x01 // DevicePortId > +}; > + > +GLOBAL_REMOVE_IF_UNREFERENCED CONST DEVICE_INFO > I2sCaptureDeviceInfo = > +{ > + "INT34C2", // DeviceId > + 0x00, // DeviceInstanceId > + 0x01 // DevicePortId > +}; > + > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 NhltConfiguration[] = > { 0xEFBEADDE }; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 NhltConfigurationSize > = sizeof (NhltConfiguration); > + > diff --git > a/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/PchH > daLib.c > b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/PchH > daLib.c > new file mode 100644 > index 0000000000..a87509de1b > --- /dev/null > +++ > b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/PchH > daLib.c > @@ -0,0 +1,886 @@ > +/** @file > + PCH HD Audio Library implementation. > + > + Copyright (c) 2019 Intel Corporation. All rights reserved. <BR> > + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#include <Uefi/UefiBaseType.h> > +#include <Library/DebugLib.h> > +#include <Library/MemoryAllocationLib.h> > +#include <Library/BaseMemoryLib.h> > +#include <Library/PcdLib.h> > +#include <Private/Library/PchHdaLib.h> > +#include <Library/PchInfoLib.h> > + > +/** > + Returns pointer to Endpoint ENDPOINT_DESCRIPTOR structure. > + > + @param[in] *NhltTable Endpoint for which Format address is retrieved > + @param[in] FormatIndex Index of Format to be retrieved > + > + @retval Pointer to ENDPOINT_DESCRIPTOR structure with > given index > +**/ > +ENDPOINT_DESCRIPTOR * > +GetNhltEndpoint ( > + IN CONST NHLT_ACPI_TABLE *NhltTable, > + IN CONST UINT8 EndpointIndex > + ) > +{ > + UINT8 i; > + ENDPOINT_DESCRIPTOR *Endpoint; > + Endpoint = (ENDPOINT_DESCRIPTOR*) (NhltTable->EndpointDescriptors); > + > + if (EndpointIndex > NhltTable->EndpointCount) { > + return NULL; > + } > + > + for (i = 0; i < EndpointIndex; i++) { > + Endpoint = (ENDPOINT_DESCRIPTOR*) ((UINT8*) (Endpoint) + > Endpoint->EndpointDescriptorLength); > + } > + > + return Endpoint; > +} > + > +/** > + Returns pointer to Endpoint Specific Configuration SPECIFIC_CONFIG > structure. > + > + @param[in] *Endpoint Endpoint for which config address is retrieved > + > + @retval Pointer to SPECIFIC_CONFIG structure with > endpoint's > capabilities > +**/ > +SPECIFIC_CONFIG * > +GetNhltEndpointDeviceCapabilities ( > + IN CONST ENDPOINT_DESCRIPTOR *Endpoint > + ) > +{ > + return (SPECIFIC_CONFIG*) (&Endpoint->EndpointConfig); > +} > + > +/** > + Returns pointer to all Formats Configuration FORMATS_CONFIG structure. > + > + @param[in] *Endpoint Endpoint for which Formats address is retrieved > + > + @retval Pointer to FORMATS_CONFIG structure > +**/ > +FORMATS_CONFIG * > +GetNhltEndpointFormatsConfig ( > + IN CONST ENDPOINT_DESCRIPTOR *Endpoint > + ) > +{ > + FORMATS_CONFIG *FormatsConfig; > + FormatsConfig = (FORMATS_CONFIG*) ((UINT8*) > (&Endpoint->EndpointConfig) > + + sizeof > (Endpoint->EndpointConfig.CapabilitiesSize) > + + > Endpoint->EndpointConfig.CapabilitiesSize); > + > + return FormatsConfig; > +} > + > +/** > + Returns pointer to Format Configuration FORMAT_CONFIG structure. > + > + @param[in] *Endpoint Endpoint for which Format address is retrieved > + @param[in] FormatIndex Index of Format to be retrieved > + > + @retval Pointer to FORMAT_CONFIG structure with given > index > +**/ > +FORMAT_CONFIG * > +GetNhltEndpointFormat ( > + IN CONST ENDPOINT_DESCRIPTOR *Endpoint, > + IN CONST UINT8 FormatIndex > + ) > +{ > + UINT8 i; > + UINT32 Length; > + FORMATS_CONFIG *FormatsConfig; > + FORMAT_CONFIG *Format; > + > + Length = 0; > + FormatsConfig = GetNhltEndpointFormatsConfig (Endpoint); > + Format = FormatsConfig->FormatsConfiguration; > + > + if (FormatIndex > FormatsConfig->FormatsCount) { > + return NULL; > + } > + > + for (i = 0; i < FormatIndex; i++) { > + Length = sizeof (Format->Format) + > Format->FormatConfiguration.CapabilitiesSize > + + sizeof (Format->FormatConfiguration.CapabilitiesSize); > + Format = (FORMAT_CONFIG*) ((UINT8*) (Format) + Length); > + } > + > + return Format; > +} > + > +/** > + Returns pointer to all Device Information DEVICES_INFO structure. > + > + @param[in] *Endpoint Endpoint for which DevicesInfo address is > retrieved > + > + @retval Pointer to DEVICES_INFO structure > +**/ > +DEVICES_INFO * > +GetNhltEndpointDevicesInfo ( > + IN CONST ENDPOINT_DESCRIPTOR *Endpoint > + ) > +{ > + DEVICES_INFO *DevicesInfo; > + FORMATS_CONFIG *FormatsConfig; > + FORMAT_CONFIG *Format; > + > + FormatsConfig = GetNhltEndpointFormatsConfig (Endpoint); > + Format = GetNhltEndpointFormat (Endpoint, > FormatsConfig->FormatsCount); > + DevicesInfo = (DEVICES_INFO*) ((UINT8*) Format); > + > + return DevicesInfo; > +} > + > +/** > + Returns pointer to Device Information DEVICES_INFO structure. > + > + @param[in] *Endpoint Endpoint for which Device Info address is > retrieved > + @param[in] DeviceInfoIndex Index of Device Info to be retrieved > + > + @retval Pointer to DEVICE_INFO structure with given > index > +**/ > +DEVICE_INFO * > +GetNhltEndpointDeviceInfo ( > + IN CONST ENDPOINT_DESCRIPTOR *Endpoint, > + IN CONST UINT8 DeviceInfoIndex > + ) > +{ > + DEVICES_INFO *DevicesInfo; > + DEVICE_INFO *DeviceInfo; > + > + DevicesInfo = GetNhltEndpointDevicesInfo (Endpoint); > + DeviceInfo = DevicesInfo->DeviceInformation; > + > + if (DevicesInfo == NULL) { > + return NULL; > + } > + > + if (DeviceInfoIndex > DevicesInfo->DeviceInfoCount) { > + return NULL; > + } > + > + DeviceInfo = (DEVICE_INFO*) ((UINT8*) (DeviceInfo) + sizeof (*DeviceInfo) * > DeviceInfoIndex); > + > + return DeviceInfo; > +} > + > +/** > + Returns pointer to OED Configuration SPECIFIC_CONFIG structure. > + > + @param[in] *NhltTable NHLT table for which OED address is retrieved > + > + @retval Pointer to SPECIFIC_CONFIG structure with NHLT > capabilities > +**/ > +SPECIFIC_CONFIG * > +GetNhltOedConfig ( > + IN CONST NHLT_ACPI_TABLE *NhltTable > + ) > +{ > + ENDPOINT_DESCRIPTOR *Endpoint; > + SPECIFIC_CONFIG *OedConfig; > + > + Endpoint = GetNhltEndpoint (NhltTable, (NhltTable->EndpointCount)); > + OedConfig = (SPECIFIC_CONFIG*) ((UINT8*) (Endpoint)); > + > + return OedConfig; > +} > + > +/** > + Prints Format configuration. > + > + @param[in] *Format Format to be printed > + > + @retval None > +**/ > +VOID > +NhltFormatDump ( > + IN CONST FORMAT_CONFIG *Format > + ) > +{ > + UINT32 i; > + > + DEBUG ((DEBUG_INFO, "------------------------------- FORMAT > -------------------------------\n")); > + DEBUG ((DEBUG_INFO, " Format->Format.Format.wFormatTag = > 0x%x\n", Format->Format.Format.wFormatTag)); > + DEBUG ((DEBUG_INFO, " Format->Format.Format.nChannels = %d\n", > Format->Format.Format.nChannels)); > + DEBUG ((DEBUG_INFO, " Format->Format.Format.nSamplesPerSec = %d\n", > Format->Format.Format.nSamplesPerSec)); > + DEBUG ((DEBUG_INFO, " Format->Format.Format.nAvgBytesPerSec = %d\n", > Format->Format.Format.nAvgBytesPerSec)); > + DEBUG ((DEBUG_INFO, " Format->Format.Format.nBlockAlign = %d\n", > Format->Format.Format.nBlockAlign)); > + DEBUG ((DEBUG_INFO, " Format->Format.Format.wBitsPerSample = %d\n", > Format->Format.Format.wBitsPerSample)); > + DEBUG ((DEBUG_INFO, " Format->Format.Format.cbSize = %d\n", > Format->Format.Format.cbSize)); > + DEBUG ((DEBUG_INFO, " Format->Format.Samples = %d\n", > Format->Format.Samples)); > + DEBUG ((DEBUG_INFO, " Format->Format.dwChannelMask = > 0x%x\n", Format->Format.dwChannelMask)); > + DEBUG ((DEBUG_INFO, " Format->Format.SubFormat = %g\n", > Format->Format.SubFormat)); > + > + > + DEBUG ((DEBUG_INFO, " Format->FormatConfiguration.CapabilitiesSize = > %d B\n", Format->FormatConfiguration.CapabilitiesSize)); > + DEBUG ((DEBUG_VERBOSE, " > Format->FormatConfiguration.Capabilities:")); > + for (i = 0; i < ( Format->FormatConfiguration.CapabilitiesSize ) ; i++) { > + if (i % 16 == 0) { > + DEBUG ((DEBUG_VERBOSE, "\n")); > + } > + DEBUG ((DEBUG_VERBOSE, "0x%02x, ", > Format->FormatConfiguration.Capabilities[i])); > + } > + DEBUG ((DEBUG_VERBOSE, "\n")); > +} > + > +/** > + Prints Device Information. > + > + @param[in] *DeviceInfo DeviceInfo to be printed > + > + @retval None > +**/ > +VOID > +NhltDeviceInfoDump ( > + IN CONST DEVICE_INFO *DeviceInfo > + ) > +{ > + DEBUG ((DEBUG_INFO, "----------------------------- DEVICE INFO > ----------------------------\n")); > + DEBUG ((DEBUG_INFO, " DeviceInfo->DeviceId = %a\n", > DeviceInfo->DeviceId)); > + DEBUG ((DEBUG_INFO, " DeviceInfo->DeviceInstanceId = 0x%x\n", > DeviceInfo->DeviceInstanceId)); > + DEBUG ((DEBUG_INFO, " DeviceInfo->DevicePortId = 0x%x\n", > DeviceInfo->DevicePortId)); > +} > + > +/** > + Prints Endpoint configuration. > + > + @param[in] *Endpoint Endpoint to be printed > + > + @retval None > +**/ > +VOID > +NhltEndpointDump ( > + IN CONST ENDPOINT_DESCRIPTOR *Endpoint > + ) > +{ > + UINT8 i; > + FORMATS_CONFIG *FormatsConfigs; > + FORMAT_CONFIG *Format; > + DEVICES_INFO *DevicesInfo; > + DEVICE_INFO *DeviceInfo; > + > + DEBUG ((DEBUG_INFO, "------------------------------ ENDPOINT > ------------------------------\n")); > + DEBUG ((DEBUG_INFO, " Endpoint->DeviceDescriptorLength = %d B\n", > Endpoint->EndpointDescriptorLength)); > + DEBUG ((DEBUG_INFO, " Endpoint->LinkType = 0x%x\n", > Endpoint->LinkType)); > + DEBUG ((DEBUG_INFO, " Endpoint->InstanceId = 0x%x\n", > Endpoint->InstanceId)); > + DEBUG ((DEBUG_INFO, " Endpoint->HwVendorId = 0x%x\n", > Endpoint->HwVendorId)); > + DEBUG ((DEBUG_INFO, " Endpoint->HwDeviceId = 0x%x\n", > Endpoint->HwDeviceId)); > + DEBUG ((DEBUG_INFO, " Endpoint->HwRevisionId = 0x%x\n", > Endpoint->HwRevisionId)); > + DEBUG ((DEBUG_INFO, " Endpoint->HwSubsystemId = 0x%x\n", > Endpoint->HwSubsystemId)); > + DEBUG ((DEBUG_INFO, " Endpoint->DeviceType = 0x%x\n", > Endpoint->DeviceType)); > + DEBUG ((DEBUG_INFO, " Endpoint->Direction = 0x%x\n", > Endpoint->Direction)); > + DEBUG ((DEBUG_INFO, " Endpoint->VirtualBusId = 0x%x\n", > Endpoint->VirtualBusId)); > + > + DEBUG ((DEBUG_INFO, " Endpoint->EndpointConfig.CapabilitiesSize = %d > B\n", Endpoint->EndpointConfig.CapabilitiesSize)); > + DEBUG ((DEBUG_VERBOSE, " Endpoint->EndpointConfig.Capabilities:")); > + for (i = 0; i < (Endpoint->EndpointConfig.CapabilitiesSize ) ; i++) { > + if (i % 16 == 0) DEBUG ((DEBUG_VERBOSE, "\n")); > + DEBUG ((DEBUG_VERBOSE, "0x%02x, ", > Endpoint->EndpointConfig.Capabilities[i])); > + } > + > + FormatsConfigs = GetNhltEndpointFormatsConfig (Endpoint); > + > + DEBUG ((DEBUG_INFO, "\n")); > + DEBUG ((DEBUG_INFO, " Endpoint->FormatsConfig.FormatsCount = %d\n", > FormatsConfigs->FormatsCount)); > + for (i = 0; i < FormatsConfigs->FormatsCount; i++) { > + Format = GetNhltEndpointFormat (Endpoint, i); > + if (Format != NULL) { > + NhltFormatDump (Format); > + } > + } > + > + DevicesInfo = GetNhltEndpointDevicesInfo (Endpoint); > + if (DevicesInfo != NULL) { > + DEBUG ((DEBUG_INFO, "\n")); > + DEBUG ((DEBUG_INFO, " Endpoint->DevicesInfo.DeviceInfoCount = %d\n", > DevicesInfo->DeviceInfoCount)); > + for (i = 0; i < DevicesInfo->DeviceInfoCount; i++) { > + DeviceInfo = GetNhltEndpointDeviceInfo (Endpoint, i); > + if (DeviceInfo != NULL) { > + NhltDeviceInfoDump (DeviceInfo); > + } > + } > + } > + DEBUG ((DEBUG_VERBOSE, "\n")); > +} > + > +/** > + Prints OED (Offload Engine Driver) configuration. > + > + @param[in] *OedConfig OED to be printed > + > + @retval None > +**/ > +VOID > +NhltOedConfigDump ( > + IN CONST SPECIFIC_CONFIG *OedConfig > + ) > +{ > + UINT8 i; > + > + DEBUG ((DEBUG_INFO, "-------------------------- OED CONFIGURATION > -------------------------\n")); > + DEBUG ((DEBUG_INFO, " OedConfig->CapabilitiesSize = %d B\n", > OedConfig->CapabilitiesSize)); > + DEBUG ((DEBUG_VERBOSE, " OedConfig->Capabilities:")); > + for (i = 0; i < (OedConfig->CapabilitiesSize) ; i++) { > + if (i % 16 == 0) DEBUG ((DEBUG_VERBOSE, "\n")); > + DEBUG ((DEBUG_VERBOSE, "0x%02x, ", OedConfig->Capabilities[i])); > + } > + > + DEBUG ((DEBUG_VERBOSE, "\n")); > +} > + > +/** > + Prints NHLT (Non HDA-Link Table) to be exposed via ACPI (aka. OED (Offload > Engine Driver) Configuration Table). > + > + @param[in] *NhltTable The NHLT table to print > + > + @retval None > +**/ > +VOID > +NhltAcpiTableDump ( > + IN NHLT_ACPI_TABLE *NhltTable > + ) > +{ > + DEBUG_CODE_BEGIN (); > + UINT8 i; > + > + DEBUG ((DEBUG_INFO, "\n")); > + DEBUG ((DEBUG_INFO, "--- NHLT ACPI Table Dump [OED (Offload Engine > Driver) Configuration] ---\n")); > + > + DEBUG ((DEBUG_INFO, "sizeof NHLT_ACPI_TABLE = %d B\n", sizeof > (NHLT_ACPI_TABLE))); > + DEBUG ((DEBUG_INFO, "sizeof EFI_ACPI_DESCRIPTION_HEADER = %d B\n", > sizeof (EFI_ACPI_DESCRIPTION_HEADER))); > + DEBUG ((DEBUG_INFO, "sizeof ENDPOINT_DESCRIPTOR = %d B\n", sizeof > (ENDPOINT_DESCRIPTOR))); > + DEBUG ((DEBUG_INFO, "sizeof SPECIFIC_CONFIG = %d B\n", sizeof > (SPECIFIC_CONFIG))); > + DEBUG ((DEBUG_INFO, "sizeof FORMATS_CONFIG = %d B\n", sizeof > (FORMATS_CONFIG))); > + DEBUG ((DEBUG_INFO, "sizeof FORMAT_CONFIG = %d B\n", sizeof > (FORMAT_CONFIG))); > + DEBUG ((DEBUG_INFO, "sizeof WAVEFORMATEXTENSIBLE = %d B\n", sizeof > (WAVEFORMATEXTENSIBLE))); > + DEBUG ((DEBUG_INFO, "sizeof DEVICES_INFO = %d B\n", sizeof > (DEVICES_INFO))); > + DEBUG ((DEBUG_INFO, "sizeof DEVICE_INFO = %d B\n", sizeof > (DEVICE_INFO))); > + > + DEBUG ((DEBUG_INFO, " NHLT_ACPI_TABLE Header.Signature = > 0x%08x\n", NhltTable->Header.Signature)); > + DEBUG ((DEBUG_INFO, " NHLT_ACPI_TABLE Header.Length = > 0x%08x\n", NhltTable->Header.Length)); > + DEBUG ((DEBUG_INFO, " NHLT_ACPI_TABLE Header.Revision = > 0x%02x\n", NhltTable->Header.Revision)); > + DEBUG ((DEBUG_INFO, " NHLT_ACPI_TABLE Header.Checksum = > 0x%02x\n", NhltTable->Header.Checksum)); > + DEBUG ((DEBUG_INFO, " NHLT_ACPI_TABLE Header.OemId = %a\n", > NhltTable->Header.OemId)); > + DEBUG ((DEBUG_INFO, " NHLT_ACPI_TABLE Header.OemTableId = > 0x%lx\n", NhltTable->Header.OemTableId)); > + DEBUG ((DEBUG_INFO, " NHLT_ACPI_TABLE Header.OemRevision = > 0x%08x\n", NhltTable->Header.OemRevision)); > + DEBUG ((DEBUG_INFO, " NHLT_ACPI_TABLE Header.CreatorId = > 0x%08x\n", NhltTable->Header.CreatorId)); > + DEBUG ((DEBUG_INFO, " NHLT_ACPI_TABLE Header.CreatorRevision = > 0x%08x\n", NhltTable->Header.CreatorRevision)); > + DEBUG ((DEBUG_INFO, "\n")); > + > + DEBUG ((DEBUG_INFO, " NHLT_ACPI_TABLE EndpointCount = %d\n", > NhltTable->EndpointCount)); > + for (i = 0; i < NhltTable->EndpointCount; i++) { > + NhltEndpointDump (GetNhltEndpoint (NhltTable, i)); > + } > + > + NhltOedConfigDump (GetNhltOedConfig (NhltTable)); > + DEBUG ((DEBUG_INFO, > "----------------------------------------------------------------------\n")); > + > + DEBUG_CODE_END (); > +} > + > +/** > + Constructs FORMATS_CONFIGS structure based on given formats list. > + > + @param[in][out] *Endpoint Endpoint for which format structures are > created > + @param[in] FormatBitmask Bitmask of formats supported for given > endpoint > + > + @retval Size of created FORMATS_CONFIGS structure > +**/ > +UINT32 > +NhltFormatsConstructor ( > + IN OUT ENDPOINT_DESCRIPTOR *Endpoint, > + IN CONST UINT32 FormatsBitmask > + ) > +{ > + FORMATS_CONFIG *FormatsConfig; > + FORMAT_CONFIG *Format; > + UINT8 FormatIndex; > + UINT32 FormatsConfigLength; > + > + DEBUG ((DEBUG_INFO, "NhltFormatsConstructor() Start, FormatsBitmask = > 0x%08x\n", FormatsBitmask)); > + > + FormatsConfig = NULL; > + FormatIndex = 0; > + FormatsConfigLength = 0; > + > + if (!FormatsBitmask) { > + DEBUG ((DEBUG_WARN, "No supported format found!\n")); > + return 0; > + } > + > + FormatsConfig = GetNhltEndpointFormatsConfig (Endpoint); > + FormatsConfig->FormatsCount = 0; > + > + if (FormatsBitmask & B_HDA_DMIC_2CH_48KHZ_16BIT_FORMAT) { > + DEBUG ((DEBUG_INFO, "Format: > B_HDA_DMIC_2CH_48KHZ_16BIT_FORMAT\n")); > + > + Format = GetNhltEndpointFormat (Endpoint, FormatIndex++); > + if (Format != NULL) { > + CopyMem (&(Format->Format), &Ch2_48kHz16bitFormat, sizeof > (WAVEFORMATEXTENSIBLE)); > + Format->FormatConfiguration.CapabilitiesSize = > DmicStereo16BitFormatConfigSize; > + CopyMem (Format->FormatConfiguration.Capabilities, > DmicStereo16BitFormatConfig, DmicStereo16BitFormatConfigSize); > + > + FormatsConfigLength += sizeof (*Format) > + - sizeof (Format->FormatConfiguration.Capabilities) > + + Format->FormatConfiguration.CapabilitiesSize; > + FormatsConfig->FormatsCount++; > + } > + } > + > + if (FormatsBitmask & B_HDA_DMIC_2CH_48KHZ_32BIT_FORMAT) { > + DEBUG ((DEBUG_INFO, "Format: > B_HDA_DMIC_2CH_48KHZ_32BIT_FORMAT\n")); > + > + Format = GetNhltEndpointFormat (Endpoint, FormatIndex++); > + if (Format != NULL) { > + CopyMem (&(Format->Format), &Ch2_48kHz32bitFormat, sizeof > (WAVEFORMATEXTENSIBLE)); > + > + Format->FormatConfiguration.CapabilitiesSize = > DmicStereo32BitFormatConfigSize; > + CopyMem (Format->FormatConfiguration.Capabilities, > DmicStereo32BitFormatConfig, DmicStereo32BitFormatConfigSize); > + > + FormatsConfigLength += sizeof (*Format) > + - sizeof (Format->FormatConfiguration.Capabilities) > + + Format->FormatConfiguration.CapabilitiesSize; > + FormatsConfig->FormatsCount++; > + } > + } > + > + if (FormatsBitmask & B_HDA_DMIC_4CH_48KHZ_16BIT_FORMAT) { > + DEBUG ((DEBUG_INFO, "Format: > B_HDA_DMIC_4CH_48KHZ_16BIT_FORMAT\n")); > + > + Format = GetNhltEndpointFormat (Endpoint, FormatIndex++); > + if (Format != NULL) { > + CopyMem (&(Format->Format), &Ch4_48kHz16bitFormat, sizeof > (WAVEFORMATEXTENSIBLE)); > + Format->FormatConfiguration.CapabilitiesSize = > DmicQuad16BitFormatConfigSize; > + CopyMem (Format->FormatConfiguration.Capabilities, > DmicQuad16BitFormatConfig, DmicQuad16BitFormatConfigSize); > + > + FormatsConfigLength += sizeof (*Format) > + - sizeof (Format->FormatConfiguration.Capabilities) > + + Format->FormatConfiguration.CapabilitiesSize; > + FormatsConfig->FormatsCount++; > + } > + } > + > + if (FormatsBitmask & B_HDA_DMIC_4CH_48KHZ_32BIT_FORMAT) { > + DEBUG ((DEBUG_INFO, "Format: > B_HDA_DMIC_4CH_48KHZ_32BIT_FORMAT\n")); > + > + Format = GetNhltEndpointFormat (Endpoint, FormatIndex++); > + if (Format != NULL) { > + CopyMem (&(Format->Format), &Ch4_48kHz32bitFormat, sizeof > (WAVEFORMATEXTENSIBLE)); > + > + Format->FormatConfiguration.CapabilitiesSize = > DmicQuad32BitFormatConfigSize; > + CopyMem (Format->FormatConfiguration.Capabilities, > DmicQuad32BitFormatConfig, DmicQuad32BitFormatConfigSize); > + > + FormatsConfigLength += sizeof (*Format) > + - sizeof (Format->FormatConfiguration.Capabilities) > + + Format->FormatConfiguration.CapabilitiesSize; > + FormatsConfig->FormatsCount++; > + } > + } > + > + if (FormatsBitmask & B_HDA_DMIC_1CH_48KHZ_16BIT_FORMAT) { > + DEBUG ((DEBUG_INFO, "Format: > B_HDA_DMIC_1CH_48KHZ_16BIT_FORMAT\n")); > + > + Format = GetNhltEndpointFormat (Endpoint, FormatIndex++); > + if (Format != NULL) { > + CopyMem (&(Format->Format), &Ch1_48kHz16bitFormat, sizeof > (WAVEFORMATEXTENSIBLE)); > + > + Format->FormatConfiguration.CapabilitiesSize = > DmicMono16BitFormatConfigSize; > + CopyMem (Format->FormatConfiguration.Capabilities, > DmicMono16BitFormatConfig, DmicMono16BitFormatConfigSize); > + > + FormatsConfigLength += sizeof (*Format) > + - sizeof (Format->FormatConfiguration.Capabilities) > + + Format->FormatConfiguration.CapabilitiesSize; > + FormatsConfig->FormatsCount++; > + } > + } > + > + if (FormatsBitmask & B_HDA_BT_NARROWBAND_FORMAT) { > + DEBUG ((DEBUG_INFO, "Format: > B_HDA_BT_NARROWBAND_FORMAT\n")); > + > + Format = GetNhltEndpointFormat (Endpoint, FormatIndex++); > + if (Format != NULL) { > + CopyMem (&(Format->Format), &NarrowbandFormat, sizeof > (WAVEFORMATEXTENSIBLE)); > + > + Format->FormatConfiguration.CapabilitiesSize = BtFormatConfigSize; > + CopyMem (Format->FormatConfiguration.Capabilities, BtFormatConfig, > BtFormatConfigSize); > + > + FormatsConfigLength += sizeof (*Format) > + - sizeof (Format->FormatConfiguration.Capabilities) > + + Format->FormatConfiguration.CapabilitiesSize; > + FormatsConfig->FormatsCount++; > + } > + } > + > + if (FormatsBitmask & B_HDA_BT_WIDEBAND_FORMAT) { > + DEBUG ((DEBUG_INFO, "Format: B_HDA_BT_WIDEBAND_FORMAT\n")); > + > + Format = GetNhltEndpointFormat (Endpoint, FormatIndex++); > + if (Format != NULL) { > + CopyMem (&(Format->Format), &WidebandFormat, sizeof > (WAVEFORMATEXTENSIBLE)); > + > + Format->FormatConfiguration.CapabilitiesSize = BtFormatConfigSize; > + CopyMem (Format->FormatConfiguration.Capabilities, BtFormatConfig, > BtFormatConfigSize); > + > + FormatsConfigLength += sizeof (*Format) > + - sizeof (Format->FormatConfiguration.Capabilities) > + + Format->FormatConfiguration.CapabilitiesSize; > + FormatsConfig->FormatsCount++; > + } > + } > + > + if (FormatsBitmask & B_HDA_BT_A2DP_FORMAT) { > + DEBUG ((DEBUG_INFO, "Format: B_HDA_BT_A2DP_FORMAT\n")); > + > + Format = GetNhltEndpointFormat (Endpoint, FormatIndex++); > + if (Format != NULL) { > + CopyMem (&(Format->Format), &A2dpFormat, sizeof > (WAVEFORMATEXTENSIBLE)); > + > + Format->FormatConfiguration.CapabilitiesSize = BtFormatConfigSize; > + CopyMem (Format->FormatConfiguration.Capabilities, BtFormatConfig, > BtFormatConfigSize); > + > + FormatsConfigLength += sizeof (*Format) > + - sizeof (Format->FormatConfiguration.Capabilities) > + + Format->FormatConfiguration.CapabilitiesSize; > + FormatsConfig->FormatsCount++; > + } > + } > + > + if (FormatsBitmask & > B_HDA_I2S_RTK274_RENDER_4CH_48KHZ_24BIT_FORMAT) { > + DEBUG ((DEBUG_INFO, "Format: > B_HDA_I2S_RTK274_RENDER_4CH_48KHZ_24BIT_FORMAT\n")); > + > + Format = GetNhltEndpointFormat (Endpoint, FormatIndex++); > + if (Format != NULL) { > + CopyMem (&(Format->Format), &Ch2_48kHz24bitFormat, sizeof > (WAVEFORMATEXTENSIBLE)); > + > + Format->FormatConfiguration.CapabilitiesSize = > I2sRtk274Render4ch48kHz24bitFormatConfigSize; > + CopyMem (Format->FormatConfiguration.Capabilities, > I2sRtk274Render4ch48kHz24bitFormatConfig, > I2sRtk274Render4ch48kHz24bitFormatConfigSize); > + > + FormatsConfigLength += sizeof (*Format) > + - sizeof (Format->FormatConfiguration.Capabilities) > + + Format->FormatConfiguration.CapabilitiesSize; > + FormatsConfig->FormatsCount++; > + } > + } > + > + if (FormatsBitmask & > B_HDA_I2S_RTK274_CAPTURE_4CH_48KHZ_24BIT_FORMAT) { > + DEBUG ((DEBUG_INFO, "Format: > B_HDA_I2S_RTK274_CAPTURE_4CH_48KHZ_24BIT_FORMAT\n")); > + > + Format = GetNhltEndpointFormat (Endpoint, FormatIndex++); > + if (Format != NULL) { > + CopyMem (&(Format->Format), &Ch2_48kHz24bitFormat, sizeof > (WAVEFORMATEXTENSIBLE)); > + > + Format->FormatConfiguration.CapabilitiesSize = > I2sRtk274Capture4ch48kHz24bitFormatConfigSize; > + CopyMem (Format->FormatConfiguration.Capabilities, > I2sRtk274Capture4ch48kHz24bitFormatConfig, > I2sRtk274Capture4ch48kHz24bitFormatConfigSize); > + > + FormatsConfigLength += sizeof (*Format) > + - sizeof (Format->FormatConfiguration.Capabilities) > + + Format->FormatConfiguration.CapabilitiesSize; > + FormatsConfig->FormatsCount++; > + } > + } > + > + DEBUG ((DEBUG_INFO, "NhltFormatsConstructor() End, FormatsCount = %d, > FormatsConfigLength = %d B\n", FormatsConfig->FormatsCount, > FormatsConfigLength)); > + return FormatsConfigLength; > +} > + > +/** > + Constructs DEVICES_INFO structure based on given device info list. > + > + @param[in][out] *Endpoint Endpoint for which device info structures > are created > + @param[in] DevicesBitmask Bitmask of devices supported for given > endpoint > + > + @retval Size of created DEVICES_INFO structure > +**/ > +UINT32 > +NhltDevicesInfoConstructor ( > + IN OUT ENDPOINT_DESCRIPTOR *Endpoint, > + IN CONST UINT32 DevicesBitmask > + ) > +{ > + DEVICES_INFO *DevicesInfo; > + DEVICE_INFO *DeviceInfo; > + UINT8 DeviceIndex; > + UINT32 DevicesInfoLength; > + > + DEBUG ((DEBUG_INFO, "NhltDevicesInfoConstructor() Start, > DevicesBitmask = 0x%08x\n", DevicesBitmask)); > + > + DevicesInfo = NULL; > + DeviceIndex = 0; > + DevicesInfoLength = 0; > + > + if (!DevicesBitmask) { > + return 0; > + } > + > + DevicesInfo = GetNhltEndpointDevicesInfo (Endpoint); > + if (DevicesInfo == NULL) { > + return 0; > + } > + DevicesInfo->DeviceInfoCount = 0; > + > + if (DevicesBitmask & B_HDA_I2S_RENDER_DEVICE_INFO) { > + DEBUG ((DEBUG_INFO, "DeviceInfo: > B_HDA_I2S_RENDER_DEVICE_INFO\n")); > + > + DeviceInfo = GetNhltEndpointDeviceInfo (Endpoint, DeviceIndex++); > + if (DeviceInfo != NULL) { > + CopyMem (DeviceInfo, &I2sRenderDeviceInfo, sizeof (DEVICE_INFO)); > + DevicesInfo->DeviceInfoCount++; > + } > + } else if (DevicesBitmask & B_HDA_I2S_CAPTURE_DEVICE_INFO) { > + DEBUG ((DEBUG_INFO, "DeviceInfo: > B_HDA_I2S_CAPTURE_DEVICE_INFO\n")); > + > + DeviceInfo = GetNhltEndpointDeviceInfo (Endpoint, DeviceIndex++); > + if (DeviceInfo != NULL) { > + CopyMem (DeviceInfo, &I2sCaptureDeviceInfo, sizeof (DEVICE_INFO)); > + DevicesInfo->DeviceInfoCount++; > + } > + } > + > + DevicesInfoLength = DevicesInfo->DeviceInfoCount * sizeof (DEVICE_INFO); > + > + DEBUG ((DEBUG_INFO, "NhltDevicesInfoConstructor() End, DevicesCount = > %d, DevicesInfoLength = %d B\n", DevicesInfo->DeviceInfoCount, > DevicesInfoLength)); > + return DevicesInfoLength; > +} > + > +/** > + Constructs NHLT_ENDPOINT structure based on given endpoint type. > + > + @param[in][out] *NhltTable NHLT table for which endpoint is > created > + @param[in] EndpointType Type of endpoint to be created > + @param[in] EndpointFormatsBitmask Bitmask of formats supported > by endpoint > + @param[in] EndpointDevicesBitmask Bitmask of device info for > endpoint > + @param[in] EndpointIndex Endpoint index in NHLT table > + > + @retval Size of created NHLT_ENDPOINT structure > +**/ > +UINT32 > +NhltEndpointConstructor ( > + IN OUT NHLT_ACPI_TABLE *NhltTable, > + IN NHLT_ENDPOINT EndpointType, > + IN UINT32 EndpointFormatsBitmask, > + IN UINT32 EndpointDevicesBitmask, > + IN UINT8 EndpointIndex > + ) > +{ > + > + ENDPOINT_DESCRIPTOR *Endpoint; > + SPECIFIC_CONFIG *EndpointConfig; > + CONST UINT8 *EndpointConfigBuffer; > + UINT32 EndpointConfigBufferSize; > + UINT32 EndpointDescriptorLength; > + > + DEBUG ((DEBUG_INFO, "NhltEndpointConstructor() Start, EndpointIndex = > %d\n", EndpointIndex)); > + > + EndpointDescriptorLength = 0; > + Endpoint = GetNhltEndpoint (NhltTable, EndpointIndex); > + if (Endpoint == NULL) { > + return 0; > + } > + EndpointDescriptorLength = sizeof (ENDPOINT_DESCRIPTOR) > + - sizeof (SPECIFIC_CONFIG) > + - sizeof (FORMAT_CONFIG) > + - sizeof (DEVICE_INFO); > + > + switch (EndpointType) { > + case HdaDmicX1: > + DEBUG ((DEBUG_INFO, "Endpoint: HdaDmicX1\n")); > + CopyMem (Endpoint, &HdaEndpointDmicX1, sizeof > (ENDPOINT_DESCRIPTOR)); > + EndpointConfigBuffer = DmicX1Config; > + EndpointConfigBufferSize = DmicX1ConfigSize; > + break; > + case HdaDmicX2: > + DEBUG ((DEBUG_INFO, "Endpoint: HdaDmicX2\n")); > + CopyMem (Endpoint, &HdaEndpointDmicX2, sizeof > (ENDPOINT_DESCRIPTOR)); > + EndpointConfigBuffer = DmicX2Config; > + EndpointConfigBufferSize = DmicX2ConfigSize; > + break; > + case HdaDmicX4: > + DEBUG ((DEBUG_INFO, "Endpoint: HdaDmicX4\n")); > + CopyMem (Endpoint, &HdaEndpointDmicX4, sizeof > (ENDPOINT_DESCRIPTOR)); > + EndpointConfigBuffer = DmicX4Config; > + EndpointConfigBufferSize = DmicX4ConfigSize; > + break; > + case HdaBtRender: > + DEBUG ((DEBUG_INFO, "Endpoint: HdaBtRender\n")); > + CopyMem (Endpoint, &HdaEndpointBtRender, sizeof > (ENDPOINT_DESCRIPTOR)); > + if (IsPchH ()) { > + Endpoint->VirtualBusId = 0; > + } > + > + EndpointConfigBuffer = BtConfig; > + EndpointConfigBufferSize = BtConfigSize; > + break; > + case HdaBtCapture: > + DEBUG ((DEBUG_INFO, "Endpoint: HdaBtCapture\n")); > + CopyMem (Endpoint, &HdaEndpointBtCapture, sizeof > (ENDPOINT_DESCRIPTOR)); > + if (IsPchH ()) { > + Endpoint->VirtualBusId = 0; > + } > + > + EndpointConfigBuffer = BtConfig; > + EndpointConfigBufferSize = BtConfigSize; > + break; > + case HdaI2sRender1: > + DEBUG ((DEBUG_INFO, "Endpoint: HdaI2sRender1\n")); > + CopyMem (Endpoint, &HdaEndpointI2sRender, sizeof > (ENDPOINT_DESCRIPTOR)); > + EndpointConfigBuffer = I2sRender1Config; > + EndpointConfigBufferSize = I2sRender1ConfigSize; > + break; > + case HdaI2sRender2: > + DEBUG ((DEBUG_INFO, "Endpoint: HdaI2sRender2\n")); > + CopyMem (Endpoint, &HdaEndpointI2sRender, sizeof > (ENDPOINT_DESCRIPTOR)); > + EndpointConfigBuffer = I2sRender2Config; > + EndpointConfigBufferSize = I2sRender2ConfigSize; > + break; > + case HdaI2sCapture: > + DEBUG ((DEBUG_INFO, "Endpoint: HdaI2sCapture\n")); > + CopyMem (Endpoint, &HdaEndpointI2sCapture, sizeof > (ENDPOINT_DESCRIPTOR)); > + EndpointConfigBuffer = I2sCaptureConfig; > + EndpointConfigBufferSize = I2sCaptureConfigSize; > + break; > + default: > + DEBUG ((DEBUG_WARN, "Unknown endpoint!\n")); > + return 0; > + } > + > + EndpointConfig = GetNhltEndpointDeviceCapabilities (Endpoint); > + EndpointConfig->CapabilitiesSize = EndpointConfigBufferSize; > + CopyMem (EndpointConfig->Capabilities, EndpointConfigBuffer, > EndpointConfig->CapabilitiesSize); > + EndpointDescriptorLength += sizeof (*EndpointConfig) > + - sizeof (EndpointConfig->Capabilities) > + + EndpointConfig->CapabilitiesSize; > + > + EndpointDescriptorLength += NhltFormatsConstructor (Endpoint, > EndpointFormatsBitmask); > + EndpointDescriptorLength += NhltDevicesInfoConstructor (Endpoint, > EndpointDevicesBitmask); > + > + Endpoint->EndpointDescriptorLength = EndpointDescriptorLength; > + > + DEBUG ((DEBUG_INFO, "NhltEndpointConstructor() End, > EndpointDescriptorLength = %d B\n", Endpoint->EndpointDescriptorLength)); > + return Endpoint->EndpointDescriptorLength; > +} > + > +/** > + Constructs SPECIFIC_CONFIG structure for OED configuration. > + > + @param[in][out] *NhltTable NHLT table for which OED config is created > + > + @retval Size of created SPECIFIC_CONFIG structure > +**/ > +UINT32 > +NhltOedConfigConstructor ( > + IN OUT NHLT_ACPI_TABLE *NhltTable > + ) > +{ > + SPECIFIC_CONFIG *OedConfig; > + UINT32 OedConfigLength; > + > + OedConfigLength = 0; > + OedConfig = GetNhltOedConfig (NhltTable); > + > + OedConfig->CapabilitiesSize = NhltConfigurationSize; > + CopyMem (OedConfig->Capabilities, (UINT8*) NhltConfiguration, > NhltConfigurationSize); > + > + OedConfigLength = sizeof (*OedConfig) > + - sizeof (OedConfig->Capabilities) > + + OedConfig->CapabilitiesSize; > + > + return OedConfigLength; > +} > + > +/** > + Constructs NHLT_ACPI_TABLE structure based on given Endpoints list. > + > + @param[in] *EndpointTable List of endpoints for NHLT > + @param[in][out] **NhltTable NHLT table to be created > + @param[in][out] *NhltTableSize Size of created NHLT table > + > + @retval EFI_SUCCESS NHLT created successfully > + @retval EFI_BAD_BUFFER_SIZE Not enough resources to allocate NHLT > +**/ > +EFI_STATUS > +NhltConstructor ( > + IN PCH_HDA_NHLT_ENDPOINTS *EndpointTable, > + IN OUT NHLT_ACPI_TABLE **NhltTable, > + IN OUT UINT32 *NhltTableSize > + ) > +{ > + EFI_STATUS Status; > + UINT8 Index; > + UINT32 TableSize; > + UINT32 EndpointDescriptorsLength; > + UINT32 OedConfigLength; > + NHLT_ACPI_TABLE *Table; > + > + > + Status = EFI_SUCCESS; > + TableSize = PCH_HDA_NHLT_TABLE_SIZE; > + EndpointDescriptorsLength = 0; > + OedConfigLength = 0; > + > + Table = AllocateZeroPool (TableSize); > + > + if (Table == NULL) { > + return EFI_BAD_BUFFER_SIZE; > + } > + > + Table->EndpointCount = 0; > + > + for (Index = 0; Index < HdaEndpointMax; Index++) { > + if (EndpointTable[Index].Enable == TRUE) { > + EndpointDescriptorsLength += NhltEndpointConstructor (Table, > + EndpointTable[Index].EndpointType, > + > EndpointTable[Index].EndpointFormatsBitmask, > + > EndpointTable[Index].EndpointDevicesBitmask, > + Table->EndpointCount++); > + } > + } > + DEBUG ((DEBUG_INFO, "NhltConstructor: EndpointCount = %d, All > EndpointDescriptorsLength = %d B\n", Table->EndpointCount, > EndpointDescriptorsLength)); > + > + OedConfigLength = NhltOedConfigConstructor (Table); > + DEBUG ((DEBUG_INFO, "NhltConstructor: OedConfigLength = %d B\n", > OedConfigLength)); > + > + TableSize = EndpointDescriptorsLength + OedConfigLength; > + > + *NhltTableSize = TableSize; > + *NhltTable = Table; > + > + return Status; > +} > + > +/** > + Constructs EFI_ACPI_DESCRIPTION_HEADER structure for NHLT table. > + > + @param[in][out] *NhltTable NHLT table for which header will be > created > + @param[in] NhltTableSize Size of NHLT table > + > + @retval None > +**/ > +VOID > +NhltAcpiHeaderConstructor ( > + IN OUT NHLT_ACPI_TABLE *NhltTable, > + IN UINT32 NhltTableSize > + ) > +{ > + DEBUG ((DEBUG_INFO, "NhltAcpiHeaderConstructor() Start\n")); > + > + // Header > + NhltTable->Header.Signature = NHLT_ACPI_TABLE_SIGNATURE; > + NhltTable->Header.Length = (UINT32) (NhltTableSize + sizeof > (NHLT_ACPI_TABLE) - sizeof (ENDPOINT_DESCRIPTOR) - sizeof > (SPECIFIC_CONFIG)); > + NhltTable->Header.Revision = 0x0; > + NhltTable->Header.Checksum = 0x0; > + > + CopyMem (NhltTable->Header.OemId, PcdGetPtr (PcdAcpiDefaultOemId), > sizeof (NhltTable->Header.OemId)); > + NhltTable->Header.OemTableId = PcdGet64 > (PcdAcpiDefaultOemTableId); > + NhltTable->Header.OemRevision = PcdGet32 > (PcdAcpiDefaultOemRevision); > + NhltTable->Header.CreatorId = PcdGet32 (PcdAcpiDefaultCreatorId); > + NhltTable->Header.CreatorRevision = PcdGet32 > (PcdAcpiDefaultCreatorRevision); > + > + DEBUG ((DEBUG_INFO, "NhltAcpiHeaderConstructor(), > NhltAcpiTable->Header.Length = %d B\n", NhltTable->Header.Length)); > +} > + > diff --git > a/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/PchH > daNhltConfig.c > b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/PchH > daNhltConfig.c > new file mode 100644 > index 0000000000..301b1f8d10 > --- /dev/null > +++ > b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/PchH > daNhltConfig.c > @@ -0,0 +1,439 @@ > +/** @file > + This file contains HD Audio NHLT Configuration BLOBs > + > + Copyright (c) 2019 Intel Corporation. All rights reserved. <BR> > + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +// > +// CFL NHLT Configuration BLOBs > +// > + > +// > +// DMIC Configuration BLOBs > +// > +// DMIC Config 2 channels, 16 bits, 2.4Mhz BCLK > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST UINT32 DmicStereo16BitFormatConfig[] = > +{ > + 0x00000001,0xffff3210,0xffffff10,0xffffff32,0xffffffff, > + 3, > + 3, > + 0x00300003, > + 0x00300003, > + 0x3, > + 0x1, 0x09001303, 0x0, 0x0303, 0, 0, 0, 0, > + 0x11, 0x402a0, 0, 0, 0, 0, 0, 0, > + 0x11, 0xe03ae, 0, 0, 0, 0, 0, 0, > + 0x00008, 0xfffae, 0xfff12, 0xffdfb, 0xffc61, 0xffa5a, 0xff82b, 0xff641, > 0xff520, > 0xff544, 0xff6f4, 0xffa25, 0xffe65, > + 0x002e0, 0x0068f, 0x00876, 0x007f1, 0x004f5, 0x0002a, 0xffad4, 0xff68a, > 0xff4bf, 0xff64f, 0xffb20, > + 0x0020f, 0x00929, 0x00e2d, 0x00f40, 0x00b92, 0x003bf, 0xff9cd, 0xff0b0, > 0xfeb6e, 0xfec2a, 0xff351, > + 0xfff4f, 0x00ccd, 0x0179d, 0x01bfc, 0x017d7, 0x00ba3, 0xffa7e, 0xfe96f, > 0xfddf5, 0xfdc4d, 0xfe5ee, > + 0xff8ce, 0x00fb7, 0x023a8, 0x02df5, 0x02a74, 0x01910, 0xffe2c, 0xfe19c, > 0xfcc64, 0xfc5ee, 0xfd17e, > + 0xfecd4, 0x01071, 0x03198, 0x0457e, 0x044c9, 0x02e24, 0x00728, 0xfdb0e, > 0xfb781, 0xfa86b, 0xfb408, > + 0xfd884, 0x00c02, 0x03f37, 0x061e8, 0x06807, 0x04dc5, 0x01954, 0xfd98c, > 0xfa1c8, 0xf840f, 0xf8b52, > + 0xfb78c, 0xffd23, 0x047db, 0x080b1, 0x094e3, 0x07c08, 0x03b41, 0xfe45e, > 0xf9101, 0xf5b1e, 0xf54f4, > + 0xf8307, 0xfda0b, 0x0418f, 0x09ad0, 0x0c9d6, 0x0be16, 0x0780b, 0x009dd, > 0xf92ba, 0xf3606, 0xf10ed, > + 0xf315e, 0xf9135, 0x0172c, 0x09d83, 0x0fc9e, 0x11695, 0x0e05b, 0x065bf, > 0xfc6ed, 0xf2ff4, 0xecc96, > + 0xebbc9, 0xf0668, 0xf9be7, 0x05601, 0x1029e, 0x17140, 0x18065, 0x12728, > 0x07874, 0xf9edb, 0xed202, > + 0xe486c, 0xe294d, 0xe820f, 0xf424a, 0x03f29, 0x13d68, 0x1ff61, 0x253b2, > 0x220fa, 0x16be1, 0x05638, > + 0xf1798, 0xdf165, 0xd211a, 0xcd3f9, 0xd1eb5, 0xdfa89, 0xf4802, 0x0d656, > 0x26d63, 0x3d808, 0x4ecc3, > + 0x59315, 0x5c520, 0x58db6, 0x503d6, 0x444dd, 0x36ecb, 0x29b9a, 0x1de5d, > 0x14234, 0x0cae0, 0x07669, > + 0x03f40, 0x01e4e, 0x00c95, 0x0043b, 0x000f9,0xff961, 0x00823, 0x0084f, > 0x00a39, 0x00d21, 0x010a8, 0x0149a, 0x018cc, 0x01d15, 0x0214d, 0x02543, > 0x028c8, 0x02baa, > + 0x02db8, 0x02ec6, 0x02eac, 0x02d4c, 0x02a90, 0x02672, 0x020f9, 0x01a3b, > 0x0125c, 0x00994, 0x00025, > + 0xff662, 0xfeca3, 0xfe34c, 0xfdabe, 0xfd364, 0xfcd94, 0xfc9a4, 0xfc7dd, > 0xfc86b, 0xfcb6e, 0xfd0e6, > + 0xfd8bb, 0xfe2b9, 0xfee8f, 0xffbd5, 0x00a0c, 0x018a3, 0x026fc, 0x03474, > 0x04065, 0x04a36, 0x0515a, > + 0x0555a, 0x055df, 0x052b2, 0x04bc3, 0x0412c, 0x03332, 0x02242, 0x00ef3, > 0xff9fb, 0xfe430, 0xfce78, > + 0xfb9c6, 0xfa70f, 0xf973a, 0xf8b1e, 0xf836e, 0xf80b7, 0xf8355, 0xf8b6e, > 0xf98ea, 0xfab78, 0xfc288, > + 0xfdd52, 0xffadf, 0x01a0a, 0x03992, 0x05823, 0x07465, 0x08d0c, 0x0a0e3, > 0x0aedc, 0x0b61f, 0x0b614, > + 0x0ae6b, 0x09f23, 0x0888d, 0x06b4c, 0x04850, 0x020d3, 0xff647, 0xfca4f, > 0xf9eae, 0xf7533, 0xf4fa8, > + 0xf2fc0, 0xf1702, 0xf06ba, 0xeffe6, 0xf032d, 0xf10d3, 0xf28b4, 0xf4a42, > 0xf7486, 0xfa62a, 0xfdd81, > + 0x01896, 0x0553d, 0x09128, 0x0c9fe, 0x0fd6f, 0x1294e, 0x14ba5, 0x162cb, > 0x16d75, 0x16ac4, 0x15a52, > + 0x13c38, 0x1110d, 0x0d9e9, 0x09856, 0x04e4a, 0xffe17, 0xfaa51, 0xf55c4, > 0xf0350, 0xeb5d6, 0xe7020, > + 0xe34c8, 0xe0620, 0xde61c, 0xdd64b, 0xdd7bd, 0xdeb03, 0xe102a, 0xe46b5, > 0xe8dab, 0xee397, 0xf4699, > + 0xfb479, 0x02ab3, 0x0a691, 0x1253c, 0x1a3d9, 0x21f98, 0x295cc, 0x30400, > 0x36803, 0x3bff8, 0x40a63, > + 0x44628, 0x4729b, 0x48f76, 0x49cd2, 0x49b35, 0x48b71, 0x46ea5, 0x44632, > 0x413a6, 0x3d8b3, 0x3971b, > + 0x350a6, 0x30716, 0x2bc15, 0x27131, 0x227cb, 0x1e11d, 0x19e2a, 0x15fc1, > 0x1267c, 0x0f2c0, 0x0c4c2, > + 0x09c8b, 0x079fb, 0x05cd2, 0x044b2, 0x0312d, 0x021c5, 0x015f4, 0x0135e, > + 0x1, 0x09001303, 0x0, 0x0303, 0, 0, 0, 0, > + 0x11, 0x402a0, 0, 0, 0, 0, 0, 0, > + 0x11, 0xe03ae, 0, 0, 0, 0, 0, 0, > + 0x00008, 0xfffae, 0xfff12, 0xffdfb, 0xffc61, 0xffa5a, 0xff82b, 0xff641, > 0xff520, > 0xff544, 0xff6f4, 0xffa25, 0xffe65, > + 0x002e0, 0x0068f, 0x00876, 0x007f1, 0x004f5, 0x0002a, 0xffad4, 0xff68a, > 0xff4bf, 0xff64f, 0xffb20, > + 0x0020f, 0x00929, 0x00e2d, 0x00f40, 0x00b92, 0x003bf, 0xff9cd, 0xff0b0, > 0xfeb6e, 0xfec2a, 0xff351, > + 0xfff4f, 0x00ccd, 0x0179d, 0x01bfc, 0x017d7, 0x00ba3, 0xffa7e, 0xfe96f, > 0xfddf5, 0xfdc4d, 0xfe5ee, > + 0xff8ce, 0x00fb7, 0x023a8, 0x02df5, 0x02a74, 0x01910, 0xffe2c, 0xfe19c, > 0xfcc64, 0xfc5ee, 0xfd17e, > + 0xfecd4, 0x01071, 0x03198, 0x0457e, 0x044c9, 0x02e24, 0x00728, 0xfdb0e, > 0xfb781, 0xfa86b, 0xfb408, > + 0xfd884, 0x00c02, 0x03f37, 0x061e8, 0x06807, 0x04dc5, 0x01954, 0xfd98c, > 0xfa1c8, 0xf840f, 0xf8b52, > + 0xfb78c, 0xffd23, 0x047db, 0x080b1, 0x094e3, 0x07c08, 0x03b41, 0xfe45e, > 0xf9101, 0xf5b1e, 0xf54f4, > + 0xf8307, 0xfda0b, 0x0418f, 0x09ad0, 0x0c9d6, 0x0be16, 0x0780b, 0x009dd, > 0xf92ba, 0xf3606, 0xf10ed, > + 0xf315e, 0xf9135, 0x0172c, 0x09d83, 0x0fc9e, 0x11695, 0x0e05b, 0x065bf, > 0xfc6ed, 0xf2ff4, 0xecc96, > + 0xebbc9, 0xf0668, 0xf9be7, 0x05601, 0x1029e, 0x17140, 0x18065, 0x12728, > 0x07874, 0xf9edb, 0xed202, > + 0xe486c, 0xe294d, 0xe820f, 0xf424a, 0x03f29, 0x13d68, 0x1ff61, 0x253b2, > 0x220fa, 0x16be1, 0x05638, > + 0xf1798, 0xdf165, 0xd211a, 0xcd3f9, 0xd1eb5, 0xdfa89, 0xf4802, 0x0d656, > 0x26d63, 0x3d808, 0x4ecc3, > + 0x59315, 0x5c520, 0x58db6, 0x503d6, 0x444dd, 0x36ecb, 0x29b9a, 0x1de5d, > 0x14234, 0x0cae0, 0x07669, > + 0x03f40, 0x01e4e, 0x00c95, 0x0043b, 0x000f9,0xff961, 0x00823, 0x0084f, > 0x00a39, 0x00d21, 0x010a8, 0x0149a, 0x018cc, 0x01d15, 0x0214d, 0x02543, > 0x028c8, 0x02baa, > + 0x02db8, 0x02ec6, 0x02eac, 0x02d4c, 0x02a90, 0x02672, 0x020f9, 0x01a3b, > 0x0125c, 0x00994, 0x00025, > + 0xff662, 0xfeca3, 0xfe34c, 0xfdabe, 0xfd364, 0xfcd94, 0xfc9a4, 0xfc7dd, > 0xfc86b, 0xfcb6e, 0xfd0e6, > + 0xfd8bb, 0xfe2b9, 0xfee8f, 0xffbd5, 0x00a0c, 0x018a3, 0x026fc, 0x03474, > 0x04065, 0x04a36, 0x0515a, > + 0x0555a, 0x055df, 0x052b2, 0x04bc3, 0x0412c, 0x03332, 0x02242, 0x00ef3, > 0xff9fb, 0xfe430, 0xfce78, > + 0xfb9c6, 0xfa70f, 0xf973a, 0xf8b1e, 0xf836e, 0xf80b7, 0xf8355, 0xf8b6e, > 0xf98ea, 0xfab78, 0xfc288, > + 0xfdd52, 0xffadf, 0x01a0a, 0x03992, 0x05823, 0x07465, 0x08d0c, 0x0a0e3, > 0x0aedc, 0x0b61f, 0x0b614, > + 0x0ae6b, 0x09f23, 0x0888d, 0x06b4c, 0x04850, 0x020d3, 0xff647, 0xfca4f, > 0xf9eae, 0xf7533, 0xf4fa8, > + 0xf2fc0, 0xf1702, 0xf06ba, 0xeffe6, 0xf032d, 0xf10d3, 0xf28b4, 0xf4a42, > 0xf7486, 0xfa62a, 0xfdd81, > + 0x01896, 0x0553d, 0x09128, 0x0c9fe, 0x0fd6f, 0x1294e, 0x14ba5, 0x162cb, > 0x16d75, 0x16ac4, 0x15a52, > + 0x13c38, 0x1110d, 0x0d9e9, 0x09856, 0x04e4a, 0xffe17, 0xfaa51, 0xf55c4, > 0xf0350, 0xeb5d6, 0xe7020, > + 0xe34c8, 0xe0620, 0xde61c, 0xdd64b, 0xdd7bd, 0xdeb03, 0xe102a, 0xe46b5, > 0xe8dab, 0xee397, 0xf4699, > + 0xfb479, 0x02ab3, 0x0a691, 0x1253c, 0x1a3d9, 0x21f98, 0x295cc, 0x30400, > 0x36803, 0x3bff8, 0x40a63, > + 0x44628, 0x4729b, 0x48f76, 0x49cd2, 0x49b35, 0x48b71, 0x46ea5, 0x44632, > 0x413a6, 0x3d8b3, 0x3971b, > + 0x350a6, 0x30716, 0x2bc15, 0x27131, 0x227cb, 0x1e11d, 0x19e2a, 0x15fc1, > 0x1267c, 0x0f2c0, 0x0c4c2, > + 0x09c8b, 0x079fb, 0x05cd2, 0x044b2, 0x0312d, 0x021c5, 0x015f4, 0x0135e > +}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 > DmicStereo16BitFormatConfigSize = sizeof (DmicStereo16BitFormatConfig); > + > +// DMIC Config 2 channels, 32 bits, 2.4Mhz BCLK > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST UINT32 DmicStereo32BitFormatConfig[] = > +{ > + 0x00000001,0xffff3210,0xffffff10,0xffffff32,0xffffffff, > + 3, > + 3, > + 0x00380003, > + 0x00380003, > + 0x3, > + 0x1, 0x09001303, 0x0, 0x0303, 0, 0, 0, 0, > + 0x11, 0x402a0, 0, 0, 0, 0, 0, 0, > + 0x11, 0xe03ae, 0, 0, 0, 0, 0, 0, > + 0x00008, 0xfffae, 0xfff12, 0xffdfb, 0xffc61, 0xffa5a, 0xff82b, 0xff641, > 0xff520, > 0xff544, 0xff6f4, 0xffa25, 0xffe65, > + 0x002e0, 0x0068f, 0x00876, 0x007f1, 0x004f5, 0x0002a, 0xffad4, 0xff68a, > 0xff4bf, 0xff64f, 0xffb20, > + 0x0020f, 0x00929, 0x00e2d, 0x00f40, 0x00b92, 0x003bf, 0xff9cd, 0xff0b0, > 0xfeb6e, 0xfec2a, 0xff351, > + 0xfff4f, 0x00ccd, 0x0179d, 0x01bfc, 0x017d7, 0x00ba3, 0xffa7e, 0xfe96f, > 0xfddf5, 0xfdc4d, 0xfe5ee, > + 0xff8ce, 0x00fb7, 0x023a8, 0x02df5, 0x02a74, 0x01910, 0xffe2c, 0xfe19c, > 0xfcc64, 0xfc5ee, 0xfd17e, > + 0xfecd4, 0x01071, 0x03198, 0x0457e, 0x044c9, 0x02e24, 0x00728, 0xfdb0e, > 0xfb781, 0xfa86b, 0xfb408, > + 0xfd884, 0x00c02, 0x03f37, 0x061e8, 0x06807, 0x04dc5, 0x01954, 0xfd98c, > 0xfa1c8, 0xf840f, 0xf8b52, > + 0xfb78c, 0xffd23, 0x047db, 0x080b1, 0x094e3, 0x07c08, 0x03b41, 0xfe45e, > 0xf9101, 0xf5b1e, 0xf54f4, > + 0xf8307, 0xfda0b, 0x0418f, 0x09ad0, 0x0c9d6, 0x0be16, 0x0780b, 0x009dd, > 0xf92ba, 0xf3606, 0xf10ed, > + 0xf315e, 0xf9135, 0x0172c, 0x09d83, 0x0fc9e, 0x11695, 0x0e05b, 0x065bf, > 0xfc6ed, 0xf2ff4, 0xecc96, > + 0xebbc9, 0xf0668, 0xf9be7, 0x05601, 0x1029e, 0x17140, 0x18065, 0x12728, > 0x07874, 0xf9edb, 0xed202, > + 0xe486c, 0xe294d, 0xe820f, 0xf424a, 0x03f29, 0x13d68, 0x1ff61, 0x253b2, > 0x220fa, 0x16be1, 0x05638, > + 0xf1798, 0xdf165, 0xd211a, 0xcd3f9, 0xd1eb5, 0xdfa89, 0xf4802, 0x0d656, > 0x26d63, 0x3d808, 0x4ecc3, > + 0x59315, 0x5c520, 0x58db6, 0x503d6, 0x444dd, 0x36ecb, 0x29b9a, 0x1de5d, > 0x14234, 0x0cae0, 0x07669, > + 0x03f40, 0x01e4e, 0x00c95, 0x0043b, 0x000f9,0xff961, 0x00823, 0x0084f, > 0x00a39, 0x00d21, 0x010a8, 0x0149a, 0x018cc, 0x01d15, 0x0214d, 0x02543, > 0x028c8, 0x02baa, > + 0x02db8, 0x02ec6, 0x02eac, 0x02d4c, 0x02a90, 0x02672, 0x020f9, 0x01a3b, > 0x0125c, 0x00994, 0x00025, > + 0xff662, 0xfeca3, 0xfe34c, 0xfdabe, 0xfd364, 0xfcd94, 0xfc9a4, 0xfc7dd, > 0xfc86b, 0xfcb6e, 0xfd0e6, > + 0xfd8bb, 0xfe2b9, 0xfee8f, 0xffbd5, 0x00a0c, 0x018a3, 0x026fc, 0x03474, > 0x04065, 0x04a36, 0x0515a, > + 0x0555a, 0x055df, 0x052b2, 0x04bc3, 0x0412c, 0x03332, 0x02242, 0x00ef3, > 0xff9fb, 0xfe430, 0xfce78, > + 0xfb9c6, 0xfa70f, 0xf973a, 0xf8b1e, 0xf836e, 0xf80b7, 0xf8355, 0xf8b6e, > 0xf98ea, 0xfab78, 0xfc288, > + 0xfdd52, 0xffadf, 0x01a0a, 0x03992, 0x05823, 0x07465, 0x08d0c, 0x0a0e3, > 0x0aedc, 0x0b61f, 0x0b614, > + 0x0ae6b, 0x09f23, 0x0888d, 0x06b4c, 0x04850, 0x020d3, 0xff647, 0xfca4f, > 0xf9eae, 0xf7533, 0xf4fa8, > + 0xf2fc0, 0xf1702, 0xf06ba, 0xeffe6, 0xf032d, 0xf10d3, 0xf28b4, 0xf4a42, > 0xf7486, 0xfa62a, 0xfdd81, > + 0x01896, 0x0553d, 0x09128, 0x0c9fe, 0x0fd6f, 0x1294e, 0x14ba5, 0x162cb, > 0x16d75, 0x16ac4, 0x15a52, > + 0x13c38, 0x1110d, 0x0d9e9, 0x09856, 0x04e4a, 0xffe17, 0xfaa51, 0xf55c4, > 0xf0350, 0xeb5d6, 0xe7020, > + 0xe34c8, 0xe0620, 0xde61c, 0xdd64b, 0xdd7bd, 0xdeb03, 0xe102a, 0xe46b5, > 0xe8dab, 0xee397, 0xf4699, > + 0xfb479, 0x02ab3, 0x0a691, 0x1253c, 0x1a3d9, 0x21f98, 0x295cc, 0x30400, > 0x36803, 0x3bff8, 0x40a63, > + 0x44628, 0x4729b, 0x48f76, 0x49cd2, 0x49b35, 0x48b71, 0x46ea5, 0x44632, > 0x413a6, 0x3d8b3, 0x3971b, > + 0x350a6, 0x30716, 0x2bc15, 0x27131, 0x227cb, 0x1e11d, 0x19e2a, 0x15fc1, > 0x1267c, 0x0f2c0, 0x0c4c2, > + 0x09c8b, 0x079fb, 0x05cd2, 0x044b2, 0x0312d, 0x021c5, 0x015f4, 0x0135e, > + 0x1, 0x09001303, 0x0, 0x0303, 0, 0, 0, 0, > + 0x11, 0x402a0, 0, 0, 0, 0, 0, 0, > + 0x11, 0xe03ae, 0, 0, 0, 0, 0, 0, > + 0x00008, 0xfffae, 0xfff12, 0xffdfb, 0xffc61, 0xffa5a, 0xff82b, 0xff641, > 0xff520, > 0xff544, 0xff6f4, 0xffa25, 0xffe65, > + 0x002e0, 0x0068f, 0x00876, 0x007f1, 0x004f5, 0x0002a, 0xffad4, 0xff68a, > 0xff4bf, 0xff64f, 0xffb20, > + 0x0020f, 0x00929, 0x00e2d, 0x00f40, 0x00b92, 0x003bf, 0xff9cd, 0xff0b0, > 0xfeb6e, 0xfec2a, 0xff351, > + 0xfff4f, 0x00ccd, 0x0179d, 0x01bfc, 0x017d7, 0x00ba3, 0xffa7e, 0xfe96f, > 0xfddf5, 0xfdc4d, 0xfe5ee, > + 0xff8ce, 0x00fb7, 0x023a8, 0x02df5, 0x02a74, 0x01910, 0xffe2c, 0xfe19c, > 0xfcc64, 0xfc5ee, 0xfd17e, > + 0xfecd4, 0x01071, 0x03198, 0x0457e, 0x044c9, 0x02e24, 0x00728, 0xfdb0e, > 0xfb781, 0xfa86b, 0xfb408, > + 0xfd884, 0x00c02, 0x03f37, 0x061e8, 0x06807, 0x04dc5, 0x01954, 0xfd98c, > 0xfa1c8, 0xf840f, 0xf8b52, > + 0xfb78c, 0xffd23, 0x047db, 0x080b1, 0x094e3, 0x07c08, 0x03b41, 0xfe45e, > 0xf9101, 0xf5b1e, 0xf54f4, > + 0xf8307, 0xfda0b, 0x0418f, 0x09ad0, 0x0c9d6, 0x0be16, 0x0780b, 0x009dd, > 0xf92ba, 0xf3606, 0xf10ed, > + 0xf315e, 0xf9135, 0x0172c, 0x09d83, 0x0fc9e, 0x11695, 0x0e05b, 0x065bf, > 0xfc6ed, 0xf2ff4, 0xecc96, > + 0xebbc9, 0xf0668, 0xf9be7, 0x05601, 0x1029e, 0x17140, 0x18065, 0x12728, > 0x07874, 0xf9edb, 0xed202, > + 0xe486c, 0xe294d, 0xe820f, 0xf424a, 0x03f29, 0x13d68, 0x1ff61, 0x253b2, > 0x220fa, 0x16be1, 0x05638, > + 0xf1798, 0xdf165, 0xd211a, 0xcd3f9, 0xd1eb5, 0xdfa89, 0xf4802, 0x0d656, > 0x26d63, 0x3d808, 0x4ecc3, > + 0x59315, 0x5c520, 0x58db6, 0x503d6, 0x444dd, 0x36ecb, 0x29b9a, 0x1de5d, > 0x14234, 0x0cae0, 0x07669, > + 0x03f40, 0x01e4e, 0x00c95, 0x0043b, 0x000f9,0xff961, 0x00823, 0x0084f, > 0x00a39, 0x00d21, 0x010a8, 0x0149a, 0x018cc, 0x01d15, 0x0214d, 0x02543, > 0x028c8, 0x02baa, > + 0x02db8, 0x02ec6, 0x02eac, 0x02d4c, 0x02a90, 0x02672, 0x020f9, 0x01a3b, > 0x0125c, 0x00994, 0x00025, > + 0xff662, 0xfeca3, 0xfe34c, 0xfdabe, 0xfd364, 0xfcd94, 0xfc9a4, 0xfc7dd, > 0xfc86b, 0xfcb6e, 0xfd0e6, > + 0xfd8bb, 0xfe2b9, 0xfee8f, 0xffbd5, 0x00a0c, 0x018a3, 0x026fc, 0x03474, > 0x04065, 0x04a36, 0x0515a, > + 0x0555a, 0x055df, 0x052b2, 0x04bc3, 0x0412c, 0x03332, 0x02242, 0x00ef3, > 0xff9fb, 0xfe430, 0xfce78, > + 0xfb9c6, 0xfa70f, 0xf973a, 0xf8b1e, 0xf836e, 0xf80b7, 0xf8355, 0xf8b6e, > 0xf98ea, 0xfab78, 0xfc288, > + 0xfdd52, 0xffadf, 0x01a0a, 0x03992, 0x05823, 0x07465, 0x08d0c, 0x0a0e3, > 0x0aedc, 0x0b61f, 0x0b614, > + 0x0ae6b, 0x09f23, 0x0888d, 0x06b4c, 0x04850, 0x020d3, 0xff647, 0xfca4f, > 0xf9eae, 0xf7533, 0xf4fa8, > + 0xf2fc0, 0xf1702, 0xf06ba, 0xeffe6, 0xf032d, 0xf10d3, 0xf28b4, 0xf4a42, > 0xf7486, 0xfa62a, 0xfdd81, > + 0x01896, 0x0553d, 0x09128, 0x0c9fe, 0x0fd6f, 0x1294e, 0x14ba5, 0x162cb, > 0x16d75, 0x16ac4, 0x15a52, > + 0x13c38, 0x1110d, 0x0d9e9, 0x09856, 0x04e4a, 0xffe17, 0xfaa51, 0xf55c4, > 0xf0350, 0xeb5d6, 0xe7020, > + 0xe34c8, 0xe0620, 0xde61c, 0xdd64b, 0xdd7bd, 0xdeb03, 0xe102a, 0xe46b5, > 0xe8dab, 0xee397, 0xf4699, > + 0xfb479, 0x02ab3, 0x0a691, 0x1253c, 0x1a3d9, 0x21f98, 0x295cc, 0x30400, > 0x36803, 0x3bff8, 0x40a63, > + 0x44628, 0x4729b, 0x48f76, 0x49cd2, 0x49b35, 0x48b71, 0x46ea5, 0x44632, > 0x413a6, 0x3d8b3, 0x3971b, > + 0x350a6, 0x30716, 0x2bc15, 0x27131, 0x227cb, 0x1e11d, 0x19e2a, 0x15fc1, > 0x1267c, 0x0f2c0, 0x0c4c2, > + 0x09c8b, 0x079fb, 0x05cd2, 0x044b2, 0x0312d, 0x021c5, 0x015f4, 0x0135e > +}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 > DmicStereo32BitFormatConfigSize = sizeof (DmicStereo32BitFormatConfig); > + > +// DMIC Config 4 channels, 16 bits, 2.4Mhz BCLK > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST UINT32 DmicQuad16BitFormatConfig[] = > +{ > + 0x00000001,0xffff3210,0xffffff10,0xffffff32,0xffffffff, > + 3, > + 3, > + 0x00320003, > + 0x00320003, > + 0x3, > + 0x1, 0x09001303, 0x0, 0x0303, 0, 0, 0, 0, > + 0x11, 0x402a0, 0, 0, 0, 0, 0, 0, > + 0x11, 0xe03ae, 0, 0, 0, 0, 0, 0, > + 0x00008, 0xfffae, 0xfff12, 0xffdfb, 0xffc61, 0xffa5a, 0xff82b, 0xff641, > 0xff520, > 0xff544, 0xff6f4, 0xffa25, 0xffe65, > + 0x002e0, 0x0068f, 0x00876, 0x007f1, 0x004f5, 0x0002a, 0xffad4, 0xff68a, > 0xff4bf, 0xff64f, 0xffb20, > + 0x0020f, 0x00929, 0x00e2d, 0x00f40, 0x00b92, 0x003bf, 0xff9cd, 0xff0b0, > 0xfeb6e, 0xfec2a, 0xff351, > + 0xfff4f, 0x00ccd, 0x0179d, 0x01bfc, 0x017d7, 0x00ba3, 0xffa7e, 0xfe96f, > 0xfddf5, 0xfdc4d, 0xfe5ee, > + 0xff8ce, 0x00fb7, 0x023a8, 0x02df5, 0x02a74, 0x01910, 0xffe2c, 0xfe19c, > 0xfcc64, 0xfc5ee, 0xfd17e, > + 0xfecd4, 0x01071, 0x03198, 0x0457e, 0x044c9, 0x02e24, 0x00728, 0xfdb0e, > 0xfb781, 0xfa86b, 0xfb408, > + 0xfd884, 0x00c02, 0x03f37, 0x061e8, 0x06807, 0x04dc5, 0x01954, 0xfd98c, > 0xfa1c8, 0xf840f, 0xf8b52, > + 0xfb78c, 0xffd23, 0x047db, 0x080b1, 0x094e3, 0x07c08, 0x03b41, 0xfe45e, > 0xf9101, 0xf5b1e, 0xf54f4, > + 0xf8307, 0xfda0b, 0x0418f, 0x09ad0, 0x0c9d6, 0x0be16, 0x0780b, 0x009dd, > 0xf92ba, 0xf3606, 0xf10ed, > + 0xf315e, 0xf9135, 0x0172c, 0x09d83, 0x0fc9e, 0x11695, 0x0e05b, 0x065bf, > 0xfc6ed, 0xf2ff4, 0xecc96, > + 0xebbc9, 0xf0668, 0xf9be7, 0x05601, 0x1029e, 0x17140, 0x18065, 0x12728, > 0x07874, 0xf9edb, 0xed202, > + 0xe486c, 0xe294d, 0xe820f, 0xf424a, 0x03f29, 0x13d68, 0x1ff61, 0x253b2, > 0x220fa, 0x16be1, 0x05638, > + 0xf1798, 0xdf165, 0xd211a, 0xcd3f9, 0xd1eb5, 0xdfa89, 0xf4802, 0x0d656, > 0x26d63, 0x3d808, 0x4ecc3, > + 0x59315, 0x5c520, 0x58db6, 0x503d6, 0x444dd, 0x36ecb, 0x29b9a, 0x1de5d, > 0x14234, 0x0cae0, 0x07669, > + 0x03f40, 0x01e4e, 0x00c95, 0x0043b, 0x000f9,0xff961, 0x00823, 0x0084f, > 0x00a39, 0x00d21, 0x010a8, 0x0149a, 0x018cc, 0x01d15, 0x0214d, 0x02543, > 0x028c8, 0x02baa, > + 0x02db8, 0x02ec6, 0x02eac, 0x02d4c, 0x02a90, 0x02672, 0x020f9, 0x01a3b, > 0x0125c, 0x00994, 0x00025, > + 0xff662, 0xfeca3, 0xfe34c, 0xfdabe, 0xfd364, 0xfcd94, 0xfc9a4, 0xfc7dd, > 0xfc86b, 0xfcb6e, 0xfd0e6, > + 0xfd8bb, 0xfe2b9, 0xfee8f, 0xffbd5, 0x00a0c, 0x018a3, 0x026fc, 0x03474, > 0x04065, 0x04a36, 0x0515a, > + 0x0555a, 0x055df, 0x052b2, 0x04bc3, 0x0412c, 0x03332, 0x02242, 0x00ef3, > 0xff9fb, 0xfe430, 0xfce78, > + 0xfb9c6, 0xfa70f, 0xf973a, 0xf8b1e, 0xf836e, 0xf80b7, 0xf8355, 0xf8b6e, > 0xf98ea, 0xfab78, 0xfc288, > + 0xfdd52, 0xffadf, 0x01a0a, 0x03992, 0x05823, 0x07465, 0x08d0c, 0x0a0e3, > 0x0aedc, 0x0b61f, 0x0b614, > + 0x0ae6b, 0x09f23, 0x0888d, 0x06b4c, 0x04850, 0x020d3, 0xff647, 0xfca4f, > 0xf9eae, 0xf7533, 0xf4fa8, > + 0xf2fc0, 0xf1702, 0xf06ba, 0xeffe6, 0xf032d, 0xf10d3, 0xf28b4, 0xf4a42, > 0xf7486, 0xfa62a, 0xfdd81, > + 0x01896, 0x0553d, 0x09128, 0x0c9fe, 0x0fd6f, 0x1294e, 0x14ba5, 0x162cb, > 0x16d75, 0x16ac4, 0x15a52, > + 0x13c38, 0x1110d, 0x0d9e9, 0x09856, 0x04e4a, 0xffe17, 0xfaa51, 0xf55c4, > 0xf0350, 0xeb5d6, 0xe7020, > + 0xe34c8, 0xe0620, 0xde61c, 0xdd64b, 0xdd7bd, 0xdeb03, 0xe102a, 0xe46b5, > 0xe8dab, 0xee397, 0xf4699, > + 0xfb479, 0x02ab3, 0x0a691, 0x1253c, 0x1a3d9, 0x21f98, 0x295cc, 0x30400, > 0x36803, 0x3bff8, 0x40a63, > + 0x44628, 0x4729b, 0x48f76, 0x49cd2, 0x49b35, 0x48b71, 0x46ea5, 0x44632, > 0x413a6, 0x3d8b3, 0x3971b, > + 0x350a6, 0x30716, 0x2bc15, 0x27131, 0x227cb, 0x1e11d, 0x19e2a, 0x15fc1, > 0x1267c, 0x0f2c0, 0x0c4c2, > + 0x09c8b, 0x079fb, 0x05cd2, 0x044b2, 0x0312d, 0x021c5, 0x015f4, 0x0135e, > + 0x1, 0x09001303, 0x0, 0x0303, 0, 0, 0, 0, > + 0x11, 0x402a0, 0, 0, 0, 0, 0, 0, > + 0x11, 0xe03ae, 0, 0, 0, 0, 0, 0, > + 0x00008, 0xfffae, 0xfff12, 0xffdfb, 0xffc61, 0xffa5a, 0xff82b, 0xff641, > 0xff520, > 0xff544, 0xff6f4, 0xffa25, 0xffe65, > + 0x002e0, 0x0068f, 0x00876, 0x007f1, 0x004f5, 0x0002a, 0xffad4, 0xff68a, > 0xff4bf, 0xff64f, 0xffb20, > + 0x0020f, 0x00929, 0x00e2d, 0x00f40, 0x00b92, 0x003bf, 0xff9cd, 0xff0b0, > 0xfeb6e, 0xfec2a, 0xff351, > + 0xfff4f, 0x00ccd, 0x0179d, 0x01bfc, 0x017d7, 0x00ba3, 0xffa7e, 0xfe96f, > 0xfddf5, 0xfdc4d, 0xfe5ee, > + 0xff8ce, 0x00fb7, 0x023a8, 0x02df5, 0x02a74, 0x01910, 0xffe2c, 0xfe19c, > 0xfcc64, 0xfc5ee, 0xfd17e, > + 0xfecd4, 0x01071, 0x03198, 0x0457e, 0x044c9, 0x02e24, 0x00728, 0xfdb0e, > 0xfb781, 0xfa86b, 0xfb408, > + 0xfd884, 0x00c02, 0x03f37, 0x061e8, 0x06807, 0x04dc5, 0x01954, 0xfd98c, > 0xfa1c8, 0xf840f, 0xf8b52, > + 0xfb78c, 0xffd23, 0x047db, 0x080b1, 0x094e3, 0x07c08, 0x03b41, 0xfe45e, > 0xf9101, 0xf5b1e, 0xf54f4, > + 0xf8307, 0xfda0b, 0x0418f, 0x09ad0, 0x0c9d6, 0x0be16, 0x0780b, 0x009dd, > 0xf92ba, 0xf3606, 0xf10ed, > + 0xf315e, 0xf9135, 0x0172c, 0x09d83, 0x0fc9e, 0x11695, 0x0e05b, 0x065bf, > 0xfc6ed, 0xf2ff4, 0xecc96, > + 0xebbc9, 0xf0668, 0xf9be7, 0x05601, 0x1029e, 0x17140, 0x18065, 0x12728, > 0x07874, 0xf9edb, 0xed202, > + 0xe486c, 0xe294d, 0xe820f, 0xf424a, 0x03f29, 0x13d68, 0x1ff61, 0x253b2, > 0x220fa, 0x16be1, 0x05638, > + 0xf1798, 0xdf165, 0xd211a, 0xcd3f9, 0xd1eb5, 0xdfa89, 0xf4802, 0x0d656, > 0x26d63, 0x3d808, 0x4ecc3, > + 0x59315, 0x5c520, 0x58db6, 0x503d6, 0x444dd, 0x36ecb, 0x29b9a, 0x1de5d, > 0x14234, 0x0cae0, 0x07669, > + 0x03f40, 0x01e4e, 0x00c95, 0x0043b, 0x000f9,0xff961, 0x00823, 0x0084f, > 0x00a39, 0x00d21, 0x010a8, 0x0149a, 0x018cc, 0x01d15, 0x0214d, 0x02543, > 0x028c8, 0x02baa, > + 0x02db8, 0x02ec6, 0x02eac, 0x02d4c, 0x02a90, 0x02672, 0x020f9, 0x01a3b, > 0x0125c, 0x00994, 0x00025, > + 0xff662, 0xfeca3, 0xfe34c, 0xfdabe, 0xfd364, 0xfcd94, 0xfc9a4, 0xfc7dd, > 0xfc86b, 0xfcb6e, 0xfd0e6, > + 0xfd8bb, 0xfe2b9, 0xfee8f, 0xffbd5, 0x00a0c, 0x018a3, 0x026fc, 0x03474, > 0x04065, 0x04a36, 0x0515a, > + 0x0555a, 0x055df, 0x052b2, 0x04bc3, 0x0412c, 0x03332, 0x02242, 0x00ef3, > 0xff9fb, 0xfe430, 0xfce78, > + 0xfb9c6, 0xfa70f, 0xf973a, 0xf8b1e, 0xf836e, 0xf80b7, 0xf8355, 0xf8b6e, > 0xf98ea, 0xfab78, 0xfc288, > + 0xfdd52, 0xffadf, 0x01a0a, 0x03992, 0x05823, 0x07465, 0x08d0c, 0x0a0e3, > 0x0aedc, 0x0b61f, 0x0b614, > + 0x0ae6b, 0x09f23, 0x0888d, 0x06b4c, 0x04850, 0x020d3, 0xff647, 0xfca4f, > 0xf9eae, 0xf7533, 0xf4fa8, > + 0xf2fc0, 0xf1702, 0xf06ba, 0xeffe6, 0xf032d, 0xf10d3, 0xf28b4, 0xf4a42, > 0xf7486, 0xfa62a, 0xfdd81, > + 0x01896, 0x0553d, 0x09128, 0x0c9fe, 0x0fd6f, 0x1294e, 0x14ba5, 0x162cb, > 0x16d75, 0x16ac4, 0x15a52, > + 0x13c38, 0x1110d, 0x0d9e9, 0x09856, 0x04e4a, 0xffe17, 0xfaa51, 0xf55c4, > 0xf0350, 0xeb5d6, 0xe7020, > + 0xe34c8, 0xe0620, 0xde61c, 0xdd64b, 0xdd7bd, 0xdeb03, 0xe102a, 0xe46b5, > 0xe8dab, 0xee397, 0xf4699, > + 0xfb479, 0x02ab3, 0x0a691, 0x1253c, 0x1a3d9, 0x21f98, 0x295cc, 0x30400, > 0x36803, 0x3bff8, 0x40a63, > + 0x44628, 0x4729b, 0x48f76, 0x49cd2, 0x49b35, 0x48b71, 0x46ea5, 0x44632, > 0x413a6, 0x3d8b3, 0x3971b, > + 0x350a6, 0x30716, 0x2bc15, 0x27131, 0x227cb, 0x1e11d, 0x19e2a, 0x15fc1, > 0x1267c, 0x0f2c0, 0x0c4c2, > + 0x09c8b, 0x079fb, 0x05cd2, 0x044b2, 0x0312d, 0x021c5, 0x015f4, 0x0135e > +}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 > DmicQuad16BitFormatConfigSize = sizeof (DmicQuad16BitFormatConfig); > + > +// DMIC Config 4 channels, 32 bits, 2.4Mhz BCLK > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST UINT32 DmicQuad32BitFormatConfig[] = > +{ > + 0x00000001,0xffff3210,0xffffff10,0xffffff32,0xffffffff, > + 3, > + 3, > + 0x003A0003, > + 0x003A0003, > + 0x3, > + 0x1, 0x09001303, 0x0, 0x0303, 0, 0, 0, 0, > + 0x11, 0x402a0, 0, 0, 0, 0, 0, 0, > + 0x11, 0xe03ae, 0, 0, 0, 0, 0, 0, > + 0x00008, 0xfffae, 0xfff12, 0xffdfb, 0xffc61, 0xffa5a, 0xff82b, 0xff641, > 0xff520, > 0xff544, 0xff6f4, 0xffa25, 0xffe65, > + 0x002e0, 0x0068f, 0x00876, 0x007f1, 0x004f5, 0x0002a, 0xffad4, 0xff68a, > 0xff4bf, 0xff64f, 0xffb20, > + 0x0020f, 0x00929, 0x00e2d, 0x00f40, 0x00b92, 0x003bf, 0xff9cd, 0xff0b0, > 0xfeb6e, 0xfec2a, 0xff351, > + 0xfff4f, 0x00ccd, 0x0179d, 0x01bfc, 0x017d7, 0x00ba3, 0xffa7e, 0xfe96f, > 0xfddf5, 0xfdc4d, 0xfe5ee, > + 0xff8ce, 0x00fb7, 0x023a8, 0x02df5, 0x02a74, 0x01910, 0xffe2c, 0xfe19c, > 0xfcc64, 0xfc5ee, 0xfd17e, > + 0xfecd4, 0x01071, 0x03198, 0x0457e, 0x044c9, 0x02e24, 0x00728, 0xfdb0e, > 0xfb781, 0xfa86b, 0xfb408, > + 0xfd884, 0x00c02, 0x03f37, 0x061e8, 0x06807, 0x04dc5, 0x01954, 0xfd98c, > 0xfa1c8, 0xf840f, 0xf8b52, > + 0xfb78c, 0xffd23, 0x047db, 0x080b1, 0x094e3, 0x07c08, 0x03b41, 0xfe45e, > 0xf9101, 0xf5b1e, 0xf54f4, > + 0xf8307, 0xfda0b, 0x0418f, 0x09ad0, 0x0c9d6, 0x0be16, 0x0780b, 0x009dd, > 0xf92ba, 0xf3606, 0xf10ed, > + 0xf315e, 0xf9135, 0x0172c, 0x09d83, 0x0fc9e, 0x11695, 0x0e05b, 0x065bf, > 0xfc6ed, 0xf2ff4, 0xecc96, > + 0xebbc9, 0xf0668, 0xf9be7, 0x05601, 0x1029e, 0x17140, 0x18065, 0x12728, > 0x07874, 0xf9edb, 0xed202, > + 0xe486c, 0xe294d, 0xe820f, 0xf424a, 0x03f29, 0x13d68, 0x1ff61, 0x253b2, > 0x220fa, 0x16be1, 0x05638, > + 0xf1798, 0xdf165, 0xd211a, 0xcd3f9, 0xd1eb5, 0xdfa89, 0xf4802, 0x0d656, > 0x26d63, 0x3d808, 0x4ecc3, > + 0x59315, 0x5c520, 0x58db6, 0x503d6, 0x444dd, 0x36ecb, 0x29b9a, 0x1de5d, > 0x14234, 0x0cae0, 0x07669, > + 0x03f40, 0x01e4e, 0x00c95, 0x0043b, 0x000f9,0xff961, 0x00823, 0x0084f, > 0x00a39, 0x00d21, 0x010a8, 0x0149a, 0x018cc, 0x01d15, 0x0214d, 0x02543, > 0x028c8, 0x02baa, > + 0x02db8, 0x02ec6, 0x02eac, 0x02d4c, 0x02a90, 0x02672, 0x020f9, 0x01a3b, > 0x0125c, 0x00994, 0x00025, > + 0xff662, 0xfeca3, 0xfe34c, 0xfdabe, 0xfd364, 0xfcd94, 0xfc9a4, 0xfc7dd, > 0xfc86b, 0xfcb6e, 0xfd0e6, > + 0xfd8bb, 0xfe2b9, 0xfee8f, 0xffbd5, 0x00a0c, 0x018a3, 0x026fc, 0x03474, > 0x04065, 0x04a36, 0x0515a, > + 0x0555a, 0x055df, 0x052b2, 0x04bc3, 0x0412c, 0x03332, 0x02242, 0x00ef3, > 0xff9fb, 0xfe430, 0xfce78, > + 0xfb9c6, 0xfa70f, 0xf973a, 0xf8b1e, 0xf836e, 0xf80b7, 0xf8355, 0xf8b6e, > 0xf98ea, 0xfab78, 0xfc288, > + 0xfdd52, 0xffadf, 0x01a0a, 0x03992, 0x05823, 0x07465, 0x08d0c, 0x0a0e3, > 0x0aedc, 0x0b61f, 0x0b614, > + 0x0ae6b, 0x09f23, 0x0888d, 0x06b4c, 0x04850, 0x020d3, 0xff647, 0xfca4f, > 0xf9eae, 0xf7533, 0xf4fa8, > + 0xf2fc0, 0xf1702, 0xf06ba, 0xeffe6, 0xf032d, 0xf10d3, 0xf28b4, 0xf4a42, > 0xf7486, 0xfa62a, 0xfdd81, > + 0x01896, 0x0553d, 0x09128, 0x0c9fe, 0x0fd6f, 0x1294e, 0x14ba5, 0x162cb, > 0x16d75, 0x16ac4, 0x15a52, > + 0x13c38, 0x1110d, 0x0d9e9, 0x09856, 0x04e4a, 0xffe17, 0xfaa51, 0xf55c4, > 0xf0350, 0xeb5d6, 0xe7020, > + 0xe34c8, 0xe0620, 0xde61c, 0xdd64b, 0xdd7bd, 0xdeb03, 0xe102a, 0xe46b5, > 0xe8dab, 0xee397, 0xf4699, > + 0xfb479, 0x02ab3, 0x0a691, 0x1253c, 0x1a3d9, 0x21f98, 0x295cc, 0x30400, > 0x36803, 0x3bff8, 0x40a63, > + 0x44628, 0x4729b, 0x48f76, 0x49cd2, 0x49b35, 0x48b71, 0x46ea5, 0x44632, > 0x413a6, 0x3d8b3, 0x3971b, > + 0x350a6, 0x30716, 0x2bc15, 0x27131, 0x227cb, 0x1e11d, 0x19e2a, 0x15fc1, > 0x1267c, 0x0f2c0, 0x0c4c2, > + 0x09c8b, 0x079fb, 0x05cd2, 0x044b2, 0x0312d, 0x021c5, 0x015f4, 0x0135e, > + 0x1, 0x09001303, 0x0, 0x0303, 0, 0, 0, 0, > + 0x11, 0x402a0, 0, 0, 0, 0, 0, 0, > + 0x11, 0xe03ae, 0, 0, 0, 0, 0, 0, > + 0x00008, 0xfffae, 0xfff12, 0xffdfb, 0xffc61, 0xffa5a, 0xff82b, 0xff641, > 0xff520, > 0xff544, 0xff6f4, 0xffa25, 0xffe65, > + 0x002e0, 0x0068f, 0x00876, 0x007f1, 0x004f5, 0x0002a, 0xffad4, 0xff68a, > 0xff4bf, 0xff64f, 0xffb20, > + 0x0020f, 0x00929, 0x00e2d, 0x00f40, 0x00b92, 0x003bf, 0xff9cd, 0xff0b0, > 0xfeb6e, 0xfec2a, 0xff351, > + 0xfff4f, 0x00ccd, 0x0179d, 0x01bfc, 0x017d7, 0x00ba3, 0xffa7e, 0xfe96f, > 0xfddf5, 0xfdc4d, 0xfe5ee, > + 0xff8ce, 0x00fb7, 0x023a8, 0x02df5, 0x02a74, 0x01910, 0xffe2c, 0xfe19c, > 0xfcc64, 0xfc5ee, 0xfd17e, > + 0xfecd4, 0x01071, 0x03198, 0x0457e, 0x044c9, 0x02e24, 0x00728, 0xfdb0e, > 0xfb781, 0xfa86b, 0xfb408, > + 0xfd884, 0x00c02, 0x03f37, 0x061e8, 0x06807, 0x04dc5, 0x01954, 0xfd98c, > 0xfa1c8, 0xf840f, 0xf8b52, > + 0xfb78c, 0xffd23, 0x047db, 0x080b1, 0x094e3, 0x07c08, 0x03b41, 0xfe45e, > 0xf9101, 0xf5b1e, 0xf54f4, > + 0xf8307, 0xfda0b, 0x0418f, 0x09ad0, 0x0c9d6, 0x0be16, 0x0780b, 0x009dd, > 0xf92ba, 0xf3606, 0xf10ed, > + 0xf315e, 0xf9135, 0x0172c, 0x09d83, 0x0fc9e, 0x11695, 0x0e05b, 0x065bf, > 0xfc6ed, 0xf2ff4, 0xecc96, > + 0xebbc9, 0xf0668, 0xf9be7, 0x05601, 0x1029e, 0x17140, 0x18065, 0x12728, > 0x07874, 0xf9edb, 0xed202, > + 0xe486c, 0xe294d, 0xe820f, 0xf424a, 0x03f29, 0x13d68, 0x1ff61, 0x253b2, > 0x220fa, 0x16be1, 0x05638, > + 0xf1798, 0xdf165, 0xd211a, 0xcd3f9, 0xd1eb5, 0xdfa89, 0xf4802, 0x0d656, > 0x26d63, 0x3d808, 0x4ecc3, > + 0x59315, 0x5c520, 0x58db6, 0x503d6, 0x444dd, 0x36ecb, 0x29b9a, 0x1de5d, > 0x14234, 0x0cae0, 0x07669, > + 0x03f40, 0x01e4e, 0x00c95, 0x0043b, 0x000f9,0xff961, 0x00823, 0x0084f, > 0x00a39, 0x00d21, 0x010a8, 0x0149a, 0x018cc, 0x01d15, 0x0214d, 0x02543, > 0x028c8, 0x02baa, > + 0x02db8, 0x02ec6, 0x02eac, 0x02d4c, 0x02a90, 0x02672, 0x020f9, 0x01a3b, > 0x0125c, 0x00994, 0x00025, > + 0xff662, 0xfeca3, 0xfe34c, 0xfdabe, 0xfd364, 0xfcd94, 0xfc9a4, 0xfc7dd, > 0xfc86b, 0xfcb6e, 0xfd0e6, > + 0xfd8bb, 0xfe2b9, 0xfee8f, 0xffbd5, 0x00a0c, 0x018a3, 0x026fc, 0x03474, > 0x04065, 0x04a36, 0x0515a, > + 0x0555a, 0x055df, 0x052b2, 0x04bc3, 0x0412c, 0x03332, 0x02242, 0x00ef3, > 0xff9fb, 0xfe430, 0xfce78, > + 0xfb9c6, 0xfa70f, 0xf973a, 0xf8b1e, 0xf836e, 0xf80b7, 0xf8355, 0xf8b6e, > 0xf98ea, 0xfab78, 0xfc288, > + 0xfdd52, 0xffadf, 0x01a0a, 0x03992, 0x05823, 0x07465, 0x08d0c, 0x0a0e3, > 0x0aedc, 0x0b61f, 0x0b614, > + 0x0ae6b, 0x09f23, 0x0888d, 0x06b4c, 0x04850, 0x020d3, 0xff647, 0xfca4f, > 0xf9eae, 0xf7533, 0xf4fa8, > + 0xf2fc0, 0xf1702, 0xf06ba, 0xeffe6, 0xf032d, 0xf10d3, 0xf28b4, 0xf4a42, > 0xf7486, 0xfa62a, 0xfdd81, > + 0x01896, 0x0553d, 0x09128, 0x0c9fe, 0x0fd6f, 0x1294e, 0x14ba5, 0x162cb, > 0x16d75, 0x16ac4, 0x15a52, > + 0x13c38, 0x1110d, 0x0d9e9, 0x09856, 0x04e4a, 0xffe17, 0xfaa51, 0xf55c4, > 0xf0350, 0xeb5d6, 0xe7020, > + 0xe34c8, 0xe0620, 0xde61c, 0xdd64b, 0xdd7bd, 0xdeb03, 0xe102a, 0xe46b5, > 0xe8dab, 0xee397, 0xf4699, > + 0xfb479, 0x02ab3, 0x0a691, 0x1253c, 0x1a3d9, 0x21f98, 0x295cc, 0x30400, > 0x36803, 0x3bff8, 0x40a63, > + 0x44628, 0x4729b, 0x48f76, 0x49cd2, 0x49b35, 0x48b71, 0x46ea5, 0x44632, > 0x413a6, 0x3d8b3, 0x3971b, > + 0x350a6, 0x30716, 0x2bc15, 0x27131, 0x227cb, 0x1e11d, 0x19e2a, 0x15fc1, > 0x1267c, 0x0f2c0, 0x0c4c2, > + 0x09c8b, 0x079fb, 0x05cd2, 0x044b2, 0x0312d, 0x021c5, 0x015f4, 0x0135e > +}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 > DmicQuad32BitFormatConfigSize = sizeof (DmicQuad32BitFormatConfig); > + > + > +// DMIC Config 1 channel, 16 bits > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST UINT32 DmicMono16BitFormatConfig[] = > +{ > + 0x00000000, > + 0xfffffff0,0xfffffff0,0xfffffff0,0xfffffff0, > + 3, > + 3, > + 0x00300003, > + 0x00300003, > + 0x3, > + 0x0, 0x09001303, 0x0, 0x0301, 0, 0, 0, 0, > + 0x10, 0x402a0, 0, 0, 0, 0, 0, 0, > + 0x10, 0xe03ae, 0, 0, 0, 0, 0, 0, > + 0x00008, 0xfffae, 0xfff12, 0xffdfb, 0xffc61, 0xffa5a, 0xff82b, 0xff641, > 0xff520, > 0xff544, 0xff6f4, 0xffa25, 0xffe65, > + 0x002e0, 0x0068f, 0x00876, 0x007f1, 0x004f5, 0x0002a, 0xffad4, 0xff68a, > 0xff4bf, 0xff64f, 0xffb20, > + 0x0020f, 0x00929, 0x00e2d, 0x00f40, 0x00b92, 0x003bf, 0xff9cd, 0xff0b0, > 0xfeb6e, 0xfec2a, 0xff351, > + 0xfff4f, 0x00ccd, 0x0179d, 0x01bfc, 0x017d7, 0x00ba3, 0xffa7e, 0xfe96f, > 0xfddf5, 0xfdc4d, 0xfe5ee, > + 0xff8ce, 0x00fb7, 0x023a8, 0x02df5, 0x02a74, 0x01910, 0xffe2c, 0xfe19c, > 0xfcc64, 0xfc5ee, 0xfd17e, > + 0xfecd4, 0x01071, 0x03198, 0x0457e, 0x044c9, 0x02e24, 0x00728, 0xfdb0e, > 0xfb781, 0xfa86b, 0xfb408, > + 0xfd884, 0x00c02, 0x03f37, 0x061e8, 0x06807, 0x04dc5, 0x01954, 0xfd98c, > 0xfa1c8, 0xf840f, 0xf8b52, > + 0xfb78c, 0xffd23, 0x047db, 0x080b1, 0x094e3, 0x07c08, 0x03b41, 0xfe45e, > 0xf9101, 0xf5b1e, 0xf54f4, > + 0xf8307, 0xfda0b, 0x0418f, 0x09ad0, 0x0c9d6, 0x0be16, 0x0780b, 0x009dd, > 0xf92ba, 0xf3606, 0xf10ed, > + 0xf315e, 0xf9135, 0x0172c, 0x09d83, 0x0fc9e, 0x11695, 0x0e05b, 0x065bf, > 0xfc6ed, 0xf2ff4, 0xecc96, > + 0xebbc9, 0xf0668, 0xf9be7, 0x05601, 0x1029e, 0x17140, 0x18065, 0x12728, > 0x07874, 0xf9edb, 0xed202, > + 0xe486c, 0xe294d, 0xe820f, 0xf424a, 0x03f29, 0x13d68, 0x1ff61, 0x253b2, > 0x220fa, 0x16be1, 0x05638, > + 0xf1798, 0xdf165, 0xd211a, 0xcd3f9, 0xd1eb5, 0xdfa89, 0xf4802, 0x0d656, > 0x26d63, 0x3d808, 0x4ecc3, > + 0x59315, 0x5c520, 0x58db6, 0x503d6, 0x444dd, 0x36ecb, 0x29b9a, 0x1de5d, > 0x14234, 0x0cae0, 0x07669, > + 0x03f40, 0x01e4e, 0x00c95, 0x0043b, 0x000f9,0xff961, 0x00823, 0x0084f, > 0x00a39, 0x00d21, 0x010a8, 0x0149a, 0x018cc, 0x01d15, 0x0214d, 0x02543, > 0x028c8, 0x02baa, > + 0x02db8, 0x02ec6, 0x02eac, 0x02d4c, 0x02a90, 0x02672, 0x020f9, 0x01a3b, > 0x0125c, 0x00994, 0x00025, > + 0xff662, 0xfeca3, 0xfe34c, 0xfdabe, 0xfd364, 0xfcd94, 0xfc9a4, 0xfc7dd, > 0xfc86b, 0xfcb6e, 0xfd0e6, > + 0xfd8bb, 0xfe2b9, 0xfee8f, 0xffbd5, 0x00a0c, 0x018a3, 0x026fc, 0x03474, > 0x04065, 0x04a36, 0x0515a, > + 0x0555a, 0x055df, 0x052b2, 0x04bc3, 0x0412c, 0x03332, 0x02242, 0x00ef3, > 0xff9fb, 0xfe430, 0xfce78, > + 0xfb9c6, 0xfa70f, 0xf973a, 0xf8b1e, 0xf836e, 0xf80b7, 0xf8355, 0xf8b6e, > 0xf98ea, 0xfab78, 0xfc288, > + 0xfdd52, 0xffadf, 0x01a0a, 0x03992, 0x05823, 0x07465, 0x08d0c, 0x0a0e3, > 0x0aedc, 0x0b61f, 0x0b614, > + 0x0ae6b, 0x09f23, 0x0888d, 0x06b4c, 0x04850, 0x020d3, 0xff647, 0xfca4f, > 0xf9eae, 0xf7533, 0xf4fa8, > + 0xf2fc0, 0xf1702, 0xf06ba, 0xeffe6, 0xf032d, 0xf10d3, 0xf28b4, 0xf4a42, > 0xf7486, 0xfa62a, 0xfdd81, > + 0x01896, 0x0553d, 0x09128, 0x0c9fe, 0x0fd6f, 0x1294e, 0x14ba5, 0x162cb, > 0x16d75, 0x16ac4, 0x15a52, > + 0x13c38, 0x1110d, 0x0d9e9, 0x09856, 0x04e4a, 0xffe17, 0xfaa51, 0xf55c4, > 0xf0350, 0xeb5d6, 0xe7020, > + 0xe34c8, 0xe0620, 0xde61c, 0xdd64b, 0xdd7bd, 0xdeb03, 0xe102a, 0xe46b5, > 0xe8dab, 0xee397, 0xf4699, > + 0xfb479, 0x02ab3, 0x0a691, 0x1253c, 0x1a3d9, 0x21f98, 0x295cc, 0x30400, > 0x36803, 0x3bff8, 0x40a63, > + 0x44628, 0x4729b, 0x48f76, 0x49cd2, 0x49b35, 0x48b71, 0x46ea5, 0x44632, > 0x413a6, 0x3d8b3, 0x3971b, > + 0x350a6, 0x30716, 0x2bc15, 0x27131, 0x227cb, 0x1e11d, 0x19e2a, 0x15fc1, > 0x1267c, 0x0f2c0, 0x0c4c2, > + 0x09c8b, 0x079fb, 0x05cd2, 0x044b2, 0x0312d, 0x021c5, 0x015f4, 0x0135e, > + 0x0, 0x09001303, 0x0, 0x0301, 0, 0, 0, 0, > + 0x10, 0x402a0, 0, 0, 0, 0, 0, 0, > + 0x10, 0xe03ae, 0, 0, 0, 0, 0, 0, > + 0x00008, 0xfffae, 0xfff12, 0xffdfb, 0xffc61, 0xffa5a, 0xff82b, 0xff641, > 0xff520, > 0xff544, 0xff6f4, 0xffa25, 0xffe65, > + 0x002e0, 0x0068f, 0x00876, 0x007f1, 0x004f5, 0x0002a, 0xffad4, 0xff68a, > 0xff4bf, 0xff64f, 0xffb20, > + 0x0020f, 0x00929, 0x00e2d, 0x00f40, 0x00b92, 0x003bf, 0xff9cd, 0xff0b0, > 0xfeb6e, 0xfec2a, 0xff351, > + 0xfff4f, 0x00ccd, 0x0179d, 0x01bfc, 0x017d7, 0x00ba3, 0xffa7e, 0xfe96f, > 0xfddf5, 0xfdc4d, 0xfe5ee, > + 0xff8ce, 0x00fb7, 0x023a8, 0x02df5, 0x02a74, 0x01910, 0xffe2c, 0xfe19c, > 0xfcc64, 0xfc5ee, 0xfd17e, > + 0xfecd4, 0x01071, 0x03198, 0x0457e, 0x044c9, 0x02e24, 0x00728, 0xfdb0e, > 0xfb781, 0xfa86b, 0xfb408, > + 0xfd884, 0x00c02, 0x03f37, 0x061e8, 0x06807, 0x04dc5, 0x01954, 0xfd98c, > 0xfa1c8, 0xf840f, 0xf8b52, > + 0xfb78c, 0xffd23, 0x047db, 0x080b1, 0x094e3, 0x07c08, 0x03b41, 0xfe45e, > 0xf9101, 0xf5b1e, 0xf54f4, > + 0xf8307, 0xfda0b, 0x0418f, 0x09ad0, 0x0c9d6, 0x0be16, 0x0780b, 0x009dd, > 0xf92ba, 0xf3606, 0xf10ed, > + 0xf315e, 0xf9135, 0x0172c, 0x09d83, 0x0fc9e, 0x11695, 0x0e05b, 0x065bf, > 0xfc6ed, 0xf2ff4, 0xecc96, > + 0xebbc9, 0xf0668, 0xf9be7, 0x05601, 0x1029e, 0x17140, 0x18065, 0x12728, > 0x07874, 0xf9edb, 0xed202, > + 0xe486c, 0xe294d, 0xe820f, 0xf424a, 0x03f29, 0x13d68, 0x1ff61, 0x253b2, > 0x220fa, 0x16be1, 0x05638, > + 0xf1798, 0xdf165, 0xd211a, 0xcd3f9, 0xd1eb5, 0xdfa89, 0xf4802, 0x0d656, > 0x26d63, 0x3d808, 0x4ecc3, > + 0x59315, 0x5c520, 0x58db6, 0x503d6, 0x444dd, 0x36ecb, 0x29b9a, 0x1de5d, > 0x14234, 0x0cae0, 0x07669, > + 0x03f40, 0x01e4e, 0x00c95, 0x0043b, 0x000f9,0xff961, 0x00823, 0x0084f, > 0x00a39, 0x00d21, 0x010a8, 0x0149a, 0x018cc, 0x01d15, 0x0214d, 0x02543, > 0x028c8, 0x02baa, > + 0x02db8, 0x02ec6, 0x02eac, 0x02d4c, 0x02a90, 0x02672, 0x020f9, 0x01a3b, > 0x0125c, 0x00994, 0x00025, > + 0xff662, 0xfeca3, 0xfe34c, 0xfdabe, 0xfd364, 0xfcd94, 0xfc9a4, 0xfc7dd, > 0xfc86b, 0xfcb6e, 0xfd0e6, > + 0xfd8bb, 0xfe2b9, 0xfee8f, 0xffbd5, 0x00a0c, 0x018a3, 0x026fc, 0x03474, > 0x04065, 0x04a36, 0x0515a, > + 0x0555a, 0x055df, 0x052b2, 0x04bc3, 0x0412c, 0x03332, 0x02242, 0x00ef3, > 0xff9fb, 0xfe430, 0xfce78, > + 0xfb9c6, 0xfa70f, 0xf973a, 0xf8b1e, 0xf836e, 0xf80b7, 0xf8355, 0xf8b6e, > 0xf98ea, 0xfab78, 0xfc288, > + 0xfdd52, 0xffadf, 0x01a0a, 0x03992, 0x05823, 0x07465, 0x08d0c, 0x0a0e3, > 0x0aedc, 0x0b61f, 0x0b614, > + 0x0ae6b, 0x09f23, 0x0888d, 0x06b4c, 0x04850, 0x020d3, 0xff647, 0xfca4f, > 0xf9eae, 0xf7533, 0xf4fa8, > + 0xf2fc0, 0xf1702, 0xf06ba, 0xeffe6, 0xf032d, 0xf10d3, 0xf28b4, 0xf4a42, > 0xf7486, 0xfa62a, 0xfdd81, > + 0x01896, 0x0553d, 0x09128, 0x0c9fe, 0x0fd6f, 0x1294e, 0x14ba5, 0x162cb, > 0x16d75, 0x16ac4, 0x15a52, > + 0x13c38, 0x1110d, 0x0d9e9, 0x09856, 0x04e4a, 0xffe17, 0xfaa51, 0xf55c4, > 0xf0350, 0xeb5d6, 0xe7020, > + 0xe34c8, 0xe0620, 0xde61c, 0xdd64b, 0xdd7bd, 0xdeb03, 0xe102a, 0xe46b5, > 0xe8dab, 0xee397, 0xf4699, > + 0xfb479, 0x02ab3, 0x0a691, 0x1253c, 0x1a3d9, 0x21f98, 0x295cc, 0x30400, > 0x36803, 0x3bff8, 0x40a63, > + 0x44628, 0x4729b, 0x48f76, 0x49cd2, 0x49b35, 0x48b71, 0x46ea5, 0x44632, > 0x413a6, 0x3d8b3, 0x3971b, > + 0x350a6, 0x30716, 0x2bc15, 0x27131, 0x227cb, 0x1e11d, 0x19e2a, 0x15fc1, > 0x1267c, 0x0f2c0, 0x0c4c2, > + 0x09c8b, 0x079fb, 0x05cd2, 0x044b2, 0x0312d, 0x021c5, 0x015f4, 0x0135e > +}; > + > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 > DmicMono16BitFormatConfigSize = sizeof (DmicMono16BitFormatConfig); > + > +// > +// I2S/SSP Configuration BLOBs > +// Audio Format and Configuration details > +// > +// Frequency: 48kHz, PCM resolution: 24 bits > +// TDM slots: 4 > +// Codec: Realtek ALC274, mode: slave > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST UINT32 I2sRtk274Render4ch48kHz24bitFormatConfig[] = {0x0, > 0xffffff10, 0xffffff32, 0xffff3210, 0xffff3210, 0xffff3210, 0xffff3210, > 0xffff3210, > 0xffff3210, 0x83d00437, 0xc0700000, 0x0, 0x02010004, 0xf, 0xf, 0x4002, 0x4, > 0x7070f00, 0x20, 0x00000001, 0x00000fff}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 > I2sRtk274Render4ch48kHz24bitFormatConfigSize = sizeof > (I2sRtk274Render4ch48kHz24bitFormatConfig); > + > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST UINT32 I2sRtk274Capture4ch48kHz24bitFormatConfig[] = {0x0, > 0xffffff10, 0xffffff10, 0xffffff10, 0xffffff10, 0xffffff10, 0xffffff10, > 0xffffff10, > 0xffffff10, 0x83d00437, 0xc0700000, 0x0, 0x02010004, 0xf, 0xf, 0x4002, 0x4, > 0x7070f00, 0x20, 0x00000001, 0x00000fff}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 > I2sRtk274Capture4ch48kHz24bitFormatConfigSize = sizeof > (I2sRtk274Capture4ch48kHz24bitFormatConfig); > + > +// > +// BlueTooth Configuration BLOBs > +// > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST UINT32 BtFormatConfig[] = > +{ > + 0x0, 0xfffffff0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, > + 0x0, 0x80c0003f, 0xd3400000, 0x0, 0x02000005, 0x01, 0x01, 0x4002, > + 0x0, 0x07020000, 0x0, 0x01, 0x0 > +}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 BtFormatConfigSize = > sizeof (BtFormatConfig); > -- > 2.16.2.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#45984): https://edk2.groups.io/g/devel/message/45984 Mute This Topic: https://groups.io/mt/32918191/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-