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

Commit 7dc7988a authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "cpu_pm: Add level to the cluster pm notification"

parents fd8221b4 6df9e96a
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -36,11 +36,11 @@ static int highbank_suspend_finish(unsigned long val)
static int highbank_pm_enter(suspend_state_t state)
static int highbank_pm_enter(suspend_state_t state)
{
{
	cpu_pm_enter();
	cpu_pm_enter();
	cpu_cluster_pm_enter();
	cpu_cluster_pm_enter(0);


	cpu_suspend(0, highbank_suspend_finish);
	cpu_suspend(0, highbank_suspend_finish);


	cpu_cluster_pm_exit();
	cpu_cluster_pm_exit(0);
	cpu_pm_exit();
	cpu_pm_exit();


	return 0;
	return 0;
+2 −2
Original line number Original line Diff line number Diff line
@@ -169,7 +169,7 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
		 * to save GIC and wakeupgen context.
		 * to save GIC and wakeupgen context.
		 */
		 */
		if (mpuss_can_lose_context)
		if (mpuss_can_lose_context)
			cpu_cluster_pm_enter();
			cpu_cluster_pm_enter(0);
	}
	}


	omap4_enter_lowpower(dev->cpu, cx->cpu_state);
	omap4_enter_lowpower(dev->cpu, cx->cpu_state);
@@ -207,7 +207,7 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
	 * to restore GIC and wakeupgen context.
	 * to restore GIC and wakeupgen context.
	 */
	 */
	if (dev->cpu == 0 && mpuss_can_lose_context)
	if (dev->cpu == 0 && mpuss_can_lose_context)
		cpu_cluster_pm_exit();
		cpu_cluster_pm_exit(0);


	tick_broadcast_exit();
	tick_broadcast_exit();


+2 −2
Original line number Original line Diff line number Diff line
@@ -192,13 +192,13 @@ void tegra_idle_lp2_last(void)
{
{
	tegra_pm_set(TEGRA_SUSPEND_LP2);
	tegra_pm_set(TEGRA_SUSPEND_LP2);


	cpu_cluster_pm_enter();
	cpu_cluster_pm_enter(0);
	suspend_cpu_complex();
	suspend_cpu_complex();


	cpu_suspend(PHYS_OFFSET - PAGE_OFFSET, &tegra_sleep_cpu);
	cpu_suspend(PHYS_OFFSET - PAGE_OFFSET, &tegra_sleep_cpu);


	restore_cpu_complex();
	restore_cpu_complex();
	cpu_cluster_pm_exit();
	cpu_cluster_pm_exit(0);
}
}


enum tegra_suspend_mode tegra_pm_validate_suspend_mode(
enum tegra_suspend_mode tegra_pm_validate_suspend_mode(
+13 −3
Original line number Original line Diff line number Diff line
@@ -715,7 +715,8 @@ void gic_cpu_restore(struct gic_chip_data *gic)
	gic_cpu_if_up(gic);
	gic_cpu_if_up(gic);
}
}


static int gic_notifier(struct notifier_block *self, unsigned long cmd,	void *v)
static int gic_notifier(struct notifier_block *self, unsigned long cmd,
			void *aff_level)
{
{
	int i;
	int i;


@@ -734,10 +735,19 @@ static int gic_notifier(struct notifier_block *self, unsigned long cmd, void *v)
			gic_cpu_restore(&gic_data[i]);
			gic_cpu_restore(&gic_data[i]);
			break;
			break;
		case CPU_CLUSTER_PM_ENTER:
		case CPU_CLUSTER_PM_ENTER:
			/*
			 * Affinity level of the node
			 * eg:
			 *    cpu level = 0
			 *    l2 level  = 1
			 *    cci level = 2
			 */
			if (!(unsigned long)aff_level)
				gic_dist_save(&gic_data[i]);
				gic_dist_save(&gic_data[i]);
			break;
			break;
		case CPU_CLUSTER_PM_ENTER_FAILED:
		case CPU_CLUSTER_PM_ENTER_FAILED:
		case CPU_CLUSTER_PM_EXIT:
		case CPU_CLUSTER_PM_EXIT:
			if (!(unsigned long)aff_level)
				gic_dist_restore(&gic_data[i]);
				gic_dist_restore(&gic_data[i]);
			break;
			break;
		}
		}
+4 −4
Original line number Original line Diff line number Diff line
@@ -71,8 +71,8 @@ int cpu_pm_register_notifier(struct notifier_block *nb);
int cpu_pm_unregister_notifier(struct notifier_block *nb);
int cpu_pm_unregister_notifier(struct notifier_block *nb);
int cpu_pm_enter(void);
int cpu_pm_enter(void);
int cpu_pm_exit(void);
int cpu_pm_exit(void);
int cpu_cluster_pm_enter(void);
int cpu_cluster_pm_enter(unsigned long aff_level);
int cpu_cluster_pm_exit(void);
int cpu_cluster_pm_exit(unsigned long aff_level);


#else
#else


@@ -96,12 +96,12 @@ static inline int cpu_pm_exit(void)
	return 0;
	return 0;
}
}


static inline int cpu_cluster_pm_enter(void)
static inline int cpu_cluster_pm_enter(unsigned long aff_level)
{
{
	return 0;
	return 0;
}
}


static inline int cpu_cluster_pm_exit(void)
static inline int cpu_cluster_pm_exit(unsigned long aff_level)
{
{
	return 0;
	return 0;
}
}
Loading