diff options
Diffstat (limited to 'drivers/memory')
-rw-r--r-- | drivers/memory/emif.c | 10 |
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 | ||