|
@@ -54,6 +54,8 @@ static struct clockdomain *cpu_clkdm[NR_CPUS];
|
|
|
static atomic_t abort_barrier;
|
|
|
static bool cpu_done[NR_CPUS];
|
|
|
|
|
|
+/* Private functions */
|
|
|
+
|
|
|
/**
|
|
|
* omap4_enter_idle_coupled_[simple/coupled] - OMAP4 cpuidle entry functions
|
|
|
* @dev: cpuidle device
|
|
@@ -161,9 +163,19 @@ fail:
|
|
|
return index;
|
|
|
}
|
|
|
|
|
|
-DEFINE_PER_CPU(struct cpuidle_device, omap4_idle_dev);
|
|
|
+/*
|
|
|
+ * For each cpu, setup the broadcast timer because local timers
|
|
|
+ * stops for the states above C1.
|
|
|
+ */
|
|
|
+static void omap_setup_broadcast_timer(void *arg)
|
|
|
+{
|
|
|
+ int cpu = smp_processor_id();
|
|
|
+ clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ON, &cpu);
|
|
|
+}
|
|
|
+
|
|
|
+static DEFINE_PER_CPU(struct cpuidle_device, omap4_idle_dev);
|
|
|
|
|
|
-struct cpuidle_driver omap4_idle_driver = {
|
|
|
+static struct cpuidle_driver omap4_idle_driver = {
|
|
|
.name = "omap4_idle",
|
|
|
.owner = THIS_MODULE,
|
|
|
.en_core_tk_irqen = 1,
|
|
@@ -178,7 +190,7 @@ struct cpuidle_driver omap4_idle_driver = {
|
|
|
.desc = "MPUSS ON"
|
|
|
},
|
|
|
{
|
|
|
- /* C2 - CPU0 OFF + CPU1 OFF + MPU CSWR */
|
|
|
+ /* C2 - CPU0 OFF + CPU1 OFF + MPU CSWR */
|
|
|
.exit_latency = 328 + 440,
|
|
|
.target_residency = 960,
|
|
|
.flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_COUPLED,
|
|
@@ -200,15 +212,7 @@ struct cpuidle_driver omap4_idle_driver = {
|
|
|
.safe_state_index = 0,
|
|
|
};
|
|
|
|
|
|
-/*
|
|
|
- * For each cpu, setup the broadcast timer because local timers
|
|
|
- * stops for the states above C1.
|
|
|
- */
|
|
|
-static void omap_setup_broadcast_timer(void *arg)
|
|
|
-{
|
|
|
- int cpu = smp_processor_id();
|
|
|
- clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ON, &cpu);
|
|
|
-}
|
|
|
+/* Public functions */
|
|
|
|
|
|
/**
|
|
|
* omap4_idle_init - Init routine for OMAP4 idle
|