summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd Poynor <toddpoynor@google.com>2012-07-13 08:24:41 +0800
committerXavier Boudet <x-boudet@ti.com>2012-07-13 08:56:45 +0200
commitaa274160351abe86c63a0801e588deee27a7c2df (patch)
tree4d63031aee6b953143539dba9cfbfa107525e583
parent5c489b3ae24aa76457e0a58bfdd5de13b4d34e26 (diff)
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>
-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 a6ebabd05b11..349cd55f36ba 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);
/*