From acffdf4e4a6b39489043efcaee5a4e65af1574a1 Mon Sep 17 00:00:00 2001 From: Ameya Thakur Date: Sun, 24 Jun 2012 22:47:52 -0700 Subject: [PATCH] msm: mdm: Target specific dump collection timeout Add the ability to specify the ramdump collection timeout on a per target basis. Some targets require more than the one minute default value. CRs-Fixed: 370177 Change-Id: Ic3c52817f61c338942d75624a6cb9a1ab9338801 Signed-off-by: Ameya Thakur --- arch/arm/mach-msm/board-8064.c | 1 + arch/arm/mach-msm/board-8960.c | 1 + arch/arm/mach-msm/include/mach/mdm2.h | 1 + arch/arm/mach-msm/mdm_common.c | 5 ++++- 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-msm/board-8064.c b/arch/arm/mach-msm/board-8064.c index 146009c89ef..833a6d1b8a8 100644 --- a/arch/arm/mach-msm/board-8064.c +++ b/arch/arm/mach-msm/board-8064.c @@ -1712,6 +1712,7 @@ static struct mdm_platform_data mdm_platform_data = { .sfr_query = 1, .vddmin_resource = &mdm_vddmin_rscs, .peripheral_platform_device = &apq8064_device_hsic_host, + .ramdump_timeout_ms = 120000, }; static struct tsens_platform_data apq_tsens_pdata = { diff --git a/arch/arm/mach-msm/board-8960.c b/arch/arm/mach-msm/board-8960.c index ec6238840f7..6fd2b4d6dac 100644 --- a/arch/arm/mach-msm/board-8960.c +++ b/arch/arm/mach-msm/board-8960.c @@ -1291,6 +1291,7 @@ static struct mdm_platform_data sglte_platform_data = { .ramdump_delay_ms = 1000, .soft_reset_inverted = 1, .peripheral_platform_device = NULL, + .ramdump_timeout_ms = 600000, }; #define MSM_TSIF0_PHYS (0x18200000) diff --git a/arch/arm/mach-msm/include/mach/mdm2.h b/arch/arm/mach-msm/include/mach/mdm2.h index 2bcdf072d2b..637a3cc3047 100644 --- a/arch/arm/mach-msm/include/mach/mdm2.h +++ b/arch/arm/mach-msm/include/mach/mdm2.h @@ -30,6 +30,7 @@ struct mdm_platform_data { int no_powerdown_after_ramdumps; struct mdm_vddmin_resource *vddmin_resource; struct platform_device *peripheral_platform_device; + const unsigned int ramdump_timeout_ms; }; #endif diff --git a/arch/arm/mach-msm/mdm_common.c b/arch/arm/mach-msm/mdm_common.c index 04ce49f3fb8..1b09c342654 100644 --- a/arch/arm/mach-msm/mdm_common.c +++ b/arch/arm/mach-msm/mdm_common.c @@ -51,6 +51,7 @@ static int mdm_debug_on; static struct workqueue_struct *mdm_queue; static struct workqueue_struct *mdm_sfr_queue; +static unsigned int dump_timeout_ms; #define EXTERNAL_MODEM "external_modem" @@ -395,7 +396,7 @@ static int mdm_subsys_ramdumps(int want_dumps, mdm_drv->boot_type = CHARM_RAM_DUMPS; complete(&mdm_needs_reload); if (!wait_for_completion_timeout(&mdm_ram_dumps, - msecs_to_jiffies(MDM_RDUMP_TIMEOUT))) { + msecs_to_jiffies(dump_timeout_ms))) { mdm_drv->mdm_ram_dump_status = -ETIMEDOUT; pr_info("%s: mdm modem ramdumps timed out.\n", __func__); @@ -516,6 +517,8 @@ static void mdm_modem_initialize_data(struct platform_device *pdev, mdm_drv->ops = mdm_ops; mdm_drv->pdata = pdev->dev.platform_data; + dump_timeout_ms = mdm_drv->pdata->ramdump_timeout_ms > 0 ? + mdm_drv->pdata->ramdump_timeout_ms : MDM_RDUMP_TIMEOUT; } int mdm_common_create(struct platform_device *pdev,