Input: tps6507x-ts - a couple work queue cleanups

1) Use msecs_to_jiffies() instead of calculating by hand.
2) Call cancel_delayed_work_sync() instead of cancel_delayed_work()
   followed by a separate flush_workqueue().
3) Remove the "tsc->wq = 0;"  Sparse complains about that because
   tsc->wq is a pointer, not an int.  It's not needed because we just
   free the pointer anyway.

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
Dan Carpenter 2010-06-01 21:29:40 -07:00 committed by Dmitry Torokhov
parent fbf89f25fc
commit f7a2e30246

View File

@ -221,7 +221,7 @@ done:
if (poll) {
schd = queue_delayed_work(tsc->wq, &tsc->work,
tsc->poll_period * HZ / 1000);
msecs_to_jiffies(tsc->poll_period));
if (schd)
tsc->polling = 1;
else {
@ -326,7 +326,7 @@ static int tps6507x_ts_probe(struct platform_device *pdev)
goto err2;
schd = queue_delayed_work(tsc->wq, &tsc->work,
tsc->poll_period * HZ / 1000);
msecs_to_jiffies(tsc->poll_period));
if (schd)
tsc->polling = 1;
@ -339,10 +339,8 @@ static int tps6507x_ts_probe(struct platform_device *pdev)
return 0;
err2:
cancel_delayed_work(&tsc->work);
flush_workqueue(tsc->wq);
cancel_delayed_work_sync(&tsc->work);
destroy_workqueue(tsc->wq);
tsc->wq = 0;
input_free_device(input_dev);
err1:
kfree(tsc);
@ -360,10 +358,8 @@ static int __devexit tps6507x_ts_remove(struct platform_device *pdev)
if (!tsc)
return 0;
cancel_delayed_work(&tsc->work);
flush_workqueue(tsc->wq);
cancel_delayed_work_sync(&tsc->work);
destroy_workqueue(tsc->wq);
tsc->wq = 0;
input_free_device(input_dev);