Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b25edc42 authored by Deepthi Dharwar's avatar Deepthi Dharwar Committed by Len Brown
Browse files

cpuidle: Remove CPUIDLE_FLAG_IGNORE and dev->prepare()

The cpuidle_device->prepare() mechanism causes updates to the
cpuidle_state[].flags, setting and clearing CPUIDLE_FLAG_IGNORE
to tell the governor not to chose a state on a per-cpu basis at
run-time. State demotion is now handled by the driver and it returns
the actual state entered. Hence, this mechanism is not required.
Also this removes per-cpu flags from cpuidle_state enabling
it to be made global.

Reference:
https://lkml.org/lkml/2011/3/25/52



Signed-off-by: default avatarDeepthi Dharwar <deepthi@linux.vnet.ibm>
Signed-off-by: default avatarTrinabh Gupta <g.trinabh@gmail.com>
Tested-by: default avatarJean Pihet <j-pihet@ti.com>
Acked-by: default avatarArjan van de Ven <arjan@linux.intel.com>
Reviewed-by: default avatarKevin Hilman <khilman@ti.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent e978aa7d
Loading
Loading
Loading
Loading
+0 −10
Original line number Diff line number Diff line
@@ -83,16 +83,6 @@ int cpuidle_idle_call(void)
	hrtimer_peek_ahead_timers();
#endif

	/*
	 * Call the device's prepare function before calling the
	 * governor's select function.  ->prepare gives the device's
	 * cpuidle driver a chance to update any dynamic information
	 * of its cpuidle states for the current idle period, e.g.
	 * state availability, latencies, residencies, etc.
	 */
	if (dev->prepare)
		dev->prepare(dev);

	/* ask the governor for the next state */
	next_state = cpuidle_curr_governor->select(dev);
	if (need_resched()) {
+0 −2
Original line number Diff line number Diff line
@@ -288,8 +288,6 @@ static int menu_select(struct cpuidle_device *dev)
	for (i = CPUIDLE_DRIVER_STATE_START; i < dev->state_count; i++) {
		struct cpuidle_state *s = &dev->states[i];

		if (s->flags & CPUIDLE_FLAG_IGNORE)
			continue;
		if (s->target_residency > data->predicted_us)
			continue;
		if (s->exit_latency > latency_req)
+0 −3
Original line number Diff line number Diff line
@@ -47,7 +47,6 @@ struct cpuidle_state {

/* Idle State Flags */
#define CPUIDLE_FLAG_TIME_VALID	(0x01) /* is residency time measurable? */
#define CPUIDLE_FLAG_IGNORE	(0x100) /* ignore during this idle period */

#define CPUIDLE_DRIVER_FLAGS_MASK (0xFFFF0000)

@@ -93,8 +92,6 @@ struct cpuidle_device {
	struct completion	kobj_unregister;
	void			*governor_data;
	int			safe_state_index;

	int (*prepare)		(struct cpuidle_device *dev);
};

DECLARE_PER_CPU(struct cpuidle_device *, cpuidle_devices);