Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AppleALC - Resources/Controllers.plist for Ice Lake requires different patches for different laptops. Can this be a boot argument? #1973

Open
najeebanwer opened this issue Mar 12, 2022 · 3 comments
Labels
help wanted Extra attention is needed project:alc

Comments

@najeebanwer
Copy link

I have macOS 12.2.1 (Monterey) installed on a Dell XPS 13 9300 (Ice Lake) notebook. I am using OpenCore 0.7.9 and the latest kexts.

I have previously submitted an issue where my notebook would freeze when the AppleALC kext is loaded with the notebook connected to an external display via USB-C (see issue #1834). This issue was resolved and closed by using the information provided by @kingo132 in issue #1283.

The summary of the fix is that the patch provided for Ice Lake in Resources/Controllers.plist assumes that the device id for the audio controller is:
vendor: 8086 ("Intel Corporation"), device: 9d70 ("Sunrise Point-LP HD Audio")
However, for my laptop (and apparently for others), the device id that works is:
vendor: 8086 ("Intel Corporation"), device: a348 ("Cannon Lake PCH cAVS")
So, the patch in Resources/Controllers.plist is correct for some laptops, but causes a crash/freeze in others.

This means that I have to rebuild AppleALC from source when there is a new release using my modified Resources/Controllers.plist in order to have a working system. In other words, for the Icelake Smart Sound Technology Audio Controller, I have to replace the patch:

find:0E0000BE020000004889DF
Replace:0E0000B8709D0000EB0690

With the patch:

find:0E0000BE020000004889DF
Replace:0E0000B848A30000EB0690

Would it be possible to make this device id a boot argument to AppleALC? Something like:
alcctrl=a348 (or whatever device id works for that particular laptop)
This would override the device id value of 9d70 which can remain the default for Ice Lake.

@Core-i99
Copy link

Or maybe lake it possible to disable certain patches and add certain patches within a layout id?

@najeebanwer
Copy link
Author

@Core-i99, I like your idea. I suppose that it could be done in the Info,plist for a particular codec id? In my case it is ALC289, with layout id 99.
but it might be simpler and have the least impact on existing code if the alternate patches were in Controllers.plist and we could select the one we wanted with a boot argument.

@Core-i99
Copy link

I will maybe give it a try on some day. But don't have many experience with coding, I still need to learn a lot.
I hope anyone of the acidanthera team could take it.

@mikebeaton mikebeaton added the help wanted Extra attention is needed label Apr 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed project:alc
Development

No branches or pull requests

4 participants