aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/memory/emif.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/memory/emif.c b/drivers/memory/emif.c
index 96add5b9ce5d..b2bb27261c73 100644
--- a/drivers/memory/emif.c
+++ b/drivers/memory/emif.c
@@ -25,6 +25,7 @@
25#include <linux/module.h> 25#include <linux/module.h>
26#include <linux/list.h> 26#include <linux/list.h>
27#include <linux/spinlock.h> 27#include <linux/spinlock.h>
28#include <linux/pm.h>
28#include <memory/jedec_ddr.h> 29#include <memory/jedec_ddr.h>
29#include "emif.h" 30#include "emif.h"
30#include "of_memory.h" 31#include "of_memory.h"
@@ -1015,7 +1016,14 @@ static irqreturn_t emif_threaded_isr(int irq, void *dev_id)
1015 1016
1016 if (emif->temperature_level == SDRAM_TEMP_VERY_HIGH_SHUTDOWN) { 1017 if (emif->temperature_level == SDRAM_TEMP_VERY_HIGH_SHUTDOWN) {
1017 dev_emerg(emif->dev, "SDRAM temperature exceeds operating limit.. Needs shut down!!!\n"); 1018 dev_emerg(emif->dev, "SDRAM temperature exceeds operating limit.. Needs shut down!!!\n");
1018 kernel_power_off(); 1019
1020 /* If we have Power OFF ability, use it, else try restarting */
1021 if (pm_power_off) {
1022 kernel_power_off();
1023 } else {
1024 WARN(1, "FIXME: NO pm_power_off!!! trying restart\n");
1025 kernel_restart("SDRAM Over-temp Emergency restart");
1026 }
1019 return IRQ_HANDLED; 1027 return IRQ_HANDLED;
1020 } 1028 }
1021 1029