diff options
| author | Jim Wylder <jwylder@motorola.com> | 2014-08-10 11:25:48 -0500 |
|---|---|---|
| committer | James Wylder <jwylder@motorola.com> | 2014-08-10 18:06:44 +0000 |
| commit | 1783f64df065fd7496bce680485b1c4259fe372f (patch) | |
| tree | 418e8727c251ce97e17d2b3f7f521900b84392aa /drivers/misc/m4sensorhub_pedometer.c | |
| parent | af33de0af5b5803582d572f36a942b031c86540f (diff) | |
| download | olio-linux-3.10-1783f64df065fd7496bce680485b1c4259fe372f.tar.xz olio-linux-3.10-1783f64df065fd7496bce680485b1c4259fe372f.zip | |
IKXCLOCK-3468 m4sensorhub: Use freezable workqueue
The update of the sensorhub to use polling was based on the
belief that the workqueue would be frozen before suspend and thawed
afterwards. Unfortunately the system_wq used by schedule_delayed_work,
is not freezable. Update the changes to use the system_freezable_wq.
Change-Id: Ib759664a5bc61dad72207f59d2c8c672cd0f7c9b
Signed-off-by: Jim Wylder <jwylder@motorola.com>
Diffstat (limited to 'drivers/misc/m4sensorhub_pedometer.c')
| -rw-r--r-- | drivers/misc/m4sensorhub_pedometer.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/misc/m4sensorhub_pedometer.c b/drivers/misc/m4sensorhub_pedometer.c index 56b2d912f7a..cf326454bea 100644 --- a/drivers/misc/m4sensorhub_pedometer.c +++ b/drivers/misc/m4sensorhub_pedometer.c @@ -175,8 +175,8 @@ static void m4ped_work_func(struct work_struct *work) if (err < 0) m4ped_err("%s: Failed with error code %d.\n", __func__, err); if (dd->samplerate > 0) - schedule_delayed_work(&(dd->m4ped_work), - msecs_to_jiffies(dd->samplerate)); + queue_delayed_work(system_freezable_wq, &(dd->m4ped_work), + msecs_to_jiffies(dd->samplerate)); mutex_unlock(&(dd->mutex)); return; } @@ -195,8 +195,8 @@ static int m4ped_set_samplerate(struct iio_dev *iio, int16_t rate) cancel_delayed_work(&(dd->m4ped_work)); dd->samplerate = rate; if (dd->samplerate > 0) - schedule_delayed_work(&(dd->m4ped_work), - msecs_to_jiffies(rate)); + queue_delayed_work(system_freezable_wq, &(dd->m4ped_work), + msecs_to_jiffies(dd->samplerate)); m4ped_set_samplerate_fail: return err; } @@ -633,8 +633,8 @@ static void m4ped_panic_restore(struct m4sensorhub_data *m4sensorhub, } cancel_delayed_work(&(dd->m4ped_work)); if (dd->samplerate > 0) - schedule_delayed_work(&(dd->m4ped_work), - msecs_to_jiffies(dd->samplerate)); + queue_delayed_work(system_freezable_wq, &(dd->m4ped_work), + msecs_to_jiffies(dd->samplerate)); m4ped_panic_restore_fail: mutex_unlock(&(dd->mutex)); |