- Joined
- Mar 11, 2016
- Messages
- 84
- Motherboard
- HP ProBook 450 G2
- CPU
- i7-5500U
- Graphics
- HD 5500, 1366x768
Nothing attached.
Some problems with upload sorry. Please check now.
Nothing attached.
Post #1 covers github project updates.
Just to be sure, this command?
cd ~/Projects/probook.git
git stash
git pull
./download.sh
./install_downloads.sh
./build.sh
That's part of it... then you would need to update SSDT-HACK.aml (you can use install_acpi.sh just as you did originally).
Some problems with upload sorry. Please check now.
DefinitionBlock(...)
{
If(CondRefOf(_SB.PCI0.EH01))
{
Method(_SB.PCI0.EH01._DSM, ...) { ... }
}
If(CondRefOf(_SB.PCI0.EH02))
{
Method(_SB.PCI0.EH02._DSM, ...) { ... }
}
If(CondRefOf(_SB.PCI0.XHC))
{
Method(_SB.PCI0.XHC._DSM, ...) { ... }
}
}
Ok i will do it. This patch will fix the battery charge issue?
You only mentioned a "battery consumption" issue... never a "battery charge" issue.
Yes, i used wrong words. Battery consumption is the correct issue, thanks.
Thanks... it confirms the OS X bug.
The basic structure of SSDT-USB is this:
Code:DefinitionBlock(...) { If(CondRefOf(_SB.PCI0.EH01)) { Method(_SB.PCI0.EH01._DSM, ...) { ... } } If(CondRefOf(_SB.PCI0.EH02)) { Method(_SB.PCI0.EH02._DSM, ...) { ... } } If(CondRefOf(_SB.PCI0.XHC)) { Method(_SB.PCI0.XHC._DSM, ...) { ... } } }
In other words, for each existing scope EH01, EH02, XHC in _SB.PCI0, create a method named _DSM...
In your case, EH01 exists, and so does XHC. But EH02 does not.
So, injecting a method _DSM into EH02 will fail ... and is expected to fail... hence why it is protected with module level code using CondRefOf.
But the CondRefOf doesn't work, or at least the Method(_SB.PCI0.EH02._DSM), even though it is inside the CondRefOf block, still gives the ACPI implementation in OS X trouble... and causes it to abort processing anything that follows in the SSDT. So even though, XHC does exist, OS X never injects the associated _DSM for XHC, which causes problems (main problem is wrong FakePCIID_XHCIMux configuration, considering EH01 is disabled in RMD2._INI).
The work around is to separate each of these _DSM methods into separate SSDTs. One for EH01, another for EH02 and another for XHC.
Changes required for the workaround to this problem are checked in: https://github.com/RehabMan/HP-ProB...mmit/9947b5fbebc729a91f8409f12b7298c905dd3d9c
Note: Originally, I used config.plist/Devices/Arbitrary to do "dumb" injects like the EH01/EH02 properties (and even the XHC properties except RM,pr2-force). But the problem with Devices/Arbitrary is that Clover Configurator deletes it completely as it does for all Clover settings it doesn't support (nice, eh?). And no matter how many warnings I place in post #1 about not using Clover Configurator to edit the real config.plist, people will still do it... Which is why I switched to ACPI injection, but now we bump into this problem... and create a workaround.
Dear Rehabman, thanks for your long and clear reply and solution. (i didn't understand a lot of terms
Now, is there a procedure i should follow? Which SSDT-USB.aml file should i use? Not clear what should i do.