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,