Commit fba5779a authored by Flavio Ceolin's avatar Flavio Ceolin Committed by Anas Nashif
Browse files

power: policy: Account exit latency



Account exit latency time in the residency policy.

Signed-off-by: default avatarFlavio Ceolin <flavio.ceolin@intel.com>
parent e2d25bf0
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -20,13 +20,21 @@ struct pm_state_info pm_policy_next_state(int32_t ticks)
	int i;

	for (i = ARRAY_SIZE(pm_min_residency) - 1; i >= 0; i--) {
		uint32_t min_residency, exit_latency;

		if (!pm_constraint_get(pm_min_residency[i].state)) {
			continue;
		}

		min_residency = k_us_to_ticks_ceil32(
			    pm_min_residency[i].min_residency_us);
		exit_latency = k_us_to_ticks_ceil32(
			    pm_min_residency[i].exit_latency_us);
		__ASSERT(min_residency > exit_latency,
				"min_residency_us < exit_latency_us");

		if ((ticks == K_TICKS_FOREVER) ||
		    (ticks >= k_us_to_ticks_ceil32(
			    pm_min_residency[i].min_residency_us))) {
		    (ticks >= (min_residency - exit_latency))) {
			LOG_DBG("Selected power state %d "
				"(ticks: %d, min_residency: %u)",
				pm_min_residency[i].state, ticks,