RehabMan
Moderator
- Joined
- May 2, 2012
- Messages
- 181,058
- Motherboard
- Intel DH67BL
- CPU
- i7-2600K
- Graphics
- HD 3000
- Mac
- Mobile Phone
powerd daemon
OK..
powerd daemon
Hey RehabMan,
I patched my DSDT with your repo and used the R411 Samsung fix for my R780 Laptop. Battery status is working and shown after patching DSDT and placing ACPIbattery.kext
However my Bluetooth connection goes wonky and my connected MagicMouse jumps like crazy to the top whenever I lift it. Scrolling also goes haywire. After deleting the .kext everything is working as it should. I have no other kext except VoodooPS2 running until now.
Do you have an explanation for this behaviour?
TIA
I created the battery patch for surface pro 3 using this guide.
Thanks for such informative post.
I confirmed it working on Surface pro 3 with the ACPIBatteryManager.kext on 10.10.2
AppleSmartBattery::pollingTimeOut called
AppleSmartBattery::pollBatteryState: path = 2
AppleSmartBattery::pollBatteryState: path = 1
AppleSmartBatteryManager::getBatterySTA called
AppleSmartBattery::setBatterySTA: battery_status = 0x1f
AppleSmartBatteryManager::getBatteryBIF called
AppleSmartBatteryManager::getBatteryBIF: validateObject return 0xe00002bc
AppleSmartBatteryManager::getBatteryBIF: evaluateObject error 0xe00002bc
AppleSmartBatteryManager::getBatteryBST called
AppleSmartBatteryManager::getBatteryBST: evaluateObject error 0xe00002c2
I created the battery patch for surface pro 3 using this guide.
Thanks for such informative post.
I confirmed it working on Surface pro 3 with the ACPIBatteryManager.kext on 10.10.2
into method label _BTP code_regex Store\s+\(Arg0,\s+\^\^SBRG\.EC0\.B0AH\) replace_matched begin Store(ShiftRight(Arg0, 8), ^^SBRG.EC0.AH00) Store(Arg0, ^^SBRG.EC0.AH01) end;
into method label _BTP code_regex Store\s+\(Arg0,\s+\^\^SBRG\.EC0\.B0AH\) replace_matched begin Store(Arg0, ^^SBRG.EC0.AH00) Store(ShiftRight(Arg0, 8), ^^SBRG.EC0.AH01) end;
Hi!The translation on the 16-bit EC writes... are wrong...
Method (WAK, 1, NotSerialized)
{
\_SB.ATKD.GENW (Arg0)
\_SB.PCI0.GFX0.OWAK (Arg0)
\OEMW (Arg0)
}
}
Method (B1B2, 2, NotSerialized) { Return(Or(Arg0, ShiftLeft(Arg1, 8))) }
Method (OLPM, 0, Serialized)
{
If (LEqual (\_SB.ACPF, 0x00))
{
If (LLessEqual (\_SB.PCI0.SBRG.EC0.B0DC, 0x0BB8))
{
Store (One, \_SB.SLMT)
}
}
}
OperationRegion (SMBX, EmbeddedControl, 0x18, 0x28)
Field (SMBX, ByteAcc, NoLock, Preserve)
{
PRTC, 8, // 0x18
SSTS, 5, //
, 1, //
ALFG, 1, //
CDFG, 1, // 0x19
ADDR, 8, // 0x1A
CMDB, 8, // 0x1B
BDAT, 256, // 0x1C <----- like RehabMan's code
BCNT, 8,
, 1,
ALAD, 7,
ALD0, 8,
ALD1, 8
}
OperationRegion (SMB2, EmbeddedControl, 0x40, 0x28)
Field (SMB2, ByteAcc, NoLock, Preserve)
{
PRT2, 8, // 0x40
SST2, 5,
, 1,
ALF2, 1,
CDF2, 1, // 0x41
ADD2, 8, // 0x42
CMD2, 8, // 0x43
BDA2, 256, // 0x44 <----- like RehabMan's code
BCN2, 8,
, 1,
ALA2, 7,
ALR0, 8,
ALR1, 8
}
...
Offset (0x93),
TAH0, 16, // 0x93
TAH1, 16, // 0x95
...
Offset (0xF4),
B0SN, 16, // 0xF4
Offset (0xFC),
B1SN, 16 // 0xFC
...
Offset (0xA0),
B0VL, 16, // 0xA0
B0RC, 16, // 0xA2
B0FC, 16, // 0xA4
B0MD, 16, // 0xA6
B0ST, 16, // 0xA8
B0CC, 16, // 0xAA
B0DC, 16, // 0xAC
B0DV, 16, // 0xAE
B1VL, 16, // 0xB0
B1RC, 16, // 0xB2
B1FC, 16, // 0xB4
B1MD, 16, // 0xB6
B1ST, 16, // 0xB8
B1CC, 16, // 0xBA
B1DC, 16, // 0xBC
B1DV, 16 // 0xBE
// Store (DerefOf (Index (Arg6, 0x01)), BDAT)
WECB (0x1c, 256, DerefOf (Index (Arg6, 0x01))) // <<------------ WECB
...
// Store (DerefOf (Index (Arg6, 0x01)), BDA2)
WECB (0x44, 256, DerefOf (Index (Arg6, 0x01))) // <<------------ WECB
...
// Store (Arg4, BDAT)
WECB (0x1c, 256, Arg4) // <<------------ WECB
...
// Store (0x00, BDAT)
WECB (0x1c, 256, 0x00) // <<------------ WECB
...
// Store (0x00, BDAT)
WECB (0x1c, 256, 0x00) // <<------------ WECB
...
// Store (BDAT, Index (Local0, 0x02))
Store (RECB (0x1c, 256), Index (Local0, 0x02)) // <<------------ RECB
{
//Store (B1SN, Local0)
Store (RECB (0xFC, 16), Local0) // <<------------ RECB
}
Else
{
//Store (B0SN, Local0)
Store (RECB (0xF4, 16), Local0) // <<------------ RECB
}
...
If (LEqual (_T_0, 0x00))
{
//Store (TAH0, Local0)
Store (RECB (0x93, 16), Local0) // <<------------ RECB
Break
}
Else
{
If (LEqual (_T_0, 0x01))
{
//Store (TAH1, Local0)
Store (RECB (0x95, 16), Local0) // <<------------ RECB
Break
}