Skip to content

Commit

Permalink
Input: tps6507x-ts - a couple work queue cleanups
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Dan Carpenter authored and Dmitry Torokhov committed Jun 2, 2010
1 parent fbf89f2 commit f7a2e30
Showing 1 changed file with 4 additions and 8 deletions.
12 changes: 4 additions & 8 deletions drivers/input/touchscreen/tps6507x-ts.c
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ static void tps6507x_ts_handler(struct work_struct *work)

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 {
Expand Down Expand Up @@ -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;
Expand All @@ -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);
Expand All @@ -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);

Expand Down

0 comments on commit f7a2e30

Please sign in to comment.