|
@@ -9,6 +9,7 @@
|
|
|
#include <linux/cpuidle.h>
|
|
|
#include <linux/cpu_pm.h>
|
|
|
#include <linux/module.h>
|
|
|
+#include <asm/cacheflush.h>
|
|
|
#include <asm/cpuidle.h>
|
|
|
#include <asm/suspend.h>
|
|
|
|
|
@@ -17,6 +18,15 @@
|
|
|
|
|
|
static int imx6sx_idle_finish(unsigned long val)
|
|
|
{
|
|
|
+ /*
|
|
|
+ * for Cortex-A7 which has an internal L2
|
|
|
+ * cache, need to flush it before powering
|
|
|
+ * down ARM platform, since flushing L1 cache
|
|
|
+ * here again has very small overhead, compared
|
|
|
+ * to adding conditional code for L2 cache type,
|
|
|
+ * just call flush_cache_all() is fine.
|
|
|
+ */
|
|
|
+ flush_cache_all();
|
|
|
cpu_do_idle();
|
|
|
|
|
|
return 0;
|