RehabMan
Moderator
- Joined
- May 2, 2012
- Messages
- 181,006
- Motherboard
- Intel DH67BL
- CPU
- i7-2600K
- Graphics
- HD 3000
- Mac
- Mobile Phone
That is what I am saying. In my hardware this assumption leads to non working battery state. You have two options, either you will add another if case, or create SSDT-BATCv2 in which this assumption is reversed. When I exchange this order, everything is working. I deleted my bad assumption about _BST after I realized the start of if block. Sorry for the confusion.
For the case of no batteries returning valid data (even though the _STA returns 0x1F), the code has to make an assumption about which _BST, or _BIF to return, or would need to become smarter about choosing "valid data" over "invalid data". Currently, it prioritizes the first battery checked and it isn't much smarter than that...
You will need to provide data that shows what you're doing.
I would suggest some well placed ACPIDebug traces in SSDT-BATC.dsl.
For example, in both BATC._BIF and BATC._BST:
Code:
}
\rmdt.p2(Local0, Local2)
\rmdt.p2(Local1, Local3)
// find primary and secondary battery
If (0x1f != Local2 && 0x1f == Local3)
And at the return point of each:
Code:
}
\rmdt.p2("Result", Local0)
Return(Local0)
At least then you have some idea as to what the incoming data and outgoing data is...
I would need to see the resulting logs (eg. the early logs with invalid data) and "Problem Reporting" files.