Contribute
Register

HP Pavilion Battery does not charge [T9Y85AV]

Status
Not open for further replies.
So... let's look at the call sequence.
ACEL.ADJT is called from ACEL.INIT.
ACEL.INIT is called from EC0.ECMI.
And ECMI is called from EC0._REG.

In other words, ACEL.INIT is part of EC initialization (_REG announces the availability of the host EC driver).

Your change was to re-order some manipulations in INIT. The most significant part would be moving the store to PLGS from before the Sleep to after.

That Sleep for 3000 ms (3 sec) is very very long... (borders on ridiculous).
I think the ACPI interpreter in macOS may be likely to timeout during the _REG call with a 3 second sleep in there, as it is probably longer than they allow for an ACPI call to complete. It would timeout during the Sleep-op, so other code after that would just fail to run.

You might try reducing the duration of the Sleep, or eliminating the call to ACEL.INIT from ECMI completely.

Wow,Thx! I'll have a try according to your advice.
 
So... let's look at the call sequence.
ACEL.ADJT is called from ACEL.INIT.
ACEL.INIT is called from EC0.ECMI.
And ECMI is called from EC0._REG.

In other words, ACEL.INIT is part of EC initialization (_REG announces the availability of the host EC driver).

Your change was to re-order some manipulations in INIT. The most significant part would be moving the store to PLGS from before the Sleep to after.

That Sleep for 3000 ms (3 sec) is very very long... (borders on ridiculous).
I think the ACPI interpreter in macOS may be likely to timeout during the _REG call with a 3 second sleep in there, as it is probably longer than they allow for an ACPI call to complete. It would timeout during the Sleep-op, so other code after that would just fail to run.

You might try reducing the duration of the Sleep, or eliminating the call to ACEL.INIT from ECMI completely.
I eliminated the call to ACEL.INIT from ECMI,and the battery works normally!:headbang::headbang:
But it's useless to reducing the duration of the Sleep.(I change "Sleep (0x0BB8)" to "Sleep (0x0064)").
Thanks a lot! So we have fixed the symptom?
 
So... let's look at the call sequence.
ACEL.ADJT is called from ACEL.INIT.
ACEL.INIT is called from EC0.ECMI.
And ECMI is called from EC0._REG.

In other words, ACEL.INIT is part of EC initialization (_REG announces the availability of the host EC driver).

Your change was to re-order some manipulations in INIT. The most significant part would be moving the store to PLGS from before the Sleep to after.

That Sleep for 3000 ms (3 sec) is very very long... (borders on ridiculous).
I think the ACPI interpreter in macOS may be likely to timeout during the _REG call with a 3 second sleep in there, as it is probably longer than they allow for an ACPI call to complete. It would timeout during the Sleep-op, so other code after that would just fail to run.

You might try reducing the duration of the Sleep, or eliminating the call to ACEL.INIT from ECMI completely.
And which solution do you think is the better,re-ordering the manipulations in INIT or eliminating the call to ACEL.INIT?
 
And which solution do you think is the better,re-ordering the manipulations in INIT or eliminating the call to ACEL.INIT?

I would probably just remove the ACEL.INIT call. Or remove the code in it, since that is easier:
Code:
# something like this...
into method label INIT parent_label ACEL replace_content begin // code removed\n end;

Although you could do more experimentations/tracing (using ACPIDebug) to discover the real problem.
 
Status
Not open for further replies.
Back
Top