summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilippe Langlais <philippe.langlais@stericsson.com>2011-10-12 10:45:02 +0200
committerMathieu J. Poirier <mathieu.poirier@linaro.org>2011-11-10 11:12:12 -0700
commit1d85e95c47901fae41ffd9e64d2afca5a557ed3d (patch)
treeaf57f3f70549911adddd7c5ef5c40a6a364152ad
parent6203efe5fa3561683c7952ac68cb79ea30ac27db (diff)
shrm: sw reset: Save SW Reset Reason before reset
Converts the reboot reason string received in SYSCALL_DEFINE4 in sys.c into a 2 bytes reset reason code. This 16 bit value is stored in the TCDM Memory at location: tcdm_base + 0xFF8. The string to code mapping structure has been added in file reboot_reasons.h and reboot_reasons.c. The code for translation has been placed in cpu.c. ST-Ericsson Linux next: Tested and reviewed with 2011-03-28 ST-Ericsson ID: 327863 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I5fe83b824c6dbe3f61a3d77671ce845e6f81d87b Signed-off-by: rickard evertsson <rickard.evertsson@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/19174 Reviewed-by: Mattias WALLIN <mattias.wallin@stericsson.com> Conflicts: arch/arm/mach-ux500/Makefile arch/arm/mach-ux500/cpu.c Conflicts: arch/arm/mach-ux500/Makefile arch/arm/mach-ux500/cpu.c arch/arm/mach-ux500/include/mach/prcmu-fw-api.h arch/arm/mach-ux500/include/mach/system.h arch/arm/mach-ux500/prcmu-db8500.c
-rw-r--r--drivers/misc/shrm/shrm_protocol.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/misc/shrm/shrm_protocol.c b/drivers/misc/shrm/shrm_protocol.c
index 6afe423d2cb..351f78ecbc2 100644
--- a/drivers/misc/shrm/shrm_protocol.c
+++ b/drivers/misc/shrm/shrm_protocol.c
@@ -19,6 +19,7 @@
#include <mach/prcmu-fw-api.h>
#include <mach/prcmu-regs.h>
#include <mach/suspend.h>
+#include <mach/reboot_reasons.h>
#define L2_HEADER_ISI 0x0
#define L2_HEADER_RPC 0x1
@@ -557,8 +558,9 @@ static void shrm_modem_reset_callback(unsigned long irq)
}
#else
dev_info(shm_dev->dev, "Modem in reset loop, doing System reset\n");
+
/* Call the PRCMU reset API */
- prcmu_system_reset();
+ prcmu_system_reset(SW_RESET_NO_ARGUMENT);
#endif
}