> What is a "Correctly implemented driver" in this case? One that receives
Kernel side maybe - but even then its a subset of expressing
latency/lowest level requirements. That bit isn't really too contentious.
You need a kernel object to hang a constraint off.
So PCs with current ACPI don't get opportunistic suspend capability. It
probably won't be supported on the Commodore Amiga either - your point ?
Semantically the in kernel blockers and the in kernel expression of
device driven constraints are the same thing except that instead of
yes/no you replace the boolean with information.
So we go from
block_suspend() / unblock_suspend()
to
add_pm_constraint(latency, level)
remove_pm_constraint(latency, level);
And if Android choses to interpret that in its policy code as
if (latency > MAGIC)
suspend_is_cool();
else
suspend_isnt_cool();
that's now isolated in droidspace policy
Alan
--