summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorTodd Poynor <toddpoynor@google.com>2012-07-13 08:24:41 +0800
committerAndy Green <andy.green@linaro.org>2012-07-13 08:24:41 +0800
commitb1304121308b8a337e79f7ab14cb0f909d25ee0e (patch)
treefd5815d5735d2822e39ba3cc69aa7d7a66a66677 /arch
parenta7f5adab55d386757c8b10e7be824326b078bfd3 (diff)
downloadpanda-b1304121308b8a337e79f7ab14cb0f909d25ee0e.tar.gz
OMAP3630+: SmartReflex: Ensure worker canceled prior to free
sr_class1p5_disable may fail to cancel the worker if omap_voltage_get_curr_vdata() returns NULL, as during reboot. Signed-off-by: Todd Poynor <toddpoynor@google.com> Signed-off-by: Sebastien Jan <s-jan@ti.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-omap2/smartreflex-class1p5.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/smartreflex-class1p5.c b/arch/arm/mach-omap2/smartreflex-class1p5.c
index a6ebabd05b1..349cd55f36b 100644
--- a/arch/arm/mach-omap2/smartreflex-class1p5.c
+++ b/arch/arm/mach-omap2/smartreflex-class1p5.c
@@ -454,6 +454,9 @@ static void sr_class1p5_reset_calib(struct voltagedomain *voltdm, bool reset,
if (work_data->work_active)
sr_class1p5_disable(voltdm, work_data->vdata, 0);
+ /* Ensure worker canceled. */
+ cancel_delayed_work_sync(&work_data->work);
+
omap_voltage_calib_reset(voltdm);
/*