msm: mdm: Add support for delay before reset.
The external modem needs time after an error fatal to put the DDR
into self-refresh mode, so the main processor needs to wait for
some time before resetting it.
Change-Id: I4410753b4eb947be6c7a21392f0ab9c24ef9d6ab
Signed-off-by: Joel King <joelking@codeaurora.org>
diff --git a/arch/arm/mach-msm/mdm_common.c b/arch/arm/mach-msm/mdm_common.c
index e892d98..0cfa634 100644
--- a/arch/arm/mach-msm/mdm_common.c
+++ b/arch/arm/mach-msm/mdm_common.c
@@ -229,6 +229,12 @@
{
mdm_drv->mdm_ready = 0;
gpio_direction_output(mdm_drv->ap2mdm_errfatal_gpio, 1);
+ if (mdm_drv->pdata->ramdump_delay_ms > 0) {
+ /* Wait for the external modem to complete
+ * its preparation for ramdumps.
+ */
+ mdelay(mdm_drv->pdata->ramdump_delay_ms);
+ }
mdm_drv->ops->power_down_mdm_cb(mdm_drv);
return 0;
}
@@ -353,6 +359,7 @@
mdm_drv->boot_type = CHARM_NORMAL_BOOT;
mdm_drv->ops = mdm_ops;
+ mdm_drv->pdata = pdev->dev.platform_data;
}
int mdm_common_create(struct platform_device *pdev,