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

Commit 3eef2455 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

Merge branch 'pm-cpuidle'

By Sivaram Nair (2) and others
* pm-cpuidle:
  cpuidle: fix lock contention in the idle path
  intel_idle: pr_debug information need separated
  cpuidle / coupled: fix ready counter decrement
  cpuidle: Fix finding state with min power_usage
parents f3fe8bd7 ac34d7c8
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -209,7 +209,7 @@ inline int cpuidle_coupled_set_not_ready(struct cpuidle_coupled *coupled)
	int all;
	int all;
	int ret;
	int ret;


	all = coupled->online_count || (coupled->online_count << WAITING_BITS);
	all = coupled->online_count | (coupled->online_count << WAITING_BITS);
	ret = atomic_add_unless(&coupled->ready_waiting_counts,
	ret = atomic_add_unless(&coupled->ready_waiting_counts,
		-MAX_WAITING_CPUS, all);
		-MAX_WAITING_CPUS, all);


+1 −1
Original line number Original line Diff line number Diff line
@@ -70,7 +70,7 @@ int cpuidle_play_dead(void)
	struct cpuidle_device *dev = __this_cpu_read(cpuidle_devices);
	struct cpuidle_device *dev = __this_cpu_read(cpuidle_devices);
	struct cpuidle_driver *drv = cpuidle_get_cpu_driver(dev);
	struct cpuidle_driver *drv = cpuidle_get_cpu_driver(dev);
	int i, dead_state = -1;
	int i, dead_state = -1;
	int power_usage = -1;
	int power_usage = INT_MAX;


	if (!drv)
	if (!drv)
		return -ENODEV;
		return -ENODEV;
+1 −7
Original line number Original line Diff line number Diff line
@@ -235,16 +235,10 @@ EXPORT_SYMBOL_GPL(cpuidle_get_driver);
 */
 */
struct cpuidle_driver *cpuidle_get_cpu_driver(struct cpuidle_device *dev)
struct cpuidle_driver *cpuidle_get_cpu_driver(struct cpuidle_device *dev)
{
{
	struct cpuidle_driver *drv;

	if (!dev)
	if (!dev)
		return NULL;
		return NULL;


	spin_lock(&cpuidle_driver_lock);
	return __cpuidle_get_cpu_driver(dev->cpu);
	drv = __cpuidle_get_cpu_driver(dev->cpu);
	spin_unlock(&cpuidle_driver_lock);

	return drv;
}
}
EXPORT_SYMBOL_GPL(cpuidle_get_cpu_driver);
EXPORT_SYMBOL_GPL(cpuidle_get_cpu_driver);


+1 −1
Original line number Original line Diff line number Diff line
@@ -312,7 +312,7 @@ static int menu_select(struct cpuidle_driver *drv, struct cpuidle_device *dev)
{
{
	struct menu_device *data = &__get_cpu_var(menu_devices);
	struct menu_device *data = &__get_cpu_var(menu_devices);
	int latency_req = pm_qos_request(PM_QOS_CPU_DMA_LATENCY);
	int latency_req = pm_qos_request(PM_QOS_CPU_DMA_LATENCY);
	int power_usage = -1;
	int power_usage = INT_MAX;
	int i;
	int i;
	int multiplier;
	int multiplier;
	struct timespec t;
	struct timespec t;
+1 −1
Original line number Original line Diff line number Diff line
@@ -506,7 +506,7 @@ static int intel_idle_cpuidle_driver_init(void)
			if (*cpuidle_state_table[cstate].name == '\0')
			if (*cpuidle_state_table[cstate].name == '\0')
				pr_debug(PREFIX "unaware of model 0x%x"
				pr_debug(PREFIX "unaware of model 0x%x"
					" MWAIT %d please"
					" MWAIT %d please"
					" contact lenb@kernel.org",
					" contact lenb@kernel.org\n",
				boot_cpu_data.x86_model, cstate);
				boot_cpu_data.x86_model, cstate);
			continue;
			continue;
		}
		}