From eec8e6f24986a6d9750b6829f1073bc5064332b3 Mon Sep 17 00:00:00 2001 From: SunBo <1443584939@qq.com> Date: Sun, 17 May 2026 20:22:20 +0800 Subject: [PATCH 1/2] Add ALC298 layout-id 98 for Lenovo Yoga 9 15IMH5 --- Resources/ALC298/Info.plist | 16 + Resources/ALC298/Platforms98.xml | 243 +++++ Resources/ALC298/layout98.xml | 835 ++++++++++++++++++ Resources/PinConfigs.kext/Contents/Info.plist | 18 + 4 files changed, 1112 insertions(+) create mode 100644 Resources/ALC298/Platforms98.xml create mode 100644 Resources/ALC298/layout98.xml diff --git a/Resources/ALC298/Info.plist b/Resources/ALC298/Info.plist index b8911857b4..5d794788ad 100755 --- a/Resources/ALC298/Info.plist +++ b/Resources/ALC298/Info.plist @@ -172,6 +172,14 @@ Path layout17.xml.zlib + + Comment + sunbo - Realtek ALC298 for Lenovo Yoga 9 15IMH5 + Id + 98 + Path + layout98.xml.zlib + Platforms @@ -335,6 +343,14 @@ Path Platforms17.xml.zlib + + Comment + sunbo - Realtek ALC298 for Lenovo Yoga 9 15IMH5 + Id + 98 + Path + Platforms98.xml.zlib + Patches diff --git a/Resources/ALC298/Platforms98.xml b/Resources/ALC298/Platforms98.xml new file mode 100644 index 0000000000..382d37745d --- /dev/null +++ b/Resources/ALC298/Platforms98.xml @@ -0,0 +1,243 @@ + + CommonPeripheralDSP + + + DeviceID + 0 + DeviceType + Headphone + + + DeviceID + 0 + DeviceType + Microphone + + + PathMaps + + + PathMap + + + + + + Amp + + Channels + + + Bind + 1 + Channel + 1 + + + Bind + 2 + Channel + 2 + + + MuteInputAmp + + PublishMute + + PublishVolume + + VolumeInputAmp + + + NodeID + 8 + + + NodeID + 35 + + + NodeID + 24 + + + + + + + Amp + + Channels + + + Bind + 1 + Channel + 1 + + + Bind + 2 + Channel + 2 + + + MuteInputAmp + + PublishMute + + PublishVolume + + VolumeInputAmp + + + NodeID + 17 + + + NodeID + 36 + + + NodeID + 18 + + + + + + + + + Amp + + MuteInputAmp + + PublishMute + + PublishVolume + + VolumeInputAmp + + + NodeID + 20 + + + Amp + + MuteInputAmp + + PublishMute + + PublishVolume + + VolumeInputAmp + + + NodeID + 13 + + + Amp + + Channels + + + Bind + 1 + Channel + 1 + + + Bind + 2 + Channel + 2 + + + MuteInputAmp + + PublishMute + + PublishVolume + + VolumeInputAmp + + + NodeID + 3 + + + + + + + Amp + + MuteInputAmp + + PublishMute + + PublishVolume + + VolumeInputAmp + + + NodeID + 33 + + + Amp + + MuteInputAmp + + PublishMute + + PublishVolume + + VolumeInputAmp + + + NodeID + 12 + + + Amp + + Channels + + + Bind + 1 + Channel + 1 + + + Bind + 2 + Channel + 2 + + + MuteInputAmp + + PublishMute + + PublishVolume + + VolumeInputAmp + + + NodeID + 2 + + + + + + PathMapID + 98 + + + diff --git a/Resources/ALC298/layout98.xml b/Resources/ALC298/layout98.xml new file mode 100644 index 0000000000..b6eafb1c6c --- /dev/null +++ b/Resources/ALC298/layout98.xml @@ -0,0 +1,835 @@ + + LayoutID + 98 + PathMapRef + + + CodecID + + 283902616 + + Headphone + + Inputs + + Mic + LineIn + + IntSpeaker + + LineIn + + MuteGPIO + 1342242840 + SignalProcessing + + SoftwareDSP + + DspFunction0 + + FunctionInfo + + DspFuncInstance + 0 + DspFuncName + DspNoiseReduction + DspFuncProcessingIndex + 0 + + ParameterInfo + + 1 + 0 + 2 + 1 + 3 + 0 + 4 + -1073029587 + 5 + UNiAwmgCb8KcoIHCjGeGwko3g8KLS3nClQV9wnr7hMLRp43CAIiSwlajlcLnK5jCHMuYwrl9lcJXm4/CBhmQwuJvlMKbxJTC7qyUwtjDl8KU+ZzCnCaewsmuncK/i5/CJtSewp8um8Lex5rC2QCdwq1lnsJ105zC9qmcwrMcnsLj/qDCZs2hwhtCocIFoZ/CCxOewrxwncIKiZrCyO+YwsmtmsID5p7CeNqfwhNMncKWIp3ChrycwiJcm8IkjJ3CsKqfwuByn8Iu8ZvCvyiWwhbdkcIEu4vCUfWLwoYrlcIy5J3Ci9ycwp0lnsK0QaDCOiygwnxdn8IztJ7Ciq2fwhFzosLIZaPCwUOjwo6TosIkR6LC6vehwtrwosIdtJ/CXLmbwlSZmcKDhJXCDFGRwnV6j8JTjY/CrqGQwgqYk8INzpjCuTufwrjlocKviKPC5YqlwgdmpcKZ2aXCGiumwq95osJOIJ/Cxl+ewtWGl8KmPJPC+sSawkdHo8JWB6LCskyhwqk7pcIth6nCh4Wswk+crcK9J6zCYJWqwmVJq8K8063C+1GuwiQAqMJjvZ/Cjo2hwsParsLRXrXCec63wr6IucLzD7rCuQy7wjs8vsKfJsLCxgrFwqVeyMIT6srCU+nMwv+M0MKaftbCpcjdwm+p5sL/CfHCHcT8wrp3A8PiJAzD + + PatchbayInfo + + + DspFunction1 + + FunctionInfo + + DspFuncInstance + 1 + DspFuncName + DspEqualization32 + DspFuncProcessingIndex + 1 + + ParameterInfo + + 1 + 0 + 9 + 0 + Filter + + + 2 + 2 + 3 + 0 + 4 + 0 + 5 + 1 + 6 + 1119939268 + 7 + 1060439283 + 8 + -1069504319 + + + 2 + 2 + 3 + 4 + 4 + 0 + 5 + 4 + 6 + 1165674830 + 7 + 1106304591 + 8 + -1073964333 + + + 2 + 2 + 3 + 5 + 4 + 0 + 5 + 4 + 6 + 1141348835 + 7 + 1084737706 + 8 + -1065063953 + + + 2 + 2 + 3 + 6 + 4 + 0 + 5 + 4 + 6 + 1139052693 + 7 + 1080938866 + 8 + -1073319056 + + + 2 + 2 + 3 + 8 + 4 + 0 + 5 + 4 + 6 + 1161958655 + 7 + 1099668786 + 8 + -1073319056 + + + 2 + 2 + 3 + 9 + 4 + 0 + 5 + 4 + 6 + 1148922426 + 7 + 1086508776 + 8 + -1076100424 + + + 2 + 2 + 3 + 10 + 4 + 0 + 5 + 4 + 6 + 1169908270 + 7 + 1106659062 + 8 + -1078236516 + + + 2 + 2 + 3 + 11 + 4 + 0 + 5 + 4 + 6 + 1168889995 + 7 + 1103911084 + 8 + -1082886964 + + + 2 + 2 + 3 + 12 + 4 + 0 + 5 + 4 + 6 + 1160729473 + 7 + 1095247586 + 8 + -1076100424 + + + 2 + 2 + 3 + 19 + 4 + 0 + 5 + 4 + 6 + 1171440929 + 7 + 1103785747 + 8 + -1075032379 + + + 2 + 2 + 3 + 21 + 4 + 0 + 5 + 4 + 6 + 1163187837 + 7 + 1102690138 + 8 + -1073319056 + + + 2 + 2 + 3 + 23 + 4 + 0 + 5 + 4 + 6 + 1172459204 + 7 + 1098523915 + 8 + -1062927862 + + + 2 + 2 + 3 + 24 + 4 + 0 + 5 + 4 + 6 + 1175303133 + 7 + 1102375714 + 8 + -1061058782 + + + 2 + 2 + 3 + 25 + 4 + 0 + 5 + 4 + 6 + 1179874390 + 7 + 1097945441 + 8 + -1054338996 + + + 2 + 2 + 3 + 26 + 4 + 0 + 5 + 4 + 6 + 1167504019 + 7 + 1102555367 + 8 + -1044515201 + + + 2 + 2 + 3 + 27 + 4 + 0 + 5 + 4 + 6 + 1177335863 + 7 + 1102845396 + 8 + -1054739513 + + + 2 + 2 + 3 + 31 + 4 + 0 + 5 + 0 + 6 + 1184146588 + 7 + 1060439283 + 8 + -1069504319 + + + + PatchbayInfo + + InputPort0 + + PortInstance + 0 + PortWidth + 1 + SourceFuncInstance + 0 + SourcePortIndex + 0 + + InputPort1 + + PortInstance + 1 + PortWidth + 1 + SourceFuncInstance + 0 + SourcePortIndex + 1 + + + + DspFunction2 + + FunctionInfo + + DspFuncInstance + 2 + DspFuncName + DspGainStage + DspFuncProcessingIndex + 2 + + ParameterInfo + + 1 + 0 + 2 + 1065353216 + 3 + 1065353216 + + PatchbayInfo + + InputPort0 + + PortInstance + 0 + PortWidth + 1 + SourceFuncInstance + 1 + SourcePortIndex + 0 + + InputPort1 + + PortInstance + 1 + PortWidth + 1 + SourceFuncInstance + 1 + SourcePortIndex + 1 + + + + + + + Mic + + MuteGPIO + 0 + SignalProcessing + + SoftwareDSP + + DspFunction0 + + FunctionInfo + + DspFuncInstance + 0 + DspFuncName + DspNoiseReduction + DspFuncProcessingIndex + 0 + + ParameterInfo + + 1 + 0 + 2 + 1 + 3 + 0 + 4 + -1073029587 + 5 + UNiAwmgCb8KcoIHCjGeGwko3g8KLS3nClQV9wnr7hMLRp43CAIiSwlajlcLnK5jCHMuYwrl9lcJXm4/CBhmQwuJvlMKbxJTC7qyUwtjDl8KU+ZzCnCaewsmuncK/i5/CJtSewp8um8Lex5rC2QCdwq1lnsJ105zC9qmcwrMcnsLj/qDCZs2hwhtCocIFoZ/CCxOewrxwncIKiZrCyO+YwsmtmsID5p7CeNqfwhNMncKWIp3ChrycwiJcm8IkjJ3CsKqfwuByn8Iu8ZvCvyiWwhbdkcIEu4vCUfWLwoYrlcIy5J3Ci9ycwp0lnsK0QaDCOiygwnxdn8IztJ7Ciq2fwhFzosLIZaPCwUOjwo6TosIkR6LC6vehwtrwosIdtJ/CXLmbwlSZmcKDhJXCDFGRwnV6j8JTjY/CrqGQwgqYk8INzpjCuTufwrjlocKviKPC5YqlwgdmpcKZ2aXCGiumwq95osJOIJ/Cxl+ewtWGl8KmPJPC+sSawkdHo8JWB6LCskyhwqk7pcIth6nCh4Wswk+crcK9J6zCYJWqwmVJq8K8063C+1GuwiQAqMJjvZ/Cjo2hwsParsLRXrXCec63wr6IucLzD7rCuQy7wjs8vsKfJsLCxgrFwqVeyMIT6srCU+nMwv+M0MKaftbCpcjdwm+p5sL/CfHCHcT8wrp3A8PiJAzD + + PatchbayInfo + + + DspFunction1 + + FunctionInfo + + DspFuncInstance + 1 + DspFuncName + DspEqualization32 + DspFuncProcessingIndex + 1 + + ParameterInfo + + 1 + 0 + 9 + 0 + Filter + + + 2 + 2 + 3 + 0 + 4 + 0 + 5 + 1 + 6 + 1119939268 + 7 + 1060439283 + 8 + -1069504319 + + + 2 + 2 + 3 + 4 + 4 + 0 + 5 + 4 + 6 + 1165674830 + 7 + 1106304591 + 8 + -1073964333 + + + 2 + 2 + 3 + 5 + 4 + 0 + 5 + 4 + 6 + 1141348835 + 7 + 1084737706 + 8 + -1065063953 + + + 2 + 2 + 3 + 6 + 4 + 0 + 5 + 4 + 6 + 1139052693 + 7 + 1080938866 + 8 + -1073319056 + + + 2 + 2 + 3 + 8 + 4 + 0 + 5 + 4 + 6 + 1161958655 + 7 + 1099668786 + 8 + -1073319056 + + + 2 + 2 + 3 + 9 + 4 + 0 + 5 + 4 + 6 + 1148922426 + 7 + 1086508776 + 8 + -1076100424 + + + 2 + 2 + 3 + 10 + 4 + 0 + 5 + 4 + 6 + 1169908270 + 7 + 1106659062 + 8 + -1078236516 + + + 2 + 2 + 3 + 11 + 4 + 0 + 5 + 4 + 6 + 1168889995 + 7 + 1103911084 + 8 + -1082886964 + + + 2 + 2 + 3 + 12 + 4 + 0 + 5 + 4 + 6 + 1160729473 + 7 + 1095247586 + 8 + -1076100424 + + + 2 + 2 + 3 + 19 + 4 + 0 + 5 + 4 + 6 + 1171440929 + 7 + 1103785747 + 8 + -1075032379 + + + 2 + 2 + 3 + 21 + 4 + 0 + 5 + 4 + 6 + 1163187837 + 7 + 1102690138 + 8 + -1073319056 + + + 2 + 2 + 3 + 23 + 4 + 0 + 5 + 4 + 6 + 1172459204 + 7 + 1098523915 + 8 + -1062927862 + + + 2 + 2 + 3 + 24 + 4 + 0 + 5 + 4 + 6 + 1175303133 + 7 + 1102375714 + 8 + -1061058782 + + + 2 + 2 + 3 + 25 + 4 + 0 + 5 + 4 + 6 + 1179874390 + 7 + 1097945441 + 8 + -1054338996 + + + 2 + 2 + 3 + 26 + 4 + 0 + 5 + 4 + 6 + 1167504019 + 7 + 1102555367 + 8 + -1044515201 + + + 2 + 2 + 3 + 27 + 4 + 0 + 5 + 4 + 6 + 1177335863 + 7 + 1102845396 + 8 + -1054739513 + + + 2 + 2 + 3 + 31 + 4 + 0 + 5 + 0 + 6 + 1184146588 + 7 + 1060439283 + 8 + -1069504319 + + + + PatchbayInfo + + InputPort0 + + PortInstance + 0 + PortWidth + 1 + SourceFuncInstance + 0 + SourcePortIndex + 0 + + InputPort1 + + PortInstance + 1 + PortWidth + 1 + SourceFuncInstance + 0 + SourcePortIndex + 1 + + + + DspFunction2 + + FunctionInfo + + DspFuncInstance + 2 + DspFuncName + DspGainStage + DspFuncProcessingIndex + 2 + + ParameterInfo + + 1 + 0 + 2 + 1065353216 + 3 + 1065353216 + + PatchbayInfo + + InputPort0 + + PortInstance + 0 + PortWidth + 1 + SourceFuncInstance + 1 + SourcePortIndex + 0 + + InputPort1 + + PortInstance + 1 + PortWidth + 1 + SourceFuncInstance + 1 + SourcePortIndex + 1 + + + + + + + Outputs + + IntSpeaker + Headphone + + PathMapID + 98 + + + diff --git a/Resources/PinConfigs.kext/Contents/Info.plist b/Resources/PinConfigs.kext/Contents/Info.plist index e8d888e42f..82299d2dcf 100755 --- a/Resources/PinConfigs.kext/Contents/Info.plist +++ b/Resources/PinConfigs.kext/Contents/Info.plist @@ -10978,6 +10978,24 @@ WakeVerbReinit + + AFGLowPowerState + AwAAAA== + Codec + sunbo - Realtek ALC298 for Lenovo Yoga 9 15IMH5 + CodecID + 283902616 + ConfigData + ASccgAEnHQEBJx6mAScfkAE3HAABNx0AATceAAE3H0ABRxxAAUcdAQFHHhcBRx+QAXcc8AF3HREBdx4RAXcfQQGHHCABhx0QAYceoQGHHwQBlxzwAZcdEQGXHhEBlx9BAacc8AGnHREBpx4RAacfQQHXHAEB1x0AAdcecAHXH0AB5xzwAecdEQHnHhEB5x9BAfcc8AH3HREB9x4RAfcfQQIXHBACFx0QAhceIQIXHwQBRwwCAhcMAg== + FuncGroup + 1 + LayoutID + 98 + WakeConfigData + AUcMAgIXDAI= + WakeVerbReinit + + AFGLowPowerState AwAAAA== From 7f1982dad8ba0629c86e8568041cb9332453571c Mon Sep 17 00:00:00 2001 From: SunBo <1443584939@qq.com> Date: Thu, 4 Jun 2026 09:08:24 +0800 Subject: [PATCH 2/2] Remove non-functional internal mic path (Pin 0x12) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Lenovo Yoga 9 15IMH5 uses 2 DMICs connected via Intel SST/SOF DSP, not through ALC298's analog Pin 0x12. The path ADC17→Selector36→Pin18(0x12) produces no audio and creates a phantom input device in System Preferences. Changes: - Platforms98.xml: Remove input path 2 (ADC17→Selector36→Pin18) - layout98.xml: Remove LineIn device and its DSP configuration - layout98.xml: Remove LineIn from Inputs array (only Mic remains) --- Resources/ALC298/Platforms98.xml | 42 ---- Resources/ALC298/layout98.xml | 404 ------------------------------- 2 files changed, 446 deletions(-) diff --git a/Resources/ALC298/Platforms98.xml b/Resources/ALC298/Platforms98.xml index 382d37745d..2c4ee0eafd 100644 --- a/Resources/ALC298/Platforms98.xml +++ b/Resources/ALC298/Platforms98.xml @@ -62,48 +62,6 @@ - - - - Amp - - Channels - - - Bind - 1 - Channel - 1 - - - Bind - 2 - Channel - 2 - - - MuteInputAmp - - PublishMute - - PublishVolume - - VolumeInputAmp - - - NodeID - 17 - - - NodeID - 36 - - - NodeID - 18 - - - diff --git a/Resources/ALC298/layout98.xml b/Resources/ALC298/layout98.xml index b6eafb1c6c..43b44433e6 100644 --- a/Resources/ALC298/layout98.xml +++ b/Resources/ALC298/layout98.xml @@ -13,413 +13,9 @@ Inputs Mic - LineIn IntSpeaker - LineIn - - MuteGPIO - 1342242840 - SignalProcessing - - SoftwareDSP - - DspFunction0 - - FunctionInfo - - DspFuncInstance - 0 - DspFuncName - DspNoiseReduction - DspFuncProcessingIndex - 0 - - ParameterInfo - - 1 - 0 - 2 - 1 - 3 - 0 - 4 - -1073029587 - 5 - UNiAwmgCb8KcoIHCjGeGwko3g8KLS3nClQV9wnr7hMLRp43CAIiSwlajlcLnK5jCHMuYwrl9lcJXm4/CBhmQwuJvlMKbxJTC7qyUwtjDl8KU+ZzCnCaewsmuncK/i5/CJtSewp8um8Lex5rC2QCdwq1lnsJ105zC9qmcwrMcnsLj/qDCZs2hwhtCocIFoZ/CCxOewrxwncIKiZrCyO+YwsmtmsID5p7CeNqfwhNMncKWIp3ChrycwiJcm8IkjJ3CsKqfwuByn8Iu8ZvCvyiWwhbdkcIEu4vCUfWLwoYrlcIy5J3Ci9ycwp0lnsK0QaDCOiygwnxdn8IztJ7Ciq2fwhFzosLIZaPCwUOjwo6TosIkR6LC6vehwtrwosIdtJ/CXLmbwlSZmcKDhJXCDFGRwnV6j8JTjY/CrqGQwgqYk8INzpjCuTufwrjlocKviKPC5YqlwgdmpcKZ2aXCGiumwq95osJOIJ/Cxl+ewtWGl8KmPJPC+sSawkdHo8JWB6LCskyhwqk7pcIth6nCh4Wswk+crcK9J6zCYJWqwmVJq8K8063C+1GuwiQAqMJjvZ/Cjo2hwsParsLRXrXCec63wr6IucLzD7rCuQy7wjs8vsKfJsLCxgrFwqVeyMIT6srCU+nMwv+M0MKaftbCpcjdwm+p5sL/CfHCHcT8wrp3A8PiJAzD - - PatchbayInfo - - - DspFunction1 - - FunctionInfo - - DspFuncInstance - 1 - DspFuncName - DspEqualization32 - DspFuncProcessingIndex - 1 - - ParameterInfo - - 1 - 0 - 9 - 0 - Filter - - - 2 - 2 - 3 - 0 - 4 - 0 - 5 - 1 - 6 - 1119939268 - 7 - 1060439283 - 8 - -1069504319 - - - 2 - 2 - 3 - 4 - 4 - 0 - 5 - 4 - 6 - 1165674830 - 7 - 1106304591 - 8 - -1073964333 - - - 2 - 2 - 3 - 5 - 4 - 0 - 5 - 4 - 6 - 1141348835 - 7 - 1084737706 - 8 - -1065063953 - - - 2 - 2 - 3 - 6 - 4 - 0 - 5 - 4 - 6 - 1139052693 - 7 - 1080938866 - 8 - -1073319056 - - - 2 - 2 - 3 - 8 - 4 - 0 - 5 - 4 - 6 - 1161958655 - 7 - 1099668786 - 8 - -1073319056 - - - 2 - 2 - 3 - 9 - 4 - 0 - 5 - 4 - 6 - 1148922426 - 7 - 1086508776 - 8 - -1076100424 - - - 2 - 2 - 3 - 10 - 4 - 0 - 5 - 4 - 6 - 1169908270 - 7 - 1106659062 - 8 - -1078236516 - - - 2 - 2 - 3 - 11 - 4 - 0 - 5 - 4 - 6 - 1168889995 - 7 - 1103911084 - 8 - -1082886964 - - - 2 - 2 - 3 - 12 - 4 - 0 - 5 - 4 - 6 - 1160729473 - 7 - 1095247586 - 8 - -1076100424 - - - 2 - 2 - 3 - 19 - 4 - 0 - 5 - 4 - 6 - 1171440929 - 7 - 1103785747 - 8 - -1075032379 - - - 2 - 2 - 3 - 21 - 4 - 0 - 5 - 4 - 6 - 1163187837 - 7 - 1102690138 - 8 - -1073319056 - - - 2 - 2 - 3 - 23 - 4 - 0 - 5 - 4 - 6 - 1172459204 - 7 - 1098523915 - 8 - -1062927862 - - - 2 - 2 - 3 - 24 - 4 - 0 - 5 - 4 - 6 - 1175303133 - 7 - 1102375714 - 8 - -1061058782 - - - 2 - 2 - 3 - 25 - 4 - 0 - 5 - 4 - 6 - 1179874390 - 7 - 1097945441 - 8 - -1054338996 - - - 2 - 2 - 3 - 26 - 4 - 0 - 5 - 4 - 6 - 1167504019 - 7 - 1102555367 - 8 - -1044515201 - - - 2 - 2 - 3 - 27 - 4 - 0 - 5 - 4 - 6 - 1177335863 - 7 - 1102845396 - 8 - -1054739513 - - - 2 - 2 - 3 - 31 - 4 - 0 - 5 - 0 - 6 - 1184146588 - 7 - 1060439283 - 8 - -1069504319 - - - - PatchbayInfo - - InputPort0 - - PortInstance - 0 - PortWidth - 1 - SourceFuncInstance - 0 - SourcePortIndex - 0 - - InputPort1 - - PortInstance - 1 - PortWidth - 1 - SourceFuncInstance - 0 - SourcePortIndex - 1 - - - - DspFunction2 - - FunctionInfo - - DspFuncInstance - 2 - DspFuncName - DspGainStage - DspFuncProcessingIndex - 2 - - ParameterInfo - - 1 - 0 - 2 - 1065353216 - 3 - 1065353216 - - PatchbayInfo - - InputPort0 - - PortInstance - 0 - PortWidth - 1 - SourceFuncInstance - 1 - SourcePortIndex - 0 - - InputPort1 - - PortInstance - 1 - PortWidth - 1 - SourceFuncInstance - 1 - SourcePortIndex - 1 - - - - - - Mic MuteGPIO