302 lines
9.6 KiB
Plaintext
302 lines
9.6 KiB
Plaintext
/** @file
|
|
|
|
;******************************************************************************
|
|
;* Copyright (c) 2019, Insyde Software Corp. All Rights Reserved.
|
|
;*
|
|
;* You may not reproduce, distribute, publish, display, perform, modify, adapt,
|
|
;* transmit, broadcast, present, recite, release, license or otherwise exploit
|
|
;* any part of this publication in any form, by any means, without the prior
|
|
;* written permission of Insyde Software Corporation.
|
|
;*
|
|
;******************************************************************************
|
|
*/
|
|
/** @file
|
|
ACPI DSDT table - 3rd party IP modules supporrt for iSST
|
|
|
|
@copyright
|
|
Copyright (c) 2016-2021 Intel Corporation. All rights reserved
|
|
This software and associated documentation (if any) is furnished
|
|
under a license and may only be used or copied in accordance
|
|
with the terms of the license. Except as permitted by the
|
|
license, no part of this software or documentation may be
|
|
reproduced, stored in a retrieval system, or transmitted in any
|
|
form or by any means without the express written consent of
|
|
Intel Corporation.
|
|
This file contains a 'Sample Driver' and is licensed as such
|
|
under the terms of your license agreement with Intel or your
|
|
vendor. This file may be modified by the user, subject to
|
|
the additional terms of the license agreement.
|
|
|
|
@par Specification Reference:
|
|
**/
|
|
|
|
#ifndef BIT0
|
|
#define BIT0 0x00000001
|
|
#endif
|
|
#ifndef BIT1
|
|
#define BIT1 0x00000002
|
|
#endif
|
|
#ifndef BIT2
|
|
#define BIT2 0x00000004
|
|
#endif
|
|
#ifndef BIT3
|
|
#define BIT3 0x00000008
|
|
#endif
|
|
#ifndef BIT4
|
|
#define BIT4 0x00000010
|
|
#endif
|
|
#ifndef BIT5
|
|
#define BIT5 0x00000020
|
|
#endif
|
|
#ifndef BIT6
|
|
#define BIT6 0x00000040
|
|
#endif
|
|
#ifndef BIT7
|
|
#define BIT7 0x00000080
|
|
#endif
|
|
#ifndef BIT8
|
|
#define BIT8 0x00000100
|
|
#endif
|
|
#ifndef BIT9
|
|
#define BIT9 0x00000200
|
|
#endif
|
|
#ifndef BIT10
|
|
#define BIT10 0x00000400
|
|
#endif
|
|
#ifndef BIT11
|
|
#define BIT11 0x00000800
|
|
#endif
|
|
#ifndef BIT12
|
|
#define BIT12 0x00001000
|
|
#endif
|
|
#ifndef BIT13
|
|
#define BIT13 0x00002000
|
|
#endif
|
|
#ifndef BIT14
|
|
#define BIT14 0x00004000
|
|
#endif
|
|
#ifndef BIT15
|
|
#define BIT15 0x00008000
|
|
#endif
|
|
#ifndef BIT16
|
|
#define BIT16 0x00010000
|
|
#endif
|
|
#ifndef BIT17
|
|
#define BIT17 0x00020000
|
|
#endif
|
|
#ifndef BIT18
|
|
#define BIT18 0x00040000
|
|
#endif
|
|
#ifndef BIT19
|
|
#define BIT19 0x00080000
|
|
#endif
|
|
#ifndef BIT20
|
|
#define BIT20 0x00100000
|
|
#endif
|
|
#ifndef BIT21
|
|
#define BIT21 0x00200000
|
|
#endif
|
|
#ifndef BIT22
|
|
#define BIT22 0x00400000
|
|
#endif
|
|
#ifndef BIT23
|
|
#define BIT23 0x00800000
|
|
#endif
|
|
#ifndef BIT24
|
|
#define BIT24 0x01000000
|
|
#endif
|
|
#ifndef BIT25
|
|
#define BIT25 0x02000000
|
|
#endif
|
|
#ifndef BIT26
|
|
#define BIT26 0x04000000
|
|
#endif
|
|
#ifndef BIT27
|
|
#define BIT27 0x08000000
|
|
#endif
|
|
#ifndef BIT28
|
|
#define BIT28 0x10000000
|
|
#endif
|
|
#ifndef BIT29
|
|
#define BIT29 0x20000000
|
|
#endif
|
|
#ifndef BIT30
|
|
#define BIT30 0x40000000
|
|
#endif
|
|
#ifndef BIT31
|
|
#define BIT31 0x80000000
|
|
#endif
|
|
|
|
Scope(\_SB.PC00.HDAS)
|
|
{
|
|
//
|
|
// Pre/Post processing modules (3rd Party IP) support for Intel Smart Sound Technology
|
|
//
|
|
Method(PPMS, 1, Serialized)
|
|
{
|
|
// Helper platform method for HDAS._DSM Function 3 - Query Pre/Post Processing Module Support
|
|
// Arg0 (equals Arg3 passed to _DSM) - UUID: Specifies the UUID of the 3rd Party IP module to check (Buffer)
|
|
// Return - TRUE if PP Module supported, else FALSE.
|
|
|
|
// ADPM - Platform NVS AudioDSP Post-Processing Module Bit Mask:
|
|
// [BIT0] - Waves; [BIT1] - DTS; [BIT2] - Intel SST Speech; [BIT3] - Dolby
|
|
// [BIT4] - Icepower; [BIT5] - Audyssey; [BIT6] - [Unused]
|
|
// [BIT7] - ForteMedia SAMSoft; [BIT8] - Intel WoV; [BIT9] - Sound Research IP
|
|
// [BIT10] - Conexant Pre-Process; [BIT11] - Conexant Smart Amp
|
|
// [BIT12] - Realtek Post-Process; [BIT13] - Realtek Smart Amp
|
|
// [BIT14] - PP Module Icepower IP MFX sub module; [BIT15] - PP Module Icepower IP EFX sub module
|
|
// [BIT16] - PP Module Voice Preprocessing; [BIT17] - PP Module Voice Preprocessing
|
|
// [BIT31:29] - Custom 3rd party IP modules (GUIDs provided from BIOS Setup)
|
|
|
|
//
|
|
// Example (to be updated with real GUIDs of supported 3rd party IP):
|
|
//
|
|
// 3rd Party DSP Processing Module placeholder
|
|
// Check support for 3rd Party IP module with GUID AABBCCDD-EEFF-1122-3344-556677889900
|
|
// If (LEqual(Arg0, ToUUID ("AABBCCDD-EEFF-1122-3344-556677889900"))){
|
|
// Return (1)) // GUID passed to _DSM Function 3 as Arg3 matches - module supported, return true.
|
|
// }
|
|
//
|
|
// Implement for all supported PP modules
|
|
//
|
|
|
|
// PP Module Intel SST Speech
|
|
If (LEqual(Arg0, ToUUID ("7C708106-3AFF-40FE-88BE-8C999B3F7445"))){
|
|
Return(And(ADPM, BIT2)) // DSDT NVS ADPM[BIT2] set - supported (return true)
|
|
}
|
|
|
|
// PP Module Intel WoV
|
|
If (LEqual(Arg0, ToUUID ("EC774FA9-28D3-424A-90E4-69F984F1EEB7"))){
|
|
Return(And(ADPM, BIT8)) // ADPM[BIT8] set - supported (return true)
|
|
}
|
|
|
|
// PP Module 'Alpha' Custom GUID
|
|
// Check PP module with GUID - entered in Setup menu
|
|
If (LEqual(Arg0, ACCG(AG1L, AG1H))){
|
|
Return(And(ADPM, BIT29)) // ADPM[BIT29] set - supported (return true)
|
|
}
|
|
|
|
// PP Module 'Beta' Custom GUID
|
|
// Check PP module with GUID - entered in Setup menu
|
|
If (LEqual(Arg0, ACCG(AG2L, AG2H))){
|
|
Return(And(ADPM, BIT30)) // ADPM[BIT30] set - supported (return true)
|
|
}
|
|
|
|
// PP Module 'Gamma' Custom GUID
|
|
// Check PP module with GUID - entered in Setup menu
|
|
If (LEqual(Arg0, ACCG(AG3L, AG3H))){
|
|
Return(And(ADPM, BIT31)) // ADPM[BIT31] set - supported (return true)
|
|
}
|
|
//[-start-180820-IB15590124-add]//
|
|
// PP Module Waves Post-process
|
|
If (LEqual(Arg0, ToUUID ("B489C2DE-0F96-42E1-8A2D-C25B5091EE49"))){
|
|
Return(And(ADPM, BIT0)) // ADPM[BIT0] set - supported (return true)
|
|
}
|
|
|
|
// PP Module DTS
|
|
If (LEqual(Arg0, ToUUID ("E1284052-8664-4FE4-A353-3878F72704C3"))){
|
|
Return(And(ADPM, BIT1)) // ADPM[BIT1] set - supported (return true)
|
|
}
|
|
|
|
// PP Module Dolby
|
|
//[-start-210615-KEBIN00012-modify]//
|
|
#ifdef LCFC_SUPPORT
|
|
If (LEqual(Arg0, ToUUID ("56A9EA76-3745-4CC0-815C-A621FAA8C9CB"))){
|
|
#else
|
|
If (LEqual(Arg0, ToUUID ("849F0D73-1678-4D57-8C78-61C548253993"))){
|
|
#endif
|
|
//[-end-210615-KEBIN00015-modify]//
|
|
Return(And(ADPM, BIT3)) // ADPM[BIT3] set - supported (return true)
|
|
}
|
|
|
|
// PP Module Waves Pre-process
|
|
If (LEqual(Arg0, ToUUID ("347297C3-A6D5-40DB-8120-ACE66BABF491"))){
|
|
Return(And(ADPM, BIT4)) // ADPM[BIT4] set - supported (return true)
|
|
}
|
|
|
|
// PP Module Audyssey
|
|
If (LEqual(Arg0, ToUUID ("BD70CE66-7CEE-4277-A91A-D6368FEAF83D"))){
|
|
Return(And(ADPM, BIT5)) // ADPM[BIT5] set - supported (return true)
|
|
}
|
|
|
|
// PP Module Maxim Smart AMP
|
|
//[-start-210615-KEBIN00012-modify]//
|
|
//[-start-210721-QINGLIN0001-modify]//
|
|
//#ifdef LCFC_SUPPORT
|
|
#if defined(C970_SUPPORT) || defined(C770_SUPPORT)
|
|
If (LEqual(Arg0, ToUUID ("9A44A769-1A51-464A-A54B-1A4084BF370B"))){
|
|
#else
|
|
If (LEqual(Arg0, ToUUID ("C75061F3-F2B2-4DCC-8F9F-82ABB4131E66"))){
|
|
#endif
|
|
//[-end-210721-QINGLIN0001-modify]//
|
|
//[-end-210615-KEBIN00015-modify]//
|
|
Return(And(ADPM, BIT6)) // ADPM[BIT6] set - supported (return true)
|
|
}
|
|
|
|
// PP Module ForteMedia SAMSoft
|
|
If (LEqual(Arg0, ToUUID ("B3573EFF-6441-4A75-91F7-4281EEC4597D"))){
|
|
Return(And(ADPM, BIT7)) // ADPM[BIT7] set - supported (return true)
|
|
}
|
|
|
|
// PP Module Sound Research IP
|
|
If (LEqual(Arg0, ToUUID ("D46F9D72-81A4-47FD-B301-8E39D17C0981"))){
|
|
Return(And(ADPM, BIT9)) // ADPM[BIT9] set - supported (return true)
|
|
}
|
|
|
|
// PP Module Conexant Pre-Process
|
|
If (LEqual(Arg0, ToUUID ("F3578986-4400-4ADF-AE7E-CD433CD3F26E"))){
|
|
Return(And(ADPM, BIT10)) // ADPM[BIT10] set - supported (return true)
|
|
}
|
|
|
|
// PP Module Conexant Smart Amp
|
|
If (LEqual(Arg0, ToUUID ("2C093145-5895-4699-9DDB-6FEFDC77E85D"))){
|
|
Return(And(ADPM, BIT11)) // ADPM[BIT11] set - supported (return true)
|
|
}
|
|
|
|
// PP Module Realtek Post-Process
|
|
If (LEqual(Arg0, ToUUID ("B55EBA24-8349-4DAD-AFC7-8489D23C93EF"))){
|
|
Return(And(ADPM, BIT12)) // ADPM[BIT12] set - supported (return true)
|
|
}
|
|
|
|
// PP Module Realtek Smart Amp
|
|
If (LEqual(Arg0, ToUUID ("7111001F-D35F-44D9-81D2-7AC685BED3D7"))){
|
|
Return(And(ADPM, BIT13)) // ADPM[BIT13] set - supported (return true)
|
|
}
|
|
|
|
// PP Module Icepower IP MFX sub module
|
|
If (LEqual(Arg0, ToUUID ("88373A01-16A5-469D-A39A-BDEB594178B8"))){
|
|
Return(And(ADPM, BIT14)) // ADPM[BIT14] set - supported (return true)
|
|
}
|
|
|
|
// PP Module Icepower IP EFX sub module
|
|
If (LEqual(Arg0, ToUUID ("54CAB206-82CB-4B67-A1EE-FCD45C126DC8"))){
|
|
Return(And(ADPM, BIT15)) // ADPM[BIT15] set - supported (return true)
|
|
}
|
|
|
|
// PP Module Icepower IP SFX sub module
|
|
If (LEqual(Arg0, ToUUID ("70002307-DA3E-4E0B-BA03-4C72314B2AAA"))){
|
|
Return(And(ADPM, BIT16)) // ADPM[BIT16] set - supported (return true)
|
|
}
|
|
|
|
// PP Module Voice Preprocessing
|
|
If (LEqual(Arg0, ToUUID ("7AEA5E24-E5E9-4D6D-B88F-B505C1ACAB11"))){
|
|
Return(And(ADPM, BIT17)) // ADPM[BIT17] set - supported (return true)
|
|
}
|
|
//[-end-180820-IB15590124-add]//
|
|
Return (0) // GUID not found - module not supported
|
|
}
|
|
|
|
Method (ACCG, 2, NotSerialized)
|
|
{
|
|
// ACCG - AudioDSP custom Pre/Post-Processing module GUID create
|
|
// Auxiliary method to be used inside _DSM Function 3 / PPMS() (PP Module support)
|
|
// Argument values passed from BIOS Setup as two 64bit variables
|
|
// Arg0 - First half of GUID - bits 0-63
|
|
// Arg1 - Second half of GUID - bits 64-127
|
|
// Return - 16 byte buffer containing GUID with the same byte order as ToUUID function
|
|
Name(GBUF, Buffer(16) {})
|
|
Concatenate(Arg0, Arg1, GBUF)
|
|
Return (GBUF)
|
|
}
|
|
}
|