Contribute
Register

Lenovo Yoga 910-13IKB

Status
Not open for further replies.
That's fine, but easier to use MaciASL...
What parts of the DSDT will I need to patch for SMD0? SMD0 is the only variable I have left to patch. This is where I messed up last time
 
What parts of the DSDT will I need to patch for SMD0? SMD0 is the only variable I have left to patch. This is where I messed up last time

It appears you already patched any references to original SMD0 (you renamed to SMDP, and there are no references to it).
Read battery guide, post #1, "Problem Reporting".
 
It appears you already patched any references to original SMD0 (you renamed to SMDP, and there are no references to it).
Read battery guide, post #1, "Problem Reporting".
Does this mean I messed up, or I'm good to go? And I thought I had to patch
Code:
Store (FB4, SMD0)
and
Code:
 Store (SMD0, FB4)
 
Does this mean I messed up, or I'm good to go? And I thought I had to patch
Code:
Store (FB4, SMD0)
and
Code:
 Store (SMD0, FB4)

Because of the way you patched, you're making it difficult to find all the SMD0 references...

Because you also have an SMD0 at root scope, that code is now accessing the one at root instead of the one in H_EC.
I would start by changing SMD0 in root scope to XMD0, then all SMD0 that refer to the root scope so they refer to XMD0 (compiler will find them for you).
That way when you change SMD0 in H_EC scope to SMDP (later), the compiler will find all the places you need to patch for you...
(hint: there are only those two you mention).

Also... If you understand ACPI well enough, you can also just analyze the location of each SMD0 reference to decide whether it is accessing the H_EC SMD0 or root scope SMD0.

First example is a write... Would be translated to WECB(0x1c,256,FB4).
Second example is a read... Would be translated to Store(RECB(0x1c,256),FB4)

There are plenty of SMD0 examples in the various battery patches in my laptop repo...
 
Because of the way you patched, you're making it difficult to find all the SMD0 references...

Because you also have an SMD0 at root scope, that code is now accessing the one at root instead of the one in H_EC.
I would start by changing SMD0 in root scope to XMD0, then all SMD0 that refer to the root scope so they refer to XMD0 (compiler will find them for you).
That way when you change SMD0 in H_EC scope to SMDP (later), the compiler will find all the places you need to patch for you...
(hint: there are only those two you mention).

Also... If you understand ACPI well enough, you can also just analyze the location of each SMD0 reference to decide whether it is accessing the H_EC SMD0 or root scope SMD0.

First example is a write... Would be translated to WECB(0x1c,256,FB4).
Second example is a read... Would be translated to Store(RECB(0x1c,256),FB4)

There are plenty of SMD0 examples in the various battery patches in my laptop repo...
Thanks!! I am definitely starting to understand ACPI a lot more! Does this DSDT seem good? (Also check my XMD0 in root scope and the code that references it)
 

Attachments

  • DSDT.dsl
    1.3 MB · Views: 165
Booted DSDT with ACPIBatteryManager.kext installed and still shows no battery.
 
Read battery guide, post #1, "Problem Reporting".
Attached EFI (CLOVER\ACPI\Origin instead of patchmatic)
Kextstat and touch are in a text file
 

Attachments

  • Problem.zip
    1.6 MB · Views: 105
  • Josiah’s MacBook Pro.ioreg
    5 MB · Views: 124
Last edited:
Attached EFI (CLOVER\ACPI\Origin instead of patchmatic)
Kextstat and touch are in a text file

Comments:
- bad idea to have multiple DSDT files in ACPI/patched. It is not a dumping ground for random files...
- 184 bit field BART is not patched
- RefOf with patched EC fields requires careful handling (you must not use the RefOf...)
For example this:
Code:
       Store (^^PCI0.LPCB.H_EC.ECRD (RefOf (^^PCI0.LPCB.H_EC.BART)), Local0)
Needs to become:
Code:
Store(RECB(offset-BART, size-BART), Local0)
 
Object is not accessible from scope RECB
 
Status
Not open for further replies.
Back
Top