From 912edf9fdf808cf930afafb49a1b9a3ae0bc37f7 Mon Sep 17 00:00:00 2001 From: Nishanth Menon Date: Thu, 1 Mar 2012 00:29:44 +0100 Subject: [PATCH] --- yaml --- r: 296104 b: refs/heads/master c: 1f55bc1852e42f0d06d9eb66b3d3c15b01b62abe h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/arm/mach-omap2/smartreflex.c | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 9968cccf1da8..1fcb00c8f422 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ad54c3ddb472410f05083dbcf03fcec67ab7b2a5 +refs/heads/master: 1f55bc1852e42f0d06d9eb66b3d3c15b01b62abe diff --git a/trunk/arch/arm/mach-omap2/smartreflex.c b/trunk/arch/arm/mach-omap2/smartreflex.c index 4b39c6489f6b..24ba80b70bd3 100644 --- a/trunk/arch/arm/mach-omap2/smartreflex.c +++ b/trunk/arch/arm/mach-omap2/smartreflex.c @@ -1055,8 +1055,32 @@ static int __devexit omap_sr_remove(struct platform_device *pdev) return 0; } +static void __devexit omap_sr_shutdown(struct platform_device *pdev) +{ + struct omap_sr_data *pdata = pdev->dev.platform_data; + struct omap_sr *sr_info; + + if (!pdata) { + dev_err(&pdev->dev, "%s: platform data missing\n", __func__); + return; + } + + sr_info = _sr_lookup(pdata->voltdm); + if (IS_ERR(sr_info)) { + dev_warn(&pdev->dev, "%s: omap_sr struct not found\n", + __func__); + return; + } + + if (sr_info->autocomp_active) + sr_stop_vddautocomp(sr_info); + + return; +} + static struct platform_driver smartreflex_driver = { .remove = __devexit_p(omap_sr_remove), + .shutdown = __devexit_p(omap_sr_shutdown), .driver = { .name = "smartreflex", },