"Gautham R. Shenoy" [off-list ref] writes:
quoted hunk ↗ jump to hunk
diff --git a/drivers/cpuidle/cpuidle-powernv.c b/drivers/cpuidle/cpuidle-powernv.c
index 7fe442c..9240e08 100644
--- a/drivers/cpuidle/cpuidle-powernv.c
+++ b/drivers/cpuidle/cpuidle-powernv.c
@@ -243,28 +262,31 @@ static int powernv_add_idle_states(void)
*/
if (latency_ns[i] > POWERNV_THRESHOLD_LATENCY_NS)
continue;
+ /*
+ * Firmware passes residency and latency values in ns.
+ * cpuidle expects it in us.
+ */
+ exit_latency = ((unsigned int)latency_ns[i]) / 1000;
+ target_residency = (!rc) ? ((unsigned int)residency_ns[i]) : 0;
+ target_residency /= 1000;
Urk.
Can you just do it normally:
if (rc == 0)
target_residency = (unsigned int)residency_ns[i] / 1000;
I also don't see why you need the cast?
cheers