From c780c73a1ec066a0a26579fcad5cf207e22603ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=A9=E8=AF=86=E3=80=81?= Date: Mon, 3 Aug 2020 06:22:01 +0800 Subject: [PATCH] update --- .DS_Store | Bin 6148 -> 6148 bytes EFI/.DS_Store | Bin 6148 -> 6148 bytes EFI/OC/.DS_Store | Bin 8196 -> 8196 bytes EFI/OC/ACPI/SSDT-ALC3.aml | Bin 0 -> 294 bytes .../CodecCommander.kext/Contents/Info.plist | 472 ++++++++++++++++++ .../Contents/MacOS/CodecCommander | Bin 0 -> 119136 bytes .../Resources/Samples/SSDT-ALC1220.dsl | 38 ++ .../Samples/SSDT-ALC256-insanelydeepak.dsl | 46 ++ .../Samples/SSDT-ALC256-vbourachot.dsl | 54 ++ .../Resources/Samples/SSDT-ALC280.dsl | 45 ++ .../Resources/Samples/SSDT-ALC283.dsl | 44 ++ .../Resources/Samples/SSDT-ALC298.dsl | 52 ++ .../Resources/Samples/SSDT-ALC298a.dsl | 61 +++ .../Resources/Samples/SSDT-ALC668.dsl | 63 +++ .../Resources/Samples/SSDT-AppleALC.dsl | 23 + .../Resources/Samples/SSDT-CX20752.dsl | 43 ++ .../Contents/_CodeSignature/CodeResources | 267 ++++++++++ EFI/OC/config.plist | 50 +- 18 files changed, 1245 insertions(+), 13 deletions(-) create mode 100755 EFI/OC/ACPI/SSDT-ALC3.aml create mode 100755 EFI/OC/Kexts/CodecCommander.kext/Contents/Info.plist create mode 100755 EFI/OC/Kexts/CodecCommander.kext/Contents/MacOS/CodecCommander create mode 100755 EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC1220.dsl create mode 100755 EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC256-insanelydeepak.dsl create mode 100755 EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC256-vbourachot.dsl create mode 100755 EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC280.dsl create mode 100755 EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC283.dsl create mode 100755 EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC298.dsl create mode 100755 EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC298a.dsl create mode 100755 EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC668.dsl create mode 100755 EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-AppleALC.dsl create mode 100755 EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-CX20752.dsl create mode 100755 EFI/OC/Kexts/CodecCommander.kext/Contents/_CodeSignature/CodeResources diff --git a/.DS_Store b/.DS_Store index 6355ca13817f2998491da0ef904fe9a6365b7a3a..43bdf0edcd8263259ea548954c439d9db9150f03 100644 GIT binary patch delta 25 gcmZoMXffDunuWvM%u+|e*ur%3Usl=8A6P_$0c%eP0ssI2 delta 25 gcmZoMXffDunuWvA)L2Ks$jEr|Usl=8A6P_$0csrw>;M1& diff --git a/EFI/.DS_Store b/EFI/.DS_Store index ddb55a032b74d8e8c169f6a9aefe028f09168336..c3ae6ea3716ea9b297d29c31fe5372ff08ba863b 100644 GIT binary patch delta 21 ccmZoMXffFEf|bM6*jPuw(9Cf22UZaw08EYsTL1t6 delta 21 ccmZoMXffFEf|bM2)L2Ks$jEr}2UZaw08DBISO5S3 diff --git a/EFI/OC/.DS_Store b/EFI/OC/.DS_Store index a6865e33a1b5e3c6c362a38bdd5f3ab80c21dd43..fe884b9e9071c5560ca35b2c5c52e47fbb26808e 100755 GIT binary patch delta 197 zcmZp1XmOa}&&aniU^hP_-((&Ec}Ba*Is!}BEsb;(42=yYTZ%YtmJsA*VzivBBy7wp z%D}+j{2vS$7$zqPt1?<{?hw{uu3n)r0%SoAjS~JNX96}Xo!9$MyNTmP#Q`xrT`fbKTcjP>R`AO7EEB_5Qcmp r%wZ_@%*juNc%4B2D6;~HCqh(CEEL|%E)mK)l0(gr3v(YF>(hOKMJHB?A{1FW6EAKcH8N!BztRzl%o! literal 0 HcmV?d00001 diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/Info.plist b/EFI/OC/Kexts/CodecCommander.kext/Contents/Info.plist new file mode 100755 index 0000000..7011c9a --- /dev/null +++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/Info.plist @@ -0,0 +1,472 @@ + + + + + BuildMachineOSBuild + 19C57 + CFBundleDevelopmentRegion + English + CFBundleExecutable + CodecCommander + CFBundleGetInfoString + 2.7.1, Copyright © 2013-2014 TimeWalker. All rights reserved. + CFBundleIdentifier + org.tw.CodecCommander + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + CodecCommander + CFBundlePackageType + KEXT + CFBundleShortVersionString + 2.7.2 + CFBundleSignature + ???? + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + 2.7.2 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 11C29 + DTPlatformVersion + GM + DTSDKBuild + 19B90 + DTSDKName + macosx10.15 + DTXcode + 1130 + DTXcodeBuild + 11C29 + IOKitPersonalities + + CodecCommander + + CFBundleIdentifier + org.tw.CodecCommander + Codec Profile + + 1002 + Disabled HDMI + 10de + Disabled HDMI + 10ec_0233 + Realtek ALC283,etc + 10ec_0235 + Realtek ALC283,etc + 10ec_0236 + Realtek ALC283,etc + 10ec_0255 + Realtek ALC283,etc + 10ec_0269 + Realtek ALC269 + 10ec_0269_HDA_1028_04d9 + Realtek ALC269VB + 10ec_0269_HDA_1458_fa50 + Realtek ALC269 BRIX + 10ec_0282 + Realtek ALC283,etc + 10ec_0283 + Realtek ALC283,etc + 10ec_0292 + Realtek ALC292 + 10ec_0668 + Realtek ALC668 + 10ec_0892_HDA_1458 + Realtek ALC892 desktop + 10ec_0892_HDA_8086 + Realtek ALC892 desktop + 10ec_0900 + Realtek ALC1150 + 8086 + Disabled HDMI + Default + + Check Infinitely + + Check Interval + 3000 + Custom Commands + + Perform Reset on EAPD Fail + + Send Delay + 300 + Sleep Nodes + + Update Nodes + + + Disabled HDMI + + Check Infinitely + + Disable + + Sleep Nodes + + Update Nodes + + + Realtek ALC1150 + + Custom Commands + + + Command + + AgUABw== + + Comment + 0x20 SET_COEF_INDEX 0x07 + On Init + + On Sleep + + On Wake + + + + Command + + AgR8sA== + + Comment + 0x20 SET_PROC_COEF 0x7CB0 + On Init + + On Sleep + + On Wake + + + + Send Delay + 100 + Sleep Nodes + + Update Nodes + + + Realtek ALC269 + + Custom Commands + + + Command + + AVcIgw== + + Comment + 0x15 SET_UNSOLICITED_ENABLE 0x83 + On Init + + On Sleep + + On Wake + + + + + Realtek ALC269 BRIX + + Custom Commands + + + Command + + AVcIgw== + + Comment + 0x15 SET_UNSOLICITED_ENABLE 0x83 + On Init + + On Sleep + + On Wake + + + + + Realtek ALC269VB + + Custom Commands + + + Command + + AhcIgw== + + Comment + 0x21 SET_UNSOLICITED_ENABLE 0x83 + On Init + + On Sleep + + On Wake + + + + Send Delay + 20 + Sleep Nodes + + + Realtek ALC283,etc + + Custom Commands + + + Command + + AZcHJQ== + + Comment + 0x19 SET_PIN_WIDGET_CONTROL 0x25 + On Init + + On Sleep + + On Wake + + + + Command + + AhcIgw== + + Comment + 0x21 SET_UNSOLICITED_ENABLE 0x83 + On Init + + On Sleep + + On Wake + + + + Perform Reset + + Send Delay + 10 + Sleep Nodes + + + Realtek ALC292 + + Custom Commands + + + Command + 0x01a70724 + Comment + Node 0x1a - Pin Control (In Enable / VRefEn) + On Init + + On Sleep + + On Wake + + + + Command + + AVcIgw== + + Comment + 0x15 SET_UNSOLICITED_ENABLE 0x83 + On Init + + On Sleep + + On Wake + + + + Perform Reset + + + Realtek ALC668 + + Custom Commands + + + Command + + AVcIgw== + + Comment + 0x15 SET_UNSOLICITED_ENABLE 0x83 + On Init + + On Sleep + + On Wake + + + + Command + + AbcHIA== + + Comment + Node 0x1b - Pin Control (In Enable) + On Init + + On Sleep + + On Wake + + + + Perform Reset + + + Realtek ALC892 desktop + + Sleep Nodes + + Update Nodes + + + + IOClass + CodecCommander + IOMatchCategory + CodecCommander + IOProviderClass + IOHDACodecFunction + IOUserClientClass + CodecCommanderClient + + CodecCommanderPowerHook + + CFBundleIdentifier + org.tw.CodecCommander + Codec Profile + + 1002 + Disabled HDMI + 10de + Disabled HDMI + 8086 + Disabled HDMI + Disabled HDMI + + Disable + + + + IOClass + CodecCommanderPowerHook + IOMatchCategory + CodecCommanderPowerHook + IOProviderClass + AppleHDADriver + + CodecCommanderProbeInit + + CFBundleIdentifier + org.tw.CodecCommander + Codec Profile + + Default + + Custom Commands + + + + IOClass + CodecCommanderProbeInit + IOProbeScore + 5000 + IOProviderClass + IOHDACodecDevice + + CodecCommanderResidency + + CFBundleIdentifier + org.tw.CodecCommander + IOClass + CodecCommanderResidency + IOMatchCategory + CodecCommanderResidency + IOProviderClass + IOResources + + CodecCommanderVoodooHDA + + CFBundleIdentifier + org.tw.CodecCommander + Codec Profile + + 1002 + Disabled HDMI + 10de + Disabled HDMI + 8086 + Disabled HDMI + Default + + Check Infinitely + + Perform Reset + + Perform Reset on EAPD Fail + + Perform Reset on External Wake + + Sleep Nodes + + Update Nodes + + + Disabled HDMI + + Check Infinitely + + Disable + + Sleep Nodes + + Update Nodes + + + + IOClass + CodecCommander + IOMatchCategory + CodecCommander + IOProviderClass + VoodooHDADevice + IOUserClientClass + CodecCommanderClient + + + LSMinimumSystemVersion + 10.6 + NSHumanReadableCopyright + Copyright © 2013-2014 TimeWalker/RehabMan. All rights reserved. + OSBundleLibraries + + com.apple.iokit.IOACPIFamily + 1.0d1 + com.apple.iokit.IOAudioFamily + 1.1 + com.apple.iokit.IOPCIFamily + 1.0.0b1 + com.apple.kpi.bsd + 9.0.0 + com.apple.kpi.iokit + 9.0.0 + com.apple.kpi.libkern + 9.0.0 + + Source Code + https://github.com/RehabMan/EAPD-Codec-Commander + + diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/MacOS/CodecCommander b/EFI/OC/Kexts/CodecCommander.kext/Contents/MacOS/CodecCommander new file mode 100755 index 0000000000000000000000000000000000000000..fca0f1fdc83486895c7646e3e264673ff5b50397 GIT binary patch literal 119136 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 afDyn5U<5D%7y*m`MgSv#5x@vw1pWiH{QO4% literal 0 HcmV?d00001 diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC1220.dsl b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC1220.dsl new file mode 100755 index 0000000..7a7ec80 --- /dev/null +++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC1220.dsl @@ -0,0 +1,38 @@ +// CodecCommander configuration for ALC1220 +// provided by daliansky @github + +DefinitionBlock ("", "SSDT", 1, "hack", "_ALC1220", 0) +{ + External(_SB.PCI0.HDEF, DeviceObj) + Name(_SB.PCI0.HDEF.RMCF, Package() + { + "CodecCommander", Package() + { + "Custom Commands", Package() + { + Package(){}, // signifies Array instead of Dictionary + Package() + { + // 0x19 SET_PIN_WIDGET_CONTROL 0x24 + "Command", Buffer() { 0x01, 0x97, 0x07, 0x24 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">y", + }, + Package() + { + // 0x1B SET_UNSOLICITED_ENABLE 0x83 + "Command", Buffer() { 0x01, 0xB7, 0x08, 0x83 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">y", + }, + }, + "Perform Reset", ">y", + //"Perform Reset on External Wake", ">n", // enable if using AppleALC + "Send Delay", 10, + "Sleep Nodes", ">n", + }, + }) +} +//EOF diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC256-insanelydeepak.dsl b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC256-insanelydeepak.dsl new file mode 100755 index 0000000..cb59eca --- /dev/null +++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC256-insanelydeepak.dsl @@ -0,0 +1,46 @@ +// CodecCommander configuration for ALC256 to fix various issue +// repo: https://github.com/insanelydeepak/cloverHDA-for-Mac-OS-Sierra-10.12 + +DefinitionBlock ("", "SSDT", 1, "hack", "_ALC256i", 0) +{ + External(_SB.PCI0.HDEF, DeviceObj) + Name(_SB.PCI0.HDEF.RMCF, Package() + { + "CodecCommander", Package() + { + "Custom Commands", Package() + { + Package(){}, // signifies Array instead of Dictionary + Package() + { + // 0x19 SET_PIN_WIDGET_CONTROL 0x24 + "Command", Buffer() { 0x01, 0x97, 0x07, 0x24 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">y", + }, + Package() + { + // 0x1A SET_PIN_WIDGET_CONTROL 0x20 + "Command", Buffer() { 0x01, 0xA7, 0x07, 0x20 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">y", + }, + Package() + { + // 0x21 SET_UNSOLICITED_ENABLE 0x83 + "Command", Buffer() { 0x02, 0x17, 0x08, 0x83 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">y", + } + }, + "Perform Reset", ">n", + //"Perform Reset on External Wake", ">n", // enable if using AppleALC + "Send Delay", 10, + "Sleep Nodes", ">n", + }, + }) +} +//EOF diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC256-vbourachot.dsl b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC256-vbourachot.dsl new file mode 100755 index 0000000..f7907ab --- /dev/null +++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC256-vbourachot.dsl @@ -0,0 +1,54 @@ +// CodecCommander configuration for ALC256 +// From: https://github.com/vbourachot/XPS13-9350-OSX/blob/master/ssdt/SSDT-ALC256.dsl + +DefinitionBlock ("", "SSDT", 1, "hack", "_ALC256v", 0x00003000) +{ + External(_SB.PCI0.HDEF, DeviceObj) + Name(_SB.PCI0.HDEF.RMCF, Package() + { + "CodecCommander", Package() + { + "Custom Commands", Package() + { + Package(){}, // signifies Array instead of Dictionary + Package() + { + // 0x19 SET_PIN_WIDGET_CONTROL 0x25 + "Command", Buffer() { 0x01, 0x97, 0x07, 0x25 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">y", + }, + Package() + { + // 0x21 SET_UNSOLICITED_ENABLE 0x83 + "Command", Buffer() { 0x02, 0x17, 0x08, 0x83 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">y", + }, + Package() + { + // 0x20 SET_COEF_INDEX 0x36 + "Command", Buffer() { 0x02, 0x05, 0x00, 0x36 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">y", + }, + Package() + { + // 0x20 SET_PROC_COEF 0x1737 + "Command", Buffer() { 0x02, 0x04, 0x17, 0x37 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">y", + }, + }, + "Perform Reset", ">n", + //"Perform Reset on External Wake", ">n", // enable if using AppleALC + "Send Delay", 10, + "Sleep Nodes", ">n", + }, + }) +} +//EOF diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC280.dsl b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC280.dsl new file mode 100755 index 0000000..cf5a2f3 --- /dev/null +++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC280.dsl @@ -0,0 +1,45 @@ +// This SSDT demonstrates a custom configuration for ALC280. + +// If you had a codec that needed the same configuration, you could +// load this SSDT in order to implement it without modifying the kext. +// It will override the defaults specfied by the CodecCommander Info.plist + +// Customize to suit your needs. + +// This data provided by @zirkaiva. +// See here: http://www.tonymacx86.com/el-capitan-laptop-guides/175935-guide-lenovo-t430-el-capitan-34.html#post1239765 + +DefinitionBlock ("", "SSDT", 1, "hack", "_ALC280", 0) +{ + External(_SB.PCI0.HDEF, DeviceObj) + Name(_SB.PCI0.HDEF.RMCF, Package() + { + "CodecCommander", Package() + { + "Custom Commands", Package() + { + Package(){}, // signifies Array instead of Dictionary + Package() + { + // 0x15 SET_UNSOLICITED_ENABLE 0x83 + "Command", Buffer() { 0x01, 0x57, 0x08, 0x83 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">y", + }, + Package() + { + // 0x1a SET_PIN_WIDGET_CONTROL 0x24 + // Node 0x1a - Pin Control (In Enable / VRefEn) + "Command", Buffer() { 0x01, 0xa7, 0x07, 0x24 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">y", + }, + }, + //"Perform Reset", ">n", // enable if using AppleALC + //"Perform Reset on External Wake", ">n", // enable if using AppleALC + }, + }) +} +//EOF diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC283.dsl b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC283.dsl new file mode 100755 index 0000000..0d49998 --- /dev/null +++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC283.dsl @@ -0,0 +1,44 @@ +// This SSDT demonstrates a custom configuration for ALC283. +// It is the same data that is currently in the Info.plist + +// If you had a codec that needed the same configuration, you could +// load this SSDT in order to implement it without modifying the kext. +// It will override the defaults specfied by the CodecCommander Info.plist + +// Customize to suit your needs. + +DefinitionBlock ("", "SSDT", 1, "hack", "_ALC283", 0) +{ + External(_SB.PCI0.HDEF, DeviceObj) + Name(_SB.PCI0.HDEF.RMCF, Package() + { + "CodecCommander", Package() + { + "Custom Commands", Package() + { + Package(){}, // signifies Array instead of Dictionary + Package() + { + // 0x19 SET_PIN_WIDGET_CONTROL 0x25 + "Command", Buffer() { 0x01, 0x97, 0x07, 0x25 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">y", + }, + Package() + { + // 0x21 SET_UNSOLICITED_ENABLE 0x83 + "Command", Buffer() { 0x02, 0x17, 0x08, 0x83 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">y", + }, + }, + "Perform Reset", ">n", + //"Perform Reset on External Wake", ">n", // enable if using AppleALC + "Send Delay", 10, + "Sleep Nodes", ">n", + }, + }) +} +//EOF diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC298.dsl b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC298.dsl new file mode 100755 index 0000000..996187f --- /dev/null +++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC298.dsl @@ -0,0 +1,52 @@ +// This SSDT demonstrates a custom configuration for ALC298. +// It is the same data that is currently in the Info.plist + +// If you had a codec that needed the same configuration, you could +// load this SSDT in order to implement it without modifying the kext. +// It will override the defaults specfied by the CodecCommander Info.plist + +// Customize to suit your needs. + +DefinitionBlock ("", "SSDT", 1, "hack", "_ALC298", 0) +{ + External(_SB.PCI0.HDEF, DeviceObj) + Name(_SB.PCI0.HDEF.RMCF, Package() + { + "CodecCommander", Package() + { + "Custom Commands", Package() + { + Package(){}, // signifies Array instead of Dictionary + Package() + { + // 0x18 SET_PIN_WIDGET_CONTROL 0x22 + "Command", Buffer() { 0x01, 0x87, 0x07, 0x22 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">y", + }, + Package() + { + // 0x1a SET_PIN_WIDGET_CONTROL 0x23 + "Command", Buffer() { 0x01, 0xa7, 0x07, 0x23 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">y", + }, + Package() + { + // 0x21 SET_UNSOLICITED_ENABLE 0x83 + "Command", Buffer() { 0x02, 0x17, 0x08, 0x83 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">y", + }, + }, + "Perform Reset", ">n", + //"Perform Reset on External Wake", ">n", // enable if using AppleALC + "Send Delay", 10, + "Sleep Nodes", ">n", + }, + }) +} +//EOF diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC298a.dsl b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC298a.dsl new file mode 100755 index 0000000..1c30b37 --- /dev/null +++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC298a.dsl @@ -0,0 +1,61 @@ +// This SSDT demonstrates a custom configuration for ALC298. +// +// It is reportedly needed to solve problems of jack sense and +// distorted sound with headphone. +// +// See here for details: +// http://www.tonymacx86.com/threads/alc3266-10ec0298-files-for-applehdapatcher.191231/page-5#post-1323829 +// + +// Customize to suit your needs. +// Compile to SSDT-ALC298.aml, place in ACPI/patched. Make sure SortedOrder includes it. + +DefinitionBlock ("", "SSDT", 1, "hack", "_ALC298a", 0) +{ + External(_SB.PCI0.HDEF, DeviceObj) + Name(_SB.PCI0.HDEF.RMCF, Package() + { + "CodecCommander", Package() + { + "Custom Commands", Package() + { + Package(){}, // signifies Array instead of Dictionary + Package() + { + // 0x01 SET_CODEC_RESET 0x00 + "Command", Buffer() { 0x00, 0x17, 0xff, 0x00 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">n", + }, + Package() + { + // 0x01 SET_CODEC_RESET 0x00 + "Command", Buffer() { 0x00, 0x17, 0xff, 0x00 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">n", + }, + Package() + { + // 0x1 SET_POWER_STATE 0x03 + "Command", Buffer() { 0x00, 0x17, 0x05, 0x03 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">n", + }, + Package() + { + // 0x21 SET_UNSOLICITED_ENABLE 0x83 + "Command", Buffer() { 0x02, 0x17, 0x08, 0x83 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">y", + }, + }, + //"Perform Reset", ">n", // enable if using AppleALC + //"Perform Reset on External Wake", ">n", // enable if using AppleALC + }, + }) +} +//EOF diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC668.dsl b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC668.dsl new file mode 100755 index 0000000..cd9a256 --- /dev/null +++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC668.dsl @@ -0,0 +1,63 @@ +// This SSDT demonstrates a custom configuration for ALC668. +// +// It is reportedly needed to solve a problem with booting +// OS X after Windows. +// +// See here for details: +// http://www.tonymacx86.com/el-capitan-laptop-support/185808-alc668-no-sound-after-reboot-windows-10-a.html#post1201248 +// + +// Customize to suit your needs. +// Compile to SSDT-ALC668.aml, place in ACPI/patched. Make sure SortedOrder includes it. + +DefinitionBlock ("", "SSDT", 1, "hack", "_ALC668", 0) +{ + External(_SB.PCI0.HDEF, DeviceObj) + Name(_SB.PCI0.HDEF.RMCF, Package() + { + "CodecCommander", Package() + { + "Custom Commands", Package() + { + Package(){}, // signifies Array instead of Dictionary + // correcting headphones (this is in the Info.plist too) + Package() + { + // 0x15 SET_UNSOLICITED_ENABLE 0x83 + "Command", Buffer() { 0x01, 0x57, 0x08, 0x83 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">y", + }, + Package() + { + // Node 0x1b - Pin Control (In Enable) + "Command", Buffer() { 0x01, 0xb7, 0x07, 0x20 }, + "On Init", ">n", + "On Sleep", ">n", + "On Wake", ">y", + }, + // correcting audio after Windows (not in current Info.plist) + Package() + { + // 0x20 SET_COEF_INDEX 0x07 + "Command", Buffer() { 0x02, 0x05, 0x00, 0x07 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">n", + }, + Package() + { + // 0x20 SET_PROC_COEF 0x0F80 + "Command", Buffer() { 0x02, 0x04, 0x0f, 0x80 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">n", + }, + }, + //"Perform Reset", ">n", // enable if using AppleALC + //"Perform Reset on External Wake", ">n", // enable if using AppleALC + }, + }) +} +//EOF diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-AppleALC.dsl b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-AppleALC.dsl new file mode 100755 index 0000000..1a98ae2 --- /dev/null +++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-AppleALC.dsl @@ -0,0 +1,23 @@ +// This SSDT demonstrates a custom configuration with certain features +// disabled when using AppleALC.kext. +// AppleALC.kext has some extra patches for AppleHDA that interfere with these +// features breaking audio after wake from sleep. +// +// Customize to suit your needs. +// +// As of CodecCommander v2.7.1, CodecCommander detects AppleALC for setting the default +// of these two options false. + +DefinitionBlock ("", "SSDT", 1, "hack", "_CCALC", 0) +{ + External(_SB.PCI0.HDEF, DeviceObj) + Name(_SB.PCI0.HDEF.RMCF, Package() + { + "CodecCommander", Package() + { + "Perform Reset", ">n", + "Perform Reset on External Wake", ">n", + }, + }) +} +//EOF diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-CX20752.dsl b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-CX20752.dsl new file mode 100755 index 0000000..2248d4d --- /dev/null +++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-CX20752.dsl @@ -0,0 +1,43 @@ +// SSDT to correct some problems headphone/mic on CX20752. +// +// Note: For use with the Anti-pop patches (seee RehabMan NUC repo) +// +// created by nayeweiyang/XuWang + +DefinitionBlock ("", "SSDT", 1, "hack", "_CX20752", 0) +{ + External(_SB.PCI0.HDEF, DeviceObj) + + Name(_SB.PCI0.HDEF.RMCF, Package() + { + "CodecCommander", Package() + { + "Custom Commands", Package() + { + Package(){}, // signifies Array instead of Dictionary + Package() + { + // 0x19 SET_PIN_WIDGET_CONTROL 0x24 + "Command", Buffer() { 0x01, 0x97, 0x07, 0x24 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">y", + }, + Package() + { + // 0x1a SET_PIN_WIDGET_CONTROL 0x24 + "Command", Buffer() { 0x01, 0xa7, 0x07, 0x24 }, + "On Init", ">y", + "On Sleep", ">n", + "On Wake", ">y", + }, + + }, + "Perform Reset", ">n", + "Perform Reset on External Wake", ">n", + }, + }) +} +//EOF + + diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/_CodeSignature/CodeResources b/EFI/OC/Kexts/CodecCommander.kext/Contents/_CodeSignature/CodeResources new file mode 100755 index 0000000..b898e66 --- /dev/null +++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/_CodeSignature/CodeResources @@ -0,0 +1,267 @@ + + + + + files + + Resources/Samples/SSDT-ALC1220.dsl + + EIES+l9rMGoeBieSkUNddrD5bWo= + + Resources/Samples/SSDT-ALC256-insanelydeepak.dsl + + VZkOsssBJ6T1/BsvNJsxIgN6sZY= + + Resources/Samples/SSDT-ALC256-vbourachot.dsl + + 4Kgmc2FJT1dIg9N7ykidCcuhPVI= + + Resources/Samples/SSDT-ALC280.dsl + + I0LQ4c40vPqO7KQyWKJ2MnsfiIU= + + Resources/Samples/SSDT-ALC283.dsl + + 3C5d98Yawh/48mwCelHDHJ4GINQ= + + Resources/Samples/SSDT-ALC298.dsl + + VKDMTH2YOrg+Y+z3VS9OHrPS0Fk= + + Resources/Samples/SSDT-ALC298a.dsl + + uZMK4TFxYyvCnF64GKMCkmIj+D0= + + Resources/Samples/SSDT-ALC668.dsl + + pxe3Mfkqdxto0CYYP1QQNnR/yYw= + + Resources/Samples/SSDT-AppleALC.dsl + + VPP+WvDCKf8Tw2HAbI6mGSApZec= + + Resources/Samples/SSDT-CX20752.dsl + + 2Dc4I1jWG0/CmJeTVaO3ci4K3B0= + + + files2 + + Resources/Samples/SSDT-ALC1220.dsl + + hash + + EIES+l9rMGoeBieSkUNddrD5bWo= + + hash2 + + jqBgCuISRIgDEohB6eJL6S35hXiT4avRWCIQkoG/7jE= + + + Resources/Samples/SSDT-ALC256-insanelydeepak.dsl + + hash + + VZkOsssBJ6T1/BsvNJsxIgN6sZY= + + hash2 + + sfT2TRn4QDdpacpab2BQO0EUosUxxjYP+H67YVrFxSM= + + + Resources/Samples/SSDT-ALC256-vbourachot.dsl + + hash + + 4Kgmc2FJT1dIg9N7ykidCcuhPVI= + + hash2 + + OJ1gIMJ54LeFpxyxQ4BNebpxAspZWngZsLotyXRav1E= + + + Resources/Samples/SSDT-ALC280.dsl + + hash + + I0LQ4c40vPqO7KQyWKJ2MnsfiIU= + + hash2 + + VXWVuyccAWvOYtVBGFby4wtGs8w3rgemCSrDsfU9Y4w= + + + Resources/Samples/SSDT-ALC283.dsl + + hash + + 3C5d98Yawh/48mwCelHDHJ4GINQ= + + hash2 + + wrBGgW4l9PJROiSBO70+4LDlxtKuTClEHurWIKbAqWw= + + + Resources/Samples/SSDT-ALC298.dsl + + hash + + VKDMTH2YOrg+Y+z3VS9OHrPS0Fk= + + hash2 + + 4wJ+O/VDersVdLXH6wdYyd8Giyj5sp39FYFacOMgWMo= + + + Resources/Samples/SSDT-ALC298a.dsl + + hash + + uZMK4TFxYyvCnF64GKMCkmIj+D0= + + hash2 + + 35qUmgVJmTFC09kAKboui1WfOeWpx8EZiuw0Ak11KqM= + + + Resources/Samples/SSDT-ALC668.dsl + + hash + + pxe3Mfkqdxto0CYYP1QQNnR/yYw= + + hash2 + + LyyMqlOlDDUkN/V9UfdYEo4NdzbruFwX9AtjqfzikHw= + + + Resources/Samples/SSDT-AppleALC.dsl + + hash + + VPP+WvDCKf8Tw2HAbI6mGSApZec= + + hash2 + + Sqi40XOwc8QaXlqUngUwxY66utwbKX2zXrdXprwkCoA= + + + Resources/Samples/SSDT-CX20752.dsl + + hash + + 2Dc4I1jWG0/CmJeTVaO3ci4K3B0= + + hash2 + + sDRLVLSx27tOfnytpsAD7S23OOmox6NE4EeMafkvxzk= + + + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/EFI/OC/config.plist b/EFI/OC/config.plist index 6d9ffde..72e4f0f 100755 --- a/EFI/OC/config.plist +++ b/EFI/OC/config.plist @@ -16,11 +16,11 @@ Comment - The missing parts + Sound card IRQ patch Enabled Path - SSDT-TEMP.aml + SSDT-HPET-IPIC.aml Comment @@ -30,14 +30,6 @@ Path SSDT-VPS2.aml - - Comment - Sensor - Enabled - - Path - SSDT-ALS0.aml - Comment Graphics @@ -48,11 +40,11 @@ Comment - Sound card IRQ patch + Sensor Enabled Path - SSDT-HPET-IPIC.aml + SSDT-ALS0.aml Comment @@ -70,6 +62,22 @@ Path SSDT-SMBU.aml + + Comment + The missing parts + Enabled + + Path + SSDT-TEMP.aml + + + Comment + USB + Enabled + + Path + SSDT-USBX.aml + Comment delete EH01 @@ -84,7 +92,7 @@ Enabled Path - SSDT-USBX.aml + SSDT-ALC3.aml Delete @@ -1491,6 +1499,22 @@ PlistPath Contents/Info.plist + + BundlePath + CodecCommander.kext + Comment + + Enabled + + ExecutablePath + Contents/MacOS/CodecCommander + MaxKernel + + MinKernel + + PlistPath + Contents/Info.plist + BundlePath CPUFriend.kext