From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: chasel.chiu@intel.com) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by groups.io with SMTP; Fri, 16 Aug 2019 18:13:56 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 16 Aug 2019 18:13:55 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,395,1559545200"; d="scan'208";a="377593717" Received: from pgsmsx101.gar.corp.intel.com ([10.221.44.78]) by fmsmga006.fm.intel.com with ESMTP; 16 Aug 2019 18:13:53 -0700 Received: from pgsmsx106.gar.corp.intel.com (10.221.44.98) by PGSMSX101.gar.corp.intel.com (10.221.44.78) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sat, 17 Aug 2019 09:13:52 +0800 Received: from pgsmsx111.gar.corp.intel.com ([169.254.2.22]) by PGSMSX106.gar.corp.intel.com ([169.254.9.10]) with mapi id 14.03.0439.000; Sat, 17 Aug 2019 09:13:51 +0800 From: "Chiu, Chasel" To: "Kubacki, Michael A" , "devel@edk2.groups.io" CC: "Chaganty, Rangasai V" , "Desimone, Nathaniel L" , "Gao, Liming" , "Kinney, Michael D" , "Sinha, Ankit" Subject: Re: [edk2-platforms][PATCH V1 22/37] CoffeelakeSiliconPkg/Pch: Add DXE private library instances Thread-Topic: [edk2-platforms][PATCH V1 22/37] CoffeelakeSiliconPkg/Pch: Add DXE private library instances Thread-Index: AQHVVJEaEFtAakmyskKlu2tgAbgx8ab+iOQg Date: Sat, 17 Aug 2019 01:13:51 +0000 Message-ID: <3C3EFB470A303B4AB093197B6777CCEC5046236B@PGSMSX111.gar.corp.intel.com> References: <20190817001603.30632-1-michael.a.kubacki@intel.com> <20190817001603.30632-23-michael.a.kubacki@intel.com> In-Reply-To: <20190817001603.30632-23-michael.a.kubacki@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNjgwZTU0YzctMDM0Zi00ZWMzLWE0ZTgtNTkzMmMxYWM1ODgwIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiRThZSHF2YTRVbndaQkxRbzFkQjJBb3VhY2FNaHlzc1BqQkgzdkV0bVN0R0xPd2ZjbTZtb1NaNFJFWmp6ZjBcLzUifQ== x-ctpclassification: CTP_NT x-originating-ip: [172.30.20.206] MIME-Version: 1.0 Return-Path: chasel.chiu@intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Chasel Chiu > -----Original Message----- > From: Kubacki, Michael A > Sent: Saturday, August 17, 2019 8:16 AM > To: devel@edk2.groups.io > Cc: Chaganty, Rangasai V ; Chiu, Chasel > ; Desimone, Nathaniel L > ; Gao, Liming ; > Kinney, Michael D ; Sinha, Ankit > > Subject: [edk2-platforms][PATCH V1 22/37] CoffeelakeSiliconPkg/Pch: Add D= XE > private library instances >=20 > REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3D2082 >=20 > Adds PCH DXE private library class instances. >=20 > * DxeGpioNameBufferLib > * DxePchHdaLib >=20 > Cc: Sai Chaganty > Cc: Chasel Chiu > Cc: Nate DeSimone > Cc: Liming Gao > Cc: Michael D Kinney > Cc: Ankit Sinha > Signed-off-by: Michael Kubacki > --- >=20 > Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxeGpioNameBufferL= i > b/DxeGpioNameBufferLib.inf | 32 + >=20 > Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/DxePc= h > HdaLib.inf | 43 + >=20 > Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxeGpioNameBufferL= i > b/GpioNameBufferDxe.c | 20 + >=20 > Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/PchHd > aEndpoints.c | 333 ++++++++ >=20 > Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/PchHd > aLib.c | 886 ++++++++++++++++++++ >=20 > Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/PchHd > aNhltConfig.c | 439 ++++++++++ > 6 files changed, 1753 insertions(+) >=20 > 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.
> +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > + > +[Defines] > +INF_VERSION =3D 0x00010017 > +BASE_NAME =3D DxeGpioNameBufferLib > +FILE_GUID =3D 16EC6AA8-81D5-4847-B6CB-662CDAB863F2 > +VERSION_STRING =3D 1.0 > +MODULE_TYPE =3D DXE_DRIVER > +LIBRARY_CLASS =3D GpioNameBufferLib > +# > +# The following information is for reference only and not required by th= e > build tools. > +# > +# VALID_ARCHITECTURES =3D 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/Dxe= P > chHdaLib.inf > b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/Dxe= P > chHdaLib.inf > new file mode 100644 > index 0000000000..a8a3f60b53 > --- /dev/null > +++ > b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/Dxe= P > chHdaLib.inf > @@ -0,0 +1,43 @@ > +## @file > +# Component information file for PCH HD Audio Library > +# > +# Copyright (c) 2019 Intel Corporation. All rights reserved.
> +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > + > +[Defines] > +INF_VERSION =3D 0x00010017 > +BASE_NAME =3D DxePchHdaLib > +FILE_GUID =3D DA915B7F-EE08-4C1D-B3D0-DE7C52AB155A > +VERSION_STRING =3D 1.0 > +MODULE_TYPE =3D BASE > +LIBRARY_CLASS =3D 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.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#include > + > +STATIC CHAR8 mGpioNameBuffer[GPIO_NAME_LENGTH_MAX]; > + > +CHAR8* > +GpioGetStaticNameBuffer ( > + VOID > + ) > +{ > + return mGpioNameBuffer; > +} > + > diff --git > a/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/Pch= H > daEndpoints.c > b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/Pch= H > daEndpoints.c > new file mode 100644 > index 0000000000..ea04512501 > --- /dev/null > +++ > b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/Pch= H > daEndpoints.c > @@ -0,0 +1,333 @@ > +/** @file > + This file contains HD Audio NHLT Endpoints definitions > + > + Copyright (c) 2019 Intel Corporation. All rights reserved.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#include > + > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST WAVEFORMATEXTENSIBLE Ch1_48kHz16bitFormat =3D > +{ > + { > + 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 =3D > +{ > + { > + 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 =3D > +{ > + { > + 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 =3D > +{ > + { > + 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 =3D > +{ > + { > + 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 =3D > +{ > + { > + 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 =3D > +{ > + { > + 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 =3D > +{ > + { > + 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 =3D > +{ > + { > + 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 =3D { > + 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 =3D { > + 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 =3D { > + 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 =3D { > + 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 =3D { > + 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 =3D { > + 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 =3D { > + 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[] =3D > +{ > + 0x00, // VirtualSlot > + 0x00, // eIntcConfigTypeMicArray =3D 1 , eIntcConfigTypeGeneric =3D 0 > +}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 DmicX1ConfigSize =3D > sizeof (DmicX1Config); > + > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT8 DmicX2Config[] =3D > +{ > + 0x00, // VirtualSlot > + 0x01, // eIntcConfigTypeMicArray =3D 1 , eIntcConfigTypeGeneric =3D 0 > + 0x0A // ArrayType > +}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 DmicX2ConfigSize =3D > sizeof (DmicX2Config); > + > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT8 DmicX4Config[] =3D > +{ > + 0x00, // VirtualSlot > + 0x01, // eIntcConfigTypeMicArray =3D 1 , eIntcConfigTypeGeneric =3D 0 > + 0x0D // ArrayType > +}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 DmicX4ConfigSize =3D > sizeof (DmicX4Config); > + > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT8 BtConfig[] =3D {0}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 BtConfigSize =3D 0; > + > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT8 I2sRender1Config[] =3D > {0}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 I2sRender1ConfigSize =3D > 0; > + > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT8 I2sRender2Config[] =3D > {0x01}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 I2sRender2ConfigSize =3D > sizeof (I2sRender2Config); > + > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT8 I2sCaptureConfig[] =3D > {0}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 I2sCaptureConfigSize =3D > 0; > + > +GLOBAL_REMOVE_IF_UNREFERENCED CONST DEVICE_INFO > I2sRenderDeviceInfo =3D > +{ > + "INT34C2", // DeviceId > + 0x00, // DeviceInstanceId > + 0x01 // DevicePortId > +}; > + > +GLOBAL_REMOVE_IF_UNREFERENCED CONST DEVICE_INFO > I2sCaptureDeviceInfo =3D > +{ > + "INT34C2", // DeviceId > + 0x00, // DeviceInstanceId > + 0x01 // DevicePortId > +}; > + > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 NhltConfiguration[] =3D > { 0xEFBEADDE }; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 NhltConfigurationSize > =3D sizeof (NhltConfiguration); > + > diff --git > a/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/Pch= H > daLib.c > b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/Pch= H > daLib.c > new file mode 100644 > index 0000000000..a87509de1b > --- /dev/null > +++ > b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/Pch= H > daLib.c > @@ -0,0 +1,886 @@ > +/** @file > + PCH HD Audio Library implementation. > + > + Copyright (c) 2019 Intel Corporation. All rights reserved.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +/** > + Returns pointer to Endpoint ENDPOINT_DESCRIPTOR structure. > + > + @param[in] *NhltTable Endpoint for which Format address is retrieve= d > + @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 =3D (ENDPOINT_DESCRIPTOR*) (NhltTable->EndpointDescriptors); > + > + if (EndpointIndex > NhltTable->EndpointCount) { > + return NULL; > + } > + > + for (i =3D 0; i < EndpointIndex; i++) { > + Endpoint =3D (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 retrieve= d > + > + @retval Pointer to SPECIFIC_CONFIG structure with end= point'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 retriev= ed > + > + @retval Pointer to FORMATS_CONFIG structure > +**/ > +FORMATS_CONFIG * > +GetNhltEndpointFormatsConfig ( > + IN CONST ENDPOINT_DESCRIPTOR *Endpoint > + ) > +{ > + FORMATS_CONFIG *FormatsConfig; > + FormatsConfig =3D (FORMATS_CONFIG*) ((UINT8*) > (&Endpoint->EndpointConfig) > + + sizeof > (Endpoint->EndpointConfig.CapabilitiesSize) > + + Endpoint->EndpointConfig.Capabili= tiesSize); > + > + return FormatsConfig; > +} > + > +/** > + Returns pointer to Format Configuration FORMAT_CONFIG structure. > + > + @param[in] *Endpoint Endpoint for which Format address is retrieve= d > + @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 =3D 0; > + FormatsConfig =3D GetNhltEndpointFormatsConfig (Endpoint); > + Format =3D FormatsConfig->FormatsConfiguration; > + > + if (FormatIndex > FormatsConfig->FormatsCount) { > + return NULL; > + } > + > + for (i =3D 0; i < FormatIndex; i++) { > + Length =3D sizeof (Format->Format) + > Format->FormatConfiguration.CapabilitiesSize > + + sizeof (Format->FormatConfiguration.CapabilitiesSize); > + Format =3D (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 =3D GetNhltEndpointFormatsConfig (Endpoint); > + Format =3D GetNhltEndpointFormat (Endpoint, > FormatsConfig->FormatsCount); > + DevicesInfo =3D (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 =3D GetNhltEndpointDevicesInfo (Endpoint); > + DeviceInfo =3D DevicesInfo->DeviceInformation; > + > + if (DevicesInfo =3D=3D NULL) { > + return NULL; > + } > + > + if (DeviceInfoIndex > DevicesInfo->DeviceInfoCount) { > + return NULL; > + } > + > + DeviceInfo =3D (DEVICE_INFO*) ((UINT8*) (DeviceInfo) + sizeof (*Device= Info) * > 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 NHL= T > capabilities > +**/ > +SPECIFIC_CONFIG * > +GetNhltOedConfig ( > + IN CONST NHLT_ACPI_TABLE *NhltTable > + ) > +{ > + ENDPOINT_DESCRIPTOR *Endpoint; > + SPECIFIC_CONFIG *OedConfig; > + > + Endpoint =3D GetNhltEndpoint (NhltTable, (NhltTable->EndpointCount)); > + OedConfig =3D (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 =3D > 0x%x\n", Format->Format.Format.wFormatTag)); > + DEBUG ((DEBUG_INFO, " Format->Format.Format.nChannels =3D %d\n", > Format->Format.Format.nChannels)); > + DEBUG ((DEBUG_INFO, " Format->Format.Format.nSamplesPerSec =3D %d\n", > Format->Format.Format.nSamplesPerSec)); > + DEBUG ((DEBUG_INFO, " Format->Format.Format.nAvgBytesPerSec =3D %d\n", > Format->Format.Format.nAvgBytesPerSec)); > + DEBUG ((DEBUG_INFO, " Format->Format.Format.nBlockAlign =3D %d\n", > Format->Format.Format.nBlockAlign)); > + DEBUG ((DEBUG_INFO, " Format->Format.Format.wBitsPerSample =3D %d\n", > Format->Format.Format.wBitsPerSample)); > + DEBUG ((DEBUG_INFO, " Format->Format.Format.cbSize =3D %d\n", > Format->Format.Format.cbSize)); > + DEBUG ((DEBUG_INFO, " Format->Format.Samples =3D %d\n", > Format->Format.Samples)); > + DEBUG ((DEBUG_INFO, " Format->Format.dwChannelMask =3D > 0x%x\n", Format->Format.dwChannelMask)); > + DEBUG ((DEBUG_INFO, " Format->Format.SubFormat =3D %g\n", > Format->Format.SubFormat)); > + > + > + DEBUG ((DEBUG_INFO, " Format->FormatConfiguration.CapabilitiesSize =3D > %d B\n", Format->FormatConfiguration.CapabilitiesSize)); > + DEBUG ((DEBUG_VERBOSE, " > Format->FormatConfiguration.Capabilities:")); > + for (i =3D 0; i < ( Format->FormatConfiguration.CapabilitiesSize ) ; = i++) { > + if (i % 16 =3D=3D 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 =3D %a\n", > DeviceInfo->DeviceId)); > + DEBUG ((DEBUG_INFO, " DeviceInfo->DeviceInstanceId =3D 0x%x\n", > DeviceInfo->DeviceInstanceId)); > + DEBUG ((DEBUG_INFO, " DeviceInfo->DevicePortId =3D 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 =3D %d B\n", > Endpoint->EndpointDescriptorLength)); > + DEBUG ((DEBUG_INFO, " Endpoint->LinkType =3D 0x%x\n", > Endpoint->LinkType)); > + DEBUG ((DEBUG_INFO, " Endpoint->InstanceId =3D 0x%x\n", > Endpoint->InstanceId)); > + DEBUG ((DEBUG_INFO, " Endpoint->HwVendorId =3D 0x%x\n", > Endpoint->HwVendorId)); > + DEBUG ((DEBUG_INFO, " Endpoint->HwDeviceId =3D 0x%x\n", > Endpoint->HwDeviceId)); > + DEBUG ((DEBUG_INFO, " Endpoint->HwRevisionId =3D 0x%x\n", > Endpoint->HwRevisionId)); > + DEBUG ((DEBUG_INFO, " Endpoint->HwSubsystemId =3D 0x%x\n", > Endpoint->HwSubsystemId)); > + DEBUG ((DEBUG_INFO, " Endpoint->DeviceType =3D 0x%x\n", > Endpoint->DeviceType)); > + DEBUG ((DEBUG_INFO, " Endpoint->Direction =3D 0x%x\n", > Endpoint->Direction)); > + DEBUG ((DEBUG_INFO, " Endpoint->VirtualBusId =3D 0x%x\n", > Endpoint->VirtualBusId)); > + > + DEBUG ((DEBUG_INFO, " Endpoint->EndpointConfig.CapabilitiesSize =3D %d > B\n", Endpoint->EndpointConfig.CapabilitiesSize)); > + DEBUG ((DEBUG_VERBOSE, " Endpoint->EndpointConfig.Capabilities:")); > + for (i =3D 0; i < (Endpoint->EndpointConfig.CapabilitiesSize ) ; i++) = { > + if (i % 16 =3D=3D 0) DEBUG ((DEBUG_VERBOSE, "\n")); > + DEBUG ((DEBUG_VERBOSE, "0x%02x, ", > Endpoint->EndpointConfig.Capabilities[i])); > + } > + > + FormatsConfigs =3D GetNhltEndpointFormatsConfig (Endpoint); > + > + DEBUG ((DEBUG_INFO, "\n")); > + DEBUG ((DEBUG_INFO, " Endpoint->FormatsConfig.FormatsCount =3D %d\n", > FormatsConfigs->FormatsCount)); > + for (i =3D 0; i < FormatsConfigs->FormatsCount; i++) { > + Format =3D GetNhltEndpointFormat (Endpoint, i); > + if (Format !=3D NULL) { > + NhltFormatDump (Format); > + } > + } > + > + DevicesInfo =3D GetNhltEndpointDevicesInfo (Endpoint); > + if (DevicesInfo !=3D NULL) { > + DEBUG ((DEBUG_INFO, "\n")); > + DEBUG ((DEBUG_INFO, " Endpoint->DevicesInfo.DeviceInfoCount =3D %d\n= ", > DevicesInfo->DeviceInfoCount)); > + for (i =3D 0; i < DevicesInfo->DeviceInfoCount; i++) { > + DeviceInfo =3D GetNhltEndpointDeviceInfo (Endpoint, i); > + if (DeviceInfo !=3D 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 =3D %d B\n", > OedConfig->CapabilitiesSize)); > + DEBUG ((DEBUG_VERBOSE, " OedConfig->Capabilities:")); > + for (i =3D 0; i < (OedConfig->CapabilitiesSize) ; i++) { > + if (i % 16 =3D=3D 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 (Off= load > 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 =3D %d B\n", sizeof > (NHLT_ACPI_TABLE))); > + DEBUG ((DEBUG_INFO, "sizeof EFI_ACPI_DESCRIPTION_HEADER =3D %d B\n", > sizeof (EFI_ACPI_DESCRIPTION_HEADER))); > + DEBUG ((DEBUG_INFO, "sizeof ENDPOINT_DESCRIPTOR =3D %d B\n", sizeof > (ENDPOINT_DESCRIPTOR))); > + DEBUG ((DEBUG_INFO, "sizeof SPECIFIC_CONFIG =3D %d B\n", sizeof > (SPECIFIC_CONFIG))); > + DEBUG ((DEBUG_INFO, "sizeof FORMATS_CONFIG =3D %d B\n", sizeof > (FORMATS_CONFIG))); > + DEBUG ((DEBUG_INFO, "sizeof FORMAT_CONFIG =3D %d B\n", sizeof > (FORMAT_CONFIG))); > + DEBUG ((DEBUG_INFO, "sizeof WAVEFORMATEXTENSIBLE =3D %d B\n", sizeof > (WAVEFORMATEXTENSIBLE))); > + DEBUG ((DEBUG_INFO, "sizeof DEVICES_INFO =3D %d B\n", sizeof > (DEVICES_INFO))); > + DEBUG ((DEBUG_INFO, "sizeof DEVICE_INFO =3D %d B\n", sizeof > (DEVICE_INFO))); > + > + DEBUG ((DEBUG_INFO, " NHLT_ACPI_TABLE Header.Signature =3D > 0x%08x\n", NhltTable->Header.Signature)); > + DEBUG ((DEBUG_INFO, " NHLT_ACPI_TABLE Header.Length =3D > 0x%08x\n", NhltTable->Header.Length)); > + DEBUG ((DEBUG_INFO, " NHLT_ACPI_TABLE Header.Revision =3D > 0x%02x\n", NhltTable->Header.Revision)); > + DEBUG ((DEBUG_INFO, " NHLT_ACPI_TABLE Header.Checksum =3D > 0x%02x\n", NhltTable->Header.Checksum)); > + DEBUG ((DEBUG_INFO, " NHLT_ACPI_TABLE Header.OemId =3D %a\n"= , > NhltTable->Header.OemId)); > + DEBUG ((DEBUG_INFO, " NHLT_ACPI_TABLE Header.OemTableId =3D > 0x%lx\n", NhltTable->Header.OemTableId)); > + DEBUG ((DEBUG_INFO, " NHLT_ACPI_TABLE Header.OemRevision =3D > 0x%08x\n", NhltTable->Header.OemRevision)); > + DEBUG ((DEBUG_INFO, " NHLT_ACPI_TABLE Header.CreatorId =3D > 0x%08x\n", NhltTable->Header.CreatorId)); > + DEBUG ((DEBUG_INFO, " NHLT_ACPI_TABLE Header.CreatorRevision =3D > 0x%08x\n", NhltTable->Header.CreatorRevision)); > + DEBUG ((DEBUG_INFO, "\n")); > + > + DEBUG ((DEBUG_INFO, " NHLT_ACPI_TABLE EndpointCount =3D %d\n", > NhltTable->EndpointCount)); > + for (i =3D 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 structur= e > +**/ > +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 = =3D > 0x%08x\n", FormatsBitmask)); > + > + FormatsConfig =3D NULL; > + FormatIndex =3D 0; > + FormatsConfigLength =3D 0; > + > + if (!FormatsBitmask) { > + DEBUG ((DEBUG_WARN, "No supported format found!\n")); > + return 0; > + } > + > + FormatsConfig =3D GetNhltEndpointFormatsConfig (Endpoint); > + FormatsConfig->FormatsCount =3D 0; > + > + if (FormatsBitmask & B_HDA_DMIC_2CH_48KHZ_16BIT_FORMAT) { > + DEBUG ((DEBUG_INFO, "Format: > B_HDA_DMIC_2CH_48KHZ_16BIT_FORMAT\n")); > + > + Format =3D GetNhltEndpointFormat (Endpoint, FormatIndex++); > + if (Format !=3D NULL) { > + CopyMem (&(Format->Format), &Ch2_48kHz16bitFormat, sizeof > (WAVEFORMATEXTENSIBLE)); > + Format->FormatConfiguration.CapabilitiesSize =3D > DmicStereo16BitFormatConfigSize; > + CopyMem (Format->FormatConfiguration.Capabilities, > DmicStereo16BitFormatConfig, DmicStereo16BitFormatConfigSize); > + > + FormatsConfigLength +=3D 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 =3D GetNhltEndpointFormat (Endpoint, FormatIndex++); > + if (Format !=3D NULL) { > + CopyMem (&(Format->Format), &Ch2_48kHz32bitFormat, sizeof > (WAVEFORMATEXTENSIBLE)); > + > + Format->FormatConfiguration.CapabilitiesSize =3D > DmicStereo32BitFormatConfigSize; > + CopyMem (Format->FormatConfiguration.Capabilities, > DmicStereo32BitFormatConfig, DmicStereo32BitFormatConfigSize); > + > + FormatsConfigLength +=3D 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 =3D GetNhltEndpointFormat (Endpoint, FormatIndex++); > + if (Format !=3D NULL) { > + CopyMem (&(Format->Format), &Ch4_48kHz16bitFormat, sizeof > (WAVEFORMATEXTENSIBLE)); > + Format->FormatConfiguration.CapabilitiesSize =3D > DmicQuad16BitFormatConfigSize; > + CopyMem (Format->FormatConfiguration.Capabilities, > DmicQuad16BitFormatConfig, DmicQuad16BitFormatConfigSize); > + > + FormatsConfigLength +=3D 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 =3D GetNhltEndpointFormat (Endpoint, FormatIndex++); > + if (Format !=3D NULL) { > + CopyMem (&(Format->Format), &Ch4_48kHz32bitFormat, sizeof > (WAVEFORMATEXTENSIBLE)); > + > + Format->FormatConfiguration.CapabilitiesSize =3D > DmicQuad32BitFormatConfigSize; > + CopyMem (Format->FormatConfiguration.Capabilities, > DmicQuad32BitFormatConfig, DmicQuad32BitFormatConfigSize); > + > + FormatsConfigLength +=3D 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 =3D GetNhltEndpointFormat (Endpoint, FormatIndex++); > + if (Format !=3D NULL) { > + CopyMem (&(Format->Format), &Ch1_48kHz16bitFormat, sizeof > (WAVEFORMATEXTENSIBLE)); > + > + Format->FormatConfiguration.CapabilitiesSize =3D > DmicMono16BitFormatConfigSize; > + CopyMem (Format->FormatConfiguration.Capabilities, > DmicMono16BitFormatConfig, DmicMono16BitFormatConfigSize); > + > + FormatsConfigLength +=3D 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 =3D GetNhltEndpointFormat (Endpoint, FormatIndex++); > + if (Format !=3D NULL) { > + CopyMem (&(Format->Format), &NarrowbandFormat, sizeof > (WAVEFORMATEXTENSIBLE)); > + > + Format->FormatConfiguration.CapabilitiesSize =3D BtFormatConfigSiz= e; > + CopyMem (Format->FormatConfiguration.Capabilities, BtFormatConfig, > BtFormatConfigSize); > + > + FormatsConfigLength +=3D 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 =3D GetNhltEndpointFormat (Endpoint, FormatIndex++); > + if (Format !=3D NULL) { > + CopyMem (&(Format->Format), &WidebandFormat, sizeof > (WAVEFORMATEXTENSIBLE)); > + > + Format->FormatConfiguration.CapabilitiesSize =3D BtFormatConfigSiz= e; > + CopyMem (Format->FormatConfiguration.Capabilities, BtFormatConfig, > BtFormatConfigSize); > + > + FormatsConfigLength +=3D 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 =3D GetNhltEndpointFormat (Endpoint, FormatIndex++); > + if (Format !=3D NULL) { > + CopyMem (&(Format->Format), &A2dpFormat, sizeof > (WAVEFORMATEXTENSIBLE)); > + > + Format->FormatConfiguration.CapabilitiesSize =3D BtFormatConfigSiz= e; > + CopyMem (Format->FormatConfiguration.Capabilities, BtFormatConfig, > BtFormatConfigSize); > + > + FormatsConfigLength +=3D 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 =3D GetNhltEndpointFormat (Endpoint, FormatIndex++); > + if (Format !=3D NULL) { > + CopyMem (&(Format->Format), &Ch2_48kHz24bitFormat, sizeof > (WAVEFORMATEXTENSIBLE)); > + > + Format->FormatConfiguration.CapabilitiesSize =3D > I2sRtk274Render4ch48kHz24bitFormatConfigSize; > + CopyMem (Format->FormatConfiguration.Capabilities, > I2sRtk274Render4ch48kHz24bitFormatConfig, > I2sRtk274Render4ch48kHz24bitFormatConfigSize); > + > + FormatsConfigLength +=3D 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 =3D GetNhltEndpointFormat (Endpoint, FormatIndex++); > + if (Format !=3D NULL) { > + CopyMem (&(Format->Format), &Ch2_48kHz24bitFormat, sizeof > (WAVEFORMATEXTENSIBLE)); > + > + Format->FormatConfiguration.CapabilitiesSize =3D > I2sRtk274Capture4ch48kHz24bitFormatConfigSize; > + CopyMem (Format->FormatConfiguration.Capabilities, > I2sRtk274Capture4ch48kHz24bitFormatConfig, > I2sRtk274Capture4ch48kHz24bitFormatConfigSize); > + > + FormatsConfigLength +=3D sizeof (*Format) > + - sizeof (Format->FormatConfiguration.Capabilities) > + + Format->FormatConfiguration.CapabilitiesSize; > + FormatsConfig->FormatsCount++; > + } > + } > + > + DEBUG ((DEBUG_INFO, "NhltFormatsConstructor() End, FormatsCount =3D %d= , > FormatsConfigLength =3D %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 structur= es > 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 =3D 0x%08x\n", DevicesBitmask)); > + > + DevicesInfo =3D NULL; > + DeviceIndex =3D 0; > + DevicesInfoLength =3D 0; > + > + if (!DevicesBitmask) { > + return 0; > + } > + > + DevicesInfo =3D GetNhltEndpointDevicesInfo (Endpoint); > + if (DevicesInfo =3D=3D NULL) { > + return 0; > + } > + DevicesInfo->DeviceInfoCount =3D 0; > + > + if (DevicesBitmask & B_HDA_I2S_RENDER_DEVICE_INFO) { > + DEBUG ((DEBUG_INFO, "DeviceInfo: > B_HDA_I2S_RENDER_DEVICE_INFO\n")); > + > + DeviceInfo =3D GetNhltEndpointDeviceInfo (Endpoint, DeviceIndex++); > + if (DeviceInfo !=3D 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 =3D GetNhltEndpointDeviceInfo (Endpoint, DeviceIndex++); > + if (DeviceInfo !=3D NULL) { > + CopyMem (DeviceInfo, &I2sCaptureDeviceInfo, sizeof (DEVICE_INFO)); > + DevicesInfo->DeviceInfoCount++; > + } > + } > + > + DevicesInfoLength =3D DevicesInfo->DeviceInfoCount * sizeof (DEVICE_IN= FO); > + > + DEBUG ((DEBUG_INFO, "NhltDevicesInfoConstructor() End, DevicesCount = =3D > %d, DevicesInfoLength =3D %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 = =3D > %d\n", EndpointIndex)); > + > + EndpointDescriptorLength =3D 0; > + Endpoint =3D GetNhltEndpoint (NhltTable, EndpointIndex); > + if (Endpoint =3D=3D NULL) { > + return 0; > + } > + EndpointDescriptorLength =3D 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 =3D DmicX1Config; > + EndpointConfigBufferSize =3D DmicX1ConfigSize; > + break; > + case HdaDmicX2: > + DEBUG ((DEBUG_INFO, "Endpoint: HdaDmicX2\n")); > + CopyMem (Endpoint, &HdaEndpointDmicX2, sizeof > (ENDPOINT_DESCRIPTOR)); > + EndpointConfigBuffer =3D DmicX2Config; > + EndpointConfigBufferSize =3D DmicX2ConfigSize; > + break; > + case HdaDmicX4: > + DEBUG ((DEBUG_INFO, "Endpoint: HdaDmicX4\n")); > + CopyMem (Endpoint, &HdaEndpointDmicX4, sizeof > (ENDPOINT_DESCRIPTOR)); > + EndpointConfigBuffer =3D DmicX4Config; > + EndpointConfigBufferSize =3D DmicX4ConfigSize; > + break; > + case HdaBtRender: > + DEBUG ((DEBUG_INFO, "Endpoint: HdaBtRender\n")); > + CopyMem (Endpoint, &HdaEndpointBtRender, sizeof > (ENDPOINT_DESCRIPTOR)); > + if (IsPchH ()) { > + Endpoint->VirtualBusId =3D 0; > + } > + > + EndpointConfigBuffer =3D BtConfig; > + EndpointConfigBufferSize =3D BtConfigSize; > + break; > + case HdaBtCapture: > + DEBUG ((DEBUG_INFO, "Endpoint: HdaBtCapture\n")); > + CopyMem (Endpoint, &HdaEndpointBtCapture, sizeof > (ENDPOINT_DESCRIPTOR)); > + if (IsPchH ()) { > + Endpoint->VirtualBusId =3D 0; > + } > + > + EndpointConfigBuffer =3D BtConfig; > + EndpointConfigBufferSize =3D BtConfigSize; > + break; > + case HdaI2sRender1: > + DEBUG ((DEBUG_INFO, "Endpoint: HdaI2sRender1\n")); > + CopyMem (Endpoint, &HdaEndpointI2sRender, sizeof > (ENDPOINT_DESCRIPTOR)); > + EndpointConfigBuffer =3D I2sRender1Config; > + EndpointConfigBufferSize =3D I2sRender1ConfigSize; > + break; > + case HdaI2sRender2: > + DEBUG ((DEBUG_INFO, "Endpoint: HdaI2sRender2\n")); > + CopyMem (Endpoint, &HdaEndpointI2sRender, sizeof > (ENDPOINT_DESCRIPTOR)); > + EndpointConfigBuffer =3D I2sRender2Config; > + EndpointConfigBufferSize =3D I2sRender2ConfigSize; > + break; > + case HdaI2sCapture: > + DEBUG ((DEBUG_INFO, "Endpoint: HdaI2sCapture\n")); > + CopyMem (Endpoint, &HdaEndpointI2sCapture, sizeof > (ENDPOINT_DESCRIPTOR)); > + EndpointConfigBuffer =3D I2sCaptureConfig; > + EndpointConfigBufferSize =3D I2sCaptureConfigSize; > + break; > + default: > + DEBUG ((DEBUG_WARN, "Unknown endpoint!\n")); > + return 0; > + } > + > + EndpointConfig =3D GetNhltEndpointDeviceCapabilities (Endpoint); > + EndpointConfig->CapabilitiesSize =3D EndpointConfigBufferSize; > + CopyMem (EndpointConfig->Capabilities, EndpointConfigBuffer, > EndpointConfig->CapabilitiesSize); > + EndpointDescriptorLength +=3D sizeof (*EndpointConfig) > + - sizeof (EndpointConfig->Capabilities) > + + EndpointConfig->CapabilitiesSize; > + > + EndpointDescriptorLength +=3D NhltFormatsConstructor (Endpoint, > EndpointFormatsBitmask); > + EndpointDescriptorLength +=3D NhltDevicesInfoConstructor (Endpoint, > EndpointDevicesBitmask); > + > + Endpoint->EndpointDescriptorLength =3D EndpointDescriptorLength; > + > + DEBUG ((DEBUG_INFO, "NhltEndpointConstructor() End, > EndpointDescriptorLength =3D %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 creat= ed > + > + @retval Size of created SPECIFIC_CONFIG structur= e > +**/ > +UINT32 > +NhltOedConfigConstructor ( > + IN OUT NHLT_ACPI_TABLE *NhltTable > + ) > +{ > + SPECIFIC_CONFIG *OedConfig; > + UINT32 OedConfigLength; > + > + OedConfigLength =3D 0; > + OedConfig =3D GetNhltOedConfig (NhltTable); > + > + OedConfig->CapabilitiesSize =3D NhltConfigurationSize; > + CopyMem (OedConfig->Capabilities, (UINT8*) NhltConfiguration, > NhltConfigurationSize); > + > + OedConfigLength =3D 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 =3D EFI_SUCCESS; > + TableSize =3D PCH_HDA_NHLT_TABLE_SIZE; > + EndpointDescriptorsLength =3D 0; > + OedConfigLength =3D 0; > + > + Table =3D AllocateZeroPool (TableSize); > + > + if (Table =3D=3D NULL) { > + return EFI_BAD_BUFFER_SIZE; > + } > + > + Table->EndpointCount =3D 0; > + > + for (Index =3D 0; Index < HdaEndpointMax; Index++) { > + if (EndpointTable[Index].Enable =3D=3D TRUE) { > + EndpointDescriptorsLength +=3D NhltEndpointConstructor (Table, > + EndpointTable[Index].EndpointType, > + EndpointTable[Index].EndpointFormat= sBitmask, > + EndpointTable[Index].EndpointDevice= sBitmask, > + Table->EndpointCount++); > + } > + } > + DEBUG ((DEBUG_INFO, "NhltConstructor: EndpointCount =3D %d, All > EndpointDescriptorsLength =3D %d B\n", Table->EndpointCount, > EndpointDescriptorsLength)); > + > + OedConfigLength =3D NhltOedConfigConstructor (Table); > + DEBUG ((DEBUG_INFO, "NhltConstructor: OedConfigLength =3D %d B\n", > OedConfigLength)); > + > + TableSize =3D EndpointDescriptorsLength + OedConfigLength; > + > + *NhltTableSize =3D TableSize; > + *NhltTable =3D 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 =3D NHLT_ACPI_TABLE_SIGNATURE; > + NhltTable->Header.Length =3D (UINT32) (NhltTableSize + sizeof > (NHLT_ACPI_TABLE) - sizeof (ENDPOINT_DESCRIPTOR) - sizeof > (SPECIFIC_CONFIG)); > + NhltTable->Header.Revision =3D 0x0; > + NhltTable->Header.Checksum =3D 0x0; > + > + CopyMem (NhltTable->Header.OemId, PcdGetPtr (PcdAcpiDefaultOemId), > sizeof (NhltTable->Header.OemId)); > + NhltTable->Header.OemTableId =3D PcdGet64 > (PcdAcpiDefaultOemTableId); > + NhltTable->Header.OemRevision =3D PcdGet32 > (PcdAcpiDefaultOemRevision); > + NhltTable->Header.CreatorId =3D PcdGet32 (PcdAcpiDefaultCreatorI= d); > + NhltTable->Header.CreatorRevision =3D PcdGet32 > (PcdAcpiDefaultCreatorRevision); > + > + DEBUG ((DEBUG_INFO, "NhltAcpiHeaderConstructor(), > NhltAcpiTable->Header.Length =3D %d B\n", NhltTable->Header.Length)); > +} > + > diff --git > a/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/Pch= H > daNhltConfig.c > b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/Pch= H > daNhltConfig.c > new file mode 100644 > index 0000000000..301b1f8d10 > --- /dev/null > +++ > b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/Private/DxePchHdaLib/Pch= H > daNhltConfig.c > @@ -0,0 +1,439 @@ > +/** @file > + This file contains HD Audio NHLT Configuration BLOBs > + > + Copyright (c) 2019 Intel Corporation. All rights reserved.
> + > + 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[] =3D > +{ > + 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 =3D sizeof (DmicStereo16BitFormatConfig); > + > +// DMIC Config 2 channels, 32 bits, 2.4Mhz BCLK > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST UINT32 DmicStereo32BitFormatConfig[] =3D > +{ > + 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 =3D sizeof (DmicStereo32BitFormatConfig); > + > +// DMIC Config 4 channels, 16 bits, 2.4Mhz BCLK > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST UINT32 DmicQuad16BitFormatConfig[] =3D > +{ > + 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 =3D sizeof (DmicQuad16BitFormatConfig); > + > +// DMIC Config 4 channels, 32 bits, 2.4Mhz BCLK > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST UINT32 DmicQuad32BitFormatConfig[] =3D > +{ > + 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 =3D sizeof (DmicQuad32BitFormatConfig); > + > + > +// DMIC Config 1 channel, 16 bits > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST UINT32 DmicMono16BitFormatConfig[] =3D > +{ > + 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 =3D 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[] =3D {0x0, > 0xffffff10, 0xffffff32, 0xffff3210, 0xffff3210, 0xffff3210, 0xffff3210, 0= xffff3210, > 0xffff3210, 0x83d00437, 0xc0700000, 0x0, 0x02010004, 0xf, 0xf, 0x4002, 0x= 4, > 0x7070f00, 0x20, 0x00000001, 0x00000fff}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 > I2sRtk274Render4ch48kHz24bitFormatConfigSize =3D sizeof > (I2sRtk274Render4ch48kHz24bitFormatConfig); > + > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST UINT32 I2sRtk274Capture4ch48kHz24bitFormatConfig[] =3D {0x0, > 0xffffff10, 0xffffff10, 0xffffff10, 0xffffff10, 0xffffff10, 0xffffff10, 0= xffffff10, > 0xffffff10, 0x83d00437, 0xc0700000, 0x0, 0x02010004, 0xf, 0xf, 0x4002, 0x= 4, > 0x7070f00, 0x20, 0x00000001, 0x00000fff}; > +GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 > I2sRtk274Capture4ch48kHz24bitFormatConfigSize =3D sizeof > (I2sRtk274Capture4ch48kHz24bitFormatConfig); > + > +// > +// BlueTooth Configuration BLOBs > +// > +GLOBAL_REMOVE_IF_UNREFERENCED > +CONST UINT32 BtFormatConfig[] =3D > +{ > + 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 =3D > sizeof (BtFormatConfig); > -- > 2.16.2.windows.1