Jump to content

Patch to good working dsdt but battery status life…


hoanghuytuan
 Share

8 posts in this topic

Recommended Posts

Hello, I have asus x83vm-x1, core 2 duo p8400, nvidia graphic 9600M GS. I try two patches in the repo for ASUS computers of RehabMan but nothing change.

 

this is log system:

 

 

Oct 31 20:24:55 toans-MacBook-Pro kernel[0]: AppleSmartBattery::pollingTimeOut called

Oct 31 20:24:55 toans-MacBook-Pro kernel[0]: AppleSmartBattery::pollBatteryState: path = 0x1

Oct 31 20:24:55 toans-MacBook-Pro kernel[0]: AppleSmartBatteryManager::getBatterySTA called

Oct 31 20:24:55 toans-MacBook-Pro kernel[0]: AppleSmartBattery::setBatterySTA: battery_status = 0x1f

Oct 31 20:24:55 toans-MacBook-Pro kernel[0]: AppleSmartBatteryManager::getBatteryBIF called

Oct 31 20:24:55 toans-MacBook-Pro kernel[0]: AppleSmartBatteryManager::getBatteryBIF: validateObject return 0x0

Oct 31 20:24:55 toans-MacBook-Pro kernel[0]: AppleSmartBatteryManager::getBatteryBIF: evaluateObject error 0xe00002c2

Oct 31 20:24:55 toans-MacBook-Pro kernel[0]: AppleSmartBatteryManager::getBatteryBST called

Oct 31 20:24:55 toans-MacBook-Pro kernel[0]: AppleSmartBatteryManager::getBatteryBST: evaluateObject error 0xe00002c2

 

Who can help me?

Dsdt.aml.zip

Link to comment
Share on other sites

Hello, I have asus x83vm-x1, core 2 duo p8400, nvidia graphic 9600M GS. I try two patches in the repo for ASUS computers of RehabMan but nothing change.[/size]

 

this is log system:

 

 

Oct 31 20:24:55 toans-MacBook-Pro kernel[0]: AppleSmartBattery::pollingTimeOut called

Oct 31 20:24:55 toans-MacBook-Pro kernel[0]: AppleSmartBattery::pollBatteryState: path = 0x1

Oct 31 20:24:55 toans-MacBook-Pro kernel[0]: AppleSmartBatteryManager::getBatterySTA called

Oct 31 20:24:55 toans-MacBook-Pro kernel[0]: AppleSmartBattery::setBatterySTA: battery_status = 0x1f

Oct 31 20:24:55 toans-MacBook-Pro kernel[0]: AppleSmartBatteryManager::getBatteryBIF called

Oct 31 20:24:55 toans-MacBook-Pro kernel[0]: AppleSmartBatteryManager::getBatteryBIF: validateObject return 0x0

Oct 31 20:24:55 toans-MacBook-Pro kernel[0]: AppleSmartBatteryManager::getBatteryBIF: evaluateObject error 0xe00002c2

Oct 31 20:24:55 toans-MacBook-Pro kernel[0]: AppleSmartBatteryManager::getBatteryBST called

Oct 31 20:24:55 toans-MacBook-Pro kernel[0]: AppleSmartBatteryManager::getBatteryBST: evaluateObject error 0xe00002c2

 

Who can help me?

Try this modified patch:

#Maintained by: RehabMan for: Laptop Patches
#battery_ASUS-G75vw.txt

# created by Zackptg5 1/2014
# modified by RehabMan 2014-11-24

# works for:
#  ASUS G75vw
#  ASUS S400
#  ASUS G750 JW (probably works for Asus G750 JX and JH also)
#  ASUS PRO PU401LA
#  ASUS K56CM
#  ASUS X450C
#  ASUS X83vm-x1

#Convert 16 bit to 8 bit registers
into device label EC0 code_regex TAH0,\s+16, replace_matched begin AH00,8,AH01,8, end;
into device label EC0 code_regex TAH1,\s+16, replace_matched begin AH10,8,AH11,8, end;
into device label EC0 code_regex B0PN,\s+16, replace_matched begin B0P0,8,B0P1,8, end;
into device label EC0 code_regex B0VL,\s+16, replace_matched begin B0V0,8,B0V1,8, end;
into device label EC0 code_regex B0RC,\s+16, replace_matched begin B0R0,8,B0R1,8, end;
into device label EC0 code_regex B0FC,\s+16, replace_matched begin B0F0,8,B0F1,8, end;
into device label EC0 code_regex B0MD,\s+16, replace_matched begin B0M0,8,B0M1,8, end;
into device label EC0 code_regex B0ST,\s+16, replace_matched begin B0S0,8,B0S1,8, end;
into device label EC0 code_regex B0CC,\s+16, replace_matched begin B0C0,8,B0C1,8, end;
into device label EC0 code_regex B0DC,\s+16, replace_matched begin B0D0,8,B0D1,8, end;
into device label EC0 code_regex B0DV,\s+16, replace_matched begin B0D2,8,B0D3,8, end;
into device label EC0 code_regex B0TM,\s+16, replace_matched begin B0T0,8,B0T1,8, end;
into device label EC0 code_regex B0C1,\s+16, replace_matched begin B010,8,B011,8, end;
into device label EC0 code_regex B0C2,\s+16, replace_matched begin B020,8,B021,8, end;
into device label EC0 code_regex B0C3,\s+16, replace_matched begin B030,8,B031,8, end;
into device label EC0 code_regex B0C4,\s+16, replace_matched begin B040,8,B041,8, end;
into device label EC0 code_regex B1PN,\s+16, replace_matched begin B1P0,8,B1P1,8, end;
into device label EC0 code_regex B1VL,\s+16, replace_matched begin B1V0,8,B1V1,8, end;
into device label EC0 code_regex B1RC,\s+16, replace_matched begin B1R0,8,B1R1,8, end;
into device label EC0 code_regex B1FC,\s+16, replace_matched begin B1F0,8,B1F1,8, end;
into device label EC0 code_regex B1MD,\s+16, replace_matched begin B1M0,8,B1M1,8, end;
into device label EC0 code_regex B1ST,\s+16, replace_matched begin B1S0,8,B1S1,8, end;
into device label EC0 code_regex B1CC,\s+16, replace_matched begin B1C0,8,B1C1,8, end;
into device label EC0 code_regex B1DC,\s+16, replace_matched begin B1D0,8,B1D1,8, end;
into device label EC0 code_regex B1DV,\s+16, replace_matched begin B1D2,8,B1D3,8, end;
into device label EC0 code_regex B1TM,\s+16, replace_matched begin B1T0,8,B1T1,8, end;
into device label EC0 code_regex B1C1,\s+16, replace_matched begin B110,8,B111,8, end;
into device label EC0 code_regex B1C2,\s+16, replace_matched begin B120,8,B121,8, end;
into device label EC0 code_regex B1C3,\s+16, replace_matched begin B130,8,B131,8, end;
into device label EC0 code_regex B1C4,\s+16, replace_matched begin B140,8,B141,8, end;
into device label EC0 code_regex B0SN,\s+16, replace_matched begin B0N0,8,B0N1,8, end;
into device label EC0 code_regex B1SN,\s+16 replace_matched begin B1N0,8,B1N1,8, end;
into device label EC0 code_regex DT2B,\s+16 replace_matched begin T2B0,8,T2B1,8, end;

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

#Fix 16 bit registers
into method label TACH code_regex \(TAH0, replaceall_matched begin (B1B2(AH00,AH01), end;
into method label TACH code_regex \(TAH1, replaceall_matched begin (B1B2(AH10,AH11), end;
into method label BIFA code_regex \(B0SN, replaceall_matched begin (B1B2(B0N0,B0N1), end;
into method label BIFA code_regex \(B1SN, replaceall_matched begin (B1B2(B1N0,B1N1), end;
into method label SMBR code_regex \(DT2B, replaceall_matched begin (B1B2(T2B0,T2B1), end;
into method label SMBW code_regex Store\s+\((.*),\s+DT2B\) replace_matched 
begin
Store(ShiftRight(%1,8), T2B1) Store(%1, T2B0)
end;

#And more...
into_all method code_regex \(B0MD, replaceall_matched begin (B1B2(B0M0,B0M1), end;
into_all method code_regex \(B1MD, replaceall_matched begin (B1B2(B1M0,B1M1), end;
into_all method code_regex \(B0DC, replaceall_matched begin (B1B2(B0D0,B0D1), end;
into_all method code_regex \(B1DC, replaceall_matched begin (B1B2(B1D0,B1D1), end;
into_all method code_regex \(B0FC, replaceall_matched begin (B1B2(B0F0,B0F1), end;
into_all method code_regex \(B1FC, replaceall_matched begin (B1B2(B1F0,B1F1), end;
into_all method code_regex \(B0DV, replaceall_matched begin (B1B2(B0D2,B0D3), end;
into_all method code_regex \(B1DV, replaceall_matched begin (B1B2(B1D2,B1D3), end;
into_all method code_regex \(B0ST, replaceall_matched begin (B1B2(B0S0,B0S1), end;
into_all method code_regex \(B1ST, replaceall_matched begin (B1B2(B1S0,B1S1), end;
into_all method code_regex \(B0CC, replaceall_matched begin (B1B2(B0C0,B0C1), end;
into_all method code_regex \(B1CC, replaceall_matched begin (B1B2(B1C0,B1C1), end;
into_all method code_regex \(B0RC, replaceall_matched begin (B1B2(B0R0,B0R1), end;
into_all method code_regex \(B1RC, replaceall_matched begin (B1B2(B1R0,B1R1), end;
into_all method code_regex \(B0VL, replaceall_matched begin (B1B2(B0V0,B0V1), end;
into_all method code_regex \(B1VL, replaceall_matched begin (B1B2(B1V0,B1V1), end;

#G750JW requires this fix to compile
into method label _BIX code_regex \(\^\^LPCB\.EC0\.B0C3, replaceall_matched begin (B1B2(^^LPCB.EC0.B030,^^LPCB.EC0.B031), end;

#Change name of 256 bit registers
into device label EC0 code_regex BDAT,\s+256, replace_matched begin BDAX,	256, end;
into device label EC0 code_regex BDA2,\s+256, replace_matched begin BDAY,	256, end;

# utility methods to read/write buffers from/to EC
into method label RE1B parent_label EC0 remove_entry;
into method label RECB parent_label EC0 remove_entry;
into device label EC0 insert
begin
Method (RE1B, 1, NotSerialized)\n
{\n
    OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
    Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
    Return(BYTE)\n
}\n
Method (RECB, 2, Serialized)\n
{\n
    ShiftRight(Arg1, 3, Arg1)\n
    Name(TEMP, Buffer(Arg1) { })\n
    Add(Arg0, Arg1, Arg1)\n
    Store(0, Local0)\n
    While (LLess(Arg0, Arg1))\n
    {\n
        Store(RE1B(Arg0), Index(TEMP, Local0))\n
        Increment(Arg0)\n
        Increment(Local0)\n
    }\n
    Return(TEMP)\n
}\n
end;

#utility method to write to EC buffers
into method label WE1B parent_label EC0 remove_entry;
into method label WECB parent_label EC0 remove_entry;
into device label EC0 insert
begin
Method (WE1B, 2, NotSerialized)\n
{\n
    OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
    Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
    Store(Arg1, BYTE)\n
}\n
Method (WECB, 3, Serialized)\n
{\n
    ShiftRight(Arg1, 3, Arg1)\n
    Name(TEMP, Buffer(Arg1) { })\n
    Store(Arg2, TEMP)\n
    Add(Arg0, Arg1, Arg1)\n
    Store(0, Local0)\n
    While (LLess(Arg0, Arg1))\n
    {\n
        WE1B(Arg0, DerefOf(Index(TEMP, Local0)))\n
        Increment(Arg0)\n
        Increment(Local0)\n
    }\n
}\n
end;

#Note: offsets are based on actual DSDT.  Please verify if you have a different model.

#fix 256 bit registers
into method label SMBR code_regex Store\s+\((.*),\s+BDAT\) replaceall_matched begin WECB(0x1c,256,%1) end;
into method label SMBW code_regex Store\s+\((.*),\s+BDAT\) replaceall_matched begin WECB(0x1c,256,%1) end;
into method label ECSB code_regex Store\s+\((.*),\s+BDAT\) replaceall_matched begin WECB(0x1c,256,%1) end;
into method label ECSB code_regex Store\s+\((.*),\s+BDA2\) replaceall_matched begin WECB(0x44,256,%1) end;
into method label ECSB code_regex \(BDAT, replaceall_matched begin (RECB(0x1c,256), end;
into method label ECSB code_regex \(BDA2, replaceall_matched begin (RECB(0x44,256), end;
into method label SMBR code_regex \(BDAT, replaceall_matched begin (RECB(0x1c,256), end;

  • Like 1
Link to comment
Share on other sites

Try this modified patch:

#Maintained by: RehabMan for: Laptop Patches
#battery_ASUS-G75vw.txt

# created by Zackptg5 1/2014
# modified by RehabMan 2014-11-24

# works for:
#  ASUS G75vw
#  ASUS S400
#  ASUS G750 JW (probably works for Asus G750 JX and JH also)
#  ASUS PRO PU401LA
#  ASUS K56CM
#  ASUS X450C
#  ASUS X83vm-x1

#Convert 16 bit to 8 bit registers
into device label EC0 code_regex TAH0,\s+16, replace_matched begin AH00,8,AH01,8, end;
into device label EC0 code_regex TAH1,\s+16, replace_matched begin AH10,8,AH11,8, end;
into device label EC0 code_regex B0PN,\s+16, replace_matched begin B0P0,8,B0P1,8, end;
into device label EC0 code_regex B0VL,\s+16, replace_matched begin B0V0,8,B0V1,8, end;
into device label EC0 code_regex B0RC,\s+16, replace_matched begin B0R0,8,B0R1,8, end;
into device label EC0 code_regex B0FC,\s+16, replace_matched begin B0F0,8,B0F1,8, end;
into device label EC0 code_regex B0MD,\s+16, replace_matched begin B0M0,8,B0M1,8, end;
into device label EC0 code_regex B0ST,\s+16, replace_matched begin B0S0,8,B0S1,8, end;
into device label EC0 code_regex B0CC,\s+16, replace_matched begin B0C0,8,B0C1,8, end;
into device label EC0 code_regex B0DC,\s+16, replace_matched begin B0D0,8,B0D1,8, end;
into device label EC0 code_regex B0DV,\s+16, replace_matched begin B0D2,8,B0D3,8, end;
into device label EC0 code_regex B0TM,\s+16, replace_matched begin B0T0,8,B0T1,8, end;
into device label EC0 code_regex B0C1,\s+16, replace_matched begin B010,8,B011,8, end;
into device label EC0 code_regex B0C2,\s+16, replace_matched begin B020,8,B021,8, end;
into device label EC0 code_regex B0C3,\s+16, replace_matched begin B030,8,B031,8, end;
into device label EC0 code_regex B0C4,\s+16, replace_matched begin B040,8,B041,8, end;
into device label EC0 code_regex B1PN,\s+16, replace_matched begin B1P0,8,B1P1,8, end;
into device label EC0 code_regex B1VL,\s+16, replace_matched begin B1V0,8,B1V1,8, end;
into device label EC0 code_regex B1RC,\s+16, replace_matched begin B1R0,8,B1R1,8, end;
into device label EC0 code_regex B1FC,\s+16, replace_matched begin B1F0,8,B1F1,8, end;
into device label EC0 code_regex B1MD,\s+16, replace_matched begin B1M0,8,B1M1,8, end;
into device label EC0 code_regex B1ST,\s+16, replace_matched begin B1S0,8,B1S1,8, end;
into device label EC0 code_regex B1CC,\s+16, replace_matched begin B1C0,8,B1C1,8, end;
into device label EC0 code_regex B1DC,\s+16, replace_matched begin B1D0,8,B1D1,8, end;
into device label EC0 code_regex B1DV,\s+16, replace_matched begin B1D2,8,B1D3,8, end;
into device label EC0 code_regex B1TM,\s+16, replace_matched begin B1T0,8,B1T1,8, end;
into device label EC0 code_regex B1C1,\s+16, replace_matched begin B110,8,B111,8, end;
into device label EC0 code_regex B1C2,\s+16, replace_matched begin B120,8,B121,8, end;
into device label EC0 code_regex B1C3,\s+16, replace_matched begin B130,8,B131,8, end;
into device label EC0 code_regex B1C4,\s+16, replace_matched begin B140,8,B141,8, end;
into device label EC0 code_regex B0SN,\s+16, replace_matched begin B0N0,8,B0N1,8, end;
into device label EC0 code_regex B1SN,\s+16 replace_matched begin B1N0,8,B1N1,8, end;
into device label EC0 code_regex DT2B,\s+16 replace_matched begin T2B0,8,T2B1,8, end;

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

#Fix 16 bit registers
into method label TACH code_regex \(TAH0, replaceall_matched begin (B1B2(AH00,AH01), end;
into method label TACH code_regex \(TAH1, replaceall_matched begin (B1B2(AH10,AH11), end;
into method label BIFA code_regex \(B0SN, replaceall_matched begin (B1B2(B0N0,B0N1), end;
into method label BIFA code_regex \(B1SN, replaceall_matched begin (B1B2(B1N0,B1N1), end;
into method label SMBR code_regex \(DT2B, replaceall_matched begin (B1B2(T2B0,T2B1), end;
into method label SMBW code_regex Store\s+\((.*),\s+DT2B\) replace_matched 
begin
Store(ShiftRight(%1,8), T2B1) Store(%1, T2B0)
end;

#And more...
into_all method code_regex \(B0MD, replaceall_matched begin (B1B2(B0M0,B0M1), end;
into_all method code_regex \(B1MD, replaceall_matched begin (B1B2(B1M0,B1M1), end;
into_all method code_regex \(B0DC, replaceall_matched begin (B1B2(B0D0,B0D1), end;
into_all method code_regex \(B1DC, replaceall_matched begin (B1B2(B1D0,B1D1), end;
into_all method code_regex \(B0FC, replaceall_matched begin (B1B2(B0F0,B0F1), end;
into_all method code_regex \(B1FC, replaceall_matched begin (B1B2(B1F0,B1F1), end;
into_all method code_regex \(B0DV, replaceall_matched begin (B1B2(B0D2,B0D3), end;
into_all method code_regex \(B1DV, replaceall_matched begin (B1B2(B1D2,B1D3), end;
into_all method code_regex \(B0ST, replaceall_matched begin (B1B2(B0S0,B0S1), end;
into_all method code_regex \(B1ST, replaceall_matched begin (B1B2(B1S0,B1S1), end;
into_all method code_regex \(B0CC, replaceall_matched begin (B1B2(B0C0,B0C1), end;
into_all method code_regex \(B1CC, replaceall_matched begin (B1B2(B1C0,B1C1), end;
into_all method code_regex \(B0RC, replaceall_matched begin (B1B2(B0R0,B0R1), end;
into_all method code_regex \(B1RC, replaceall_matched begin (B1B2(B1R0,B1R1), end;
into_all method code_regex \(B0VL, replaceall_matched begin (B1B2(B0V0,B0V1), end;
into_all method code_regex \(B1VL, replaceall_matched begin (B1B2(B1V0,B1V1), end;

#G750JW requires this fix to compile
into method label _BIX code_regex \(\^\^LPCB\.EC0\.B0C3, replaceall_matched begin (B1B2(^^LPCB.EC0.B030,^^LPCB.EC0.B031), end;

#Change name of 256 bit registers
into device label EC0 code_regex BDAT,\s+256, replace_matched begin BDAX,	256, end;
into device label EC0 code_regex BDA2,\s+256, replace_matched begin BDAY,	256, end;

# utility methods to read/write buffers from/to EC
into method label RE1B parent_label EC0 remove_entry;
into method label RECB parent_label EC0 remove_entry;
into device label EC0 insert
begin
Method (RE1B, 1, NotSerialized)\n
{\n
    OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
    Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
    Return(BYTE)\n
}\n
Method (RECB, 2, Serialized)\n
{\n
    ShiftRight(Arg1, 3, Arg1)\n
    Name(TEMP, Buffer(Arg1) { })\n
    Add(Arg0, Arg1, Arg1)\n
    Store(0, Local0)\n
    While (LLess(Arg0, Arg1))\n
    {\n
        Store(RE1B(Arg0), Index(TEMP, Local0))\n
        Increment(Arg0)\n
        Increment(Local0)\n
    }\n
    Return(TEMP)\n
}\n
end;

#utility method to write to EC buffers
into method label WE1B parent_label EC0 remove_entry;
into method label WECB parent_label EC0 remove_entry;
into device label EC0 insert
begin
Method (WE1B, 2, NotSerialized)\n
{\n
    OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
    Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
    Store(Arg1, BYTE)\n
}\n
Method (WECB, 3, Serialized)\n
{\n
    ShiftRight(Arg1, 3, Arg1)\n
    Name(TEMP, Buffer(Arg1) { })\n
    Store(Arg2, TEMP)\n
    Add(Arg0, Arg1, Arg1)\n
    Store(0, Local0)\n
    While (LLess(Arg0, Arg1))\n
    {\n
        WE1B(Arg0, DerefOf(Index(TEMP, Local0)))\n
        Increment(Arg0)\n
        Increment(Local0)\n
    }\n
}\n
end;

#Note: offsets are based on actual DSDT.  Please verify if you have a different model.

#fix 256 bit registers
into method label SMBR code_regex Store\s+\((.*),\s+BDAT\) replaceall_matched begin WECB(0x1c,256,%1) end;
into method label SMBW code_regex Store\s+\((.*),\s+BDAT\) replaceall_matched begin WECB(0x1c,256,%1) end;
into method label ECSB code_regex Store\s+\((.*),\s+BDAT\) replaceall_matched begin WECB(0x1c,256,%1) end;
into method label ECSB code_regex Store\s+\((.*),\s+BDA2\) replaceall_matched begin WECB(0x44,256,%1) end;
into method label ECSB code_regex \(BDAT, replaceall_matched begin (RECB(0x1c,256), end;
into method label ECSB code_regex \(BDA2, replaceall_matched begin (RECB(0x44,256), end;
into method label SMBR code_regex \(BDAT, replaceall_matched begin (RECB(0x1c,256), end;

thank you very much. it's work, best wish for you.

hello

 

this must work 

 

attachicon.gifDSDT.aml.zip

 

use this to check bat

 

https://bitbucket.org/RehabMan/os-x-acpi-battery-driver/downloads

 

applehda nothing to do with bat

 

good hack

i dit it with help of RehabMan. you can help me fix warning in my dsdt. thank you so much.

Dsdt.aml.zip

Link to comment
Share on other sites

 Share

×
×
  • Create New...