Input: twl4030-vibra - Use system workqueue
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Fri, 11 Jan 2013 17:05:47 +0000 (09:05 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 22 Jan 2013 01:31:08 +0000 (17:31 -0800)
It is time to switch to system wq instead creating a queue for the driver.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/misc/twl4030-vibra.c

index e2e2a261e02a6d7c571254b96ee4798feaedc98e..68a5f33152a8cd8914d39245257735d0e5ecae38 100644 (file)
@@ -43,7 +43,6 @@ struct vibra_info {
        struct device           *dev;
        struct input_dev        *input_dev;
 
-       struct workqueue_struct *workqueue;
        struct work_struct      play_work;
 
        bool                    enabled;
@@ -143,19 +142,7 @@ static int vibra_play(struct input_dev *input, void *data,
        if (!info->speed)
                info->speed = effect->u.rumble.weak_magnitude >> 9;
        info->direction = effect->direction < EFFECT_DIR_180_DEG ? 0 : 1;
-       queue_work(info->workqueue, &info->play_work);
-       return 0;
-}
-
-static int twl4030_vibra_open(struct input_dev *input)
-{
-       struct vibra_info *info = input_get_drvdata(input);
-
-       info->workqueue = create_singlethread_workqueue("vibra");
-       if (info->workqueue == NULL) {
-               dev_err(&input->dev, "couldn't create workqueue\n");
-               return -ENOMEM;
-       }
+       schedule_work(&info->play_work);
        return 0;
 }
 
@@ -164,9 +151,6 @@ static void twl4030_vibra_close(struct input_dev *input)
        struct vibra_info *info = input_get_drvdata(input);
 
        cancel_work_sync(&info->play_work);
-       INIT_WORK(&info->play_work, vibra_play_work); /* cleanup */
-       destroy_workqueue(info->workqueue);
-       info->workqueue = NULL;
 
        if (info->enabled)
                vibra_disable(info);
@@ -238,7 +222,6 @@ static int twl4030_vibra_probe(struct platform_device *pdev)
        info->input_dev->name = "twl4030:vibrator";
        info->input_dev->id.version = 1;
        info->input_dev->dev.parent = pdev->dev.parent;
-       info->input_dev->open = twl4030_vibra_open;
        info->input_dev->close = twl4030_vibra_close;
        __set_bit(FF_RUMBLE, info->input_dev->ffbit);