Contribute
Register

Cant have both Battery and Ivy PM working at same time

Status
Not open for further replies.
Joined
Mar 27, 2011
Messages
50
Mac
  1. 0
Classic Mac
  1. 0
Mobile Phone
  1. Android
So when I use my 1.6 version AppleACPIPlatform.kext, I get working Ivy PM and sleep, however I dont get working battery

When I use any other version, I get working Battery, but not working Ivy PM/Sleep

Is there any version that can get me both working? Or any other solutions?
I'm on 10.8.2 Core i3 3120M
 
So when I use my 1.6 version AppleACPIPlatform.kext, I get working Ivy PM and sleep, however I dont get working battery

When I use any other version, I get working Battery, but not working Ivy PM/Sleep

Is there any version that can get me both working? Or any other solutions?
I'm on 10.8.2 Core i3 3120M

To use latest ACPIPlatform (actually any beyond the one included in SL) you usually need DSDT patches for battery methods. Each DSDT is generally different. Post the DSDT an I can have a look... sometimes it is easy, sometimes more involved...

Current version (10.8.4) of ACPIPlatform.kext is 1.7...
 
Here's my dsdt
 

Attachments

  • dsdt.zip
    14 KB · Views: 107
Here's my dsdt

I think your patch is pretty easy. For what computer is this for?

Here is the patch:
Code:
# Samsung Battery patch -jack7676
# Samsung Series 3 NP300E5E 
# created by RehabMan 8/20/2013

into method label B1B2 remove_entry;
into definitionblock code_regex . insert
begin
Method (B1B2, 2, NotSerialized) { Return (Or (Arg0, ShiftLeft (Arg1, 8))) }\n
end;

# 16-bit EC registers to 8-bit

into device label H_EC code_regex B1RP,\s+16 replace_matched begin BRP0,8,BRP1,8 end;
into device label H_EC code_regex B1RA,\s+16 replace_matched begin BRA0,8,BRA1,8 end;
into device label H_EC code_regex B1PR,\s+16 replace_matched begin BPR0,8,BPR1,8 end;
into device label H_EC code_regex B1VO,\s+16 replace_matched begin BVO0,8,BVO1,8 end;
into device label H_EC code_regex B1DA,\s+16 replace_matched begin BDA0,8,BDA1,8 end;
into device label H_EC code_regex B1DF,\s+16 replace_matched begin BDF0,8,BDF1,8 end;
into device label H_EC code_regex B1DV,\s+16 replace_matched begin BDV0,8,BDV1,8 end;
into device label H_EC code_regex B1DL,\s+16 replace_matched begin BDL0,8,BDL1,8 end;
into device label H_EC code_regex B1SE,\s+16 replace_matched begin BSE0,8,BSE1,8 end;
into device label H_EC code_regex B1CR,\s+16 replace_matched begin BCR0,8,BCR1,8 end;
into device label H_EC code_regex B1TM,\s+16 replace_matched begin BTM0,8,BTM1,8 end;
into device label H_EC code_regex BTPC,\s+16 replace_matched begin BPC0,8,BPC1,8 end;


into method label _BIF code_regex \(B1DA, replaceall_matched begin (B1B2(BDA0,BDA1), end;
into method label _BIF code_regex \(B1DF, replaceall_matched begin (B1B2(BDF0,BDF1), end;
into method label _BIF code_regex \(B1DV, replaceall_matched begin (B1B2(BDV0,BDV1), end;
into method label _BIF code_regex \(B1DL, replaceall_matched begin (B1B2(BDL0,BDL1), end;

into method label _BIX code_regex \(B1DA, replaceall_matched begin (B1B2(BDA0,BDA1), end;
into method label _BIX code_regex \(B1DF, replaceall_matched begin (B1B2(BDF0,BDF1), end;
into method label _BIX code_regex \(B1DV, replaceall_matched begin (B1B2(BDV0,BDV1), end;
into method label _BIX code_regex \(B1DL, replaceall_matched begin (B1B2(BDL0,BDL1), end;

into method label _BST code_regex \(B1PR, replaceall_matched begin (B1B2(BPR0,BPR1), end;
into method label _BST code_regex \(B1RA, replaceall_matched begin (B1B2(BRA0,BRA1), end;
into method label _BST code_regex \(B1VO, replaceall_matched begin (B1B2(BVO0,BVO1), end;

into method label _PTS code_regex \(\\_SB\.PCI0\.LPCB\.H_EC\.B1DF, replaceall_matched begin (B1B2(\\_SB.PCI0.LPCB.H_EC.BDF0,\\_SB.PCI0.LPCB.H_EC.BDF1), end;
into method label _WAK code_regex \(\\_SB\.PCI0\.LPCB\.H_EC\.B1DF, replaceall_matched begin (B1B2(\\_SB.PCI0.LPCB.H_EC.BDF0,\\_SB.PCI0.LPCB.H_EC.BDF1), end;

into method label _BTP code_regex Store\s+\(Local0,\s+BTPC\) replaceall_matched 
begin
   Store(ShiftRight(Local0, 8),BPC1)\n
   Store(Local0, BPC0)\n
end;
 
Its a Samsung Series 3 NP300E5E laptop
Core i3 3120M 2.5 GHz
 
Patch gives me lots of Object does not exist (B1B2) errors
 
Patch gives me lots of Object does not exist (B1B2) errors

Make sure you copy/paste all the text out of the code block. I just downloaded your posted DSDT. And then patch via the patch I posted (copy/paste from actual code block as posted), and no errors.
 
Hmm So before the patch, I have working sleep and no battery
After the patch I have I have working battery but no sleep

Sleep doesn't work because of instant wake
Somehow battery is keeping the laptop from sleeping?
 
Hmm So before the patch, I have working sleep and no battery
After the patch I have I have working battery but no sleep

Sleep doesn't work because of instant wake
Somehow battery is keeping the laptop from sleeping?

I guess you got the patch to apply correctly...

But the sleep thing is pretty interesting actually...

Your _PTS method in DSDT (_PTS is "prepare to sleep") does some things with 16-bit registers in EC:
(this is unpatched... patched version looks a bit different...)

Code:
    Method (_PTS, 1, NotSerialized)
    {
        Store (Zero, P80D)
        P8XH (Zero, Arg0)
        Store (\_SB.PCI0.LPCB.H_EC.B1DF, \_SB.BFCC) // !!! Accessing 16-bit EC register
        Store (\_SB.PCI0.LPCB.H_EC.BRIT, CBRV)
        If (LEqual (Arg0, 0x03))
...
    }

Note the comment on the access to B1DF. Prior to patching DSDT for battery with current ACPIPlatform.kext that line of code will cause the method to stop execution there and fail. So, in that scenario, most of the code in _PTS would not be executed.

You could change the _PTS such that it is disabled. Then see what happens:

Code:
    Method (_PTS, 1, NotSerialized)
    {
        Return  // added to disable code below...
        Store (Zero, P80D)
        P8XH (Zero, Arg0)
        Store (\_SB.PCI0.LPCB.H_EC.B1DF, \_SB.BFCC) // !!! Accessing 16-bit EC register
        Store (\_SB.PCI0.LPCB.H_EC.BRIT, CBRV)
        If (LEqual (Arg0, 0x03))
...
    }

Although I'm surprised your sleep is not equally broken without battery patch and SL version of ACPIPlatform.kext (because this line accessing 16-bit EC will not cause a problem, much like patched version with new ACPIPlatform).

Looks like you have some experimentation to do...
 
Status
Not open for further replies.
Back
Top