Input: twl6040-vibra - remove mutex
authorH. Nikolaus Schaller <hns@goldelico.com>
Mon, 25 Apr 2016 21:02:16 +0000 (14:02 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Mon, 25 Apr 2016 21:06:56 +0000 (14:06 -0700)
The mutex does not seem to be needed. twl4030-vibra doesn't
use one either.

Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/misc/twl6040-vibra.c

index ea63fad48de643be287648820c52bb7911771957..36c8182b7bd28bef275741996ab5d302e8701882 100644 (file)
@@ -47,7 +47,7 @@ struct vibra_info {
        struct input_dev *input_dev;
        struct workqueue_struct *workqueue;
        struct work_struct play_work;
-       struct mutex mutex;
+
        int irq;
 
        bool enabled;
@@ -183,8 +183,6 @@ static void vibra_play_work(struct work_struct *work)
        struct vibra_info *info = container_of(work,
                                struct vibra_info, play_work);
 
-       mutex_lock(&info->mutex);
-
        if (info->weak_speed || info->strong_speed) {
                if (!info->enabled)
                        twl6040_vibra_enable(info);
@@ -193,7 +191,6 @@ static void vibra_play_work(struct work_struct *work)
        } else if (info->enabled)
                twl6040_vibra_disable(info);
 
-       mutex_unlock(&info->mutex);
 }
 
 static int vibra_play(struct input_dev *input, void *data,
@@ -228,12 +225,8 @@ static void twl6040_vibra_close(struct input_dev *input)
 
        cancel_work_sync(&info->play_work);
 
-       mutex_lock(&info->mutex);
-
        if (info->enabled)
                twl6040_vibra_disable(info);
-
-       mutex_unlock(&info->mutex);
 }
 
 static int __maybe_unused twl6040_vibra_suspend(struct device *dev)
@@ -241,13 +234,11 @@ static int __maybe_unused twl6040_vibra_suspend(struct device *dev)
        struct platform_device *pdev = to_platform_device(dev);
        struct vibra_info *info = platform_get_drvdata(pdev);
 
-       mutex_lock(&info->mutex);
+       cancel_work_sync(&info->play_work);
 
        if (info->enabled)
                twl6040_vibra_disable(info);
 
-       mutex_unlock(&info->mutex);
-
        return 0;
 }
 
@@ -305,8 +296,6 @@ static int twl6040_vibra_probe(struct platform_device *pdev)
                return -EINVAL;
        }
 
-       mutex_init(&info->mutex);
-
        error = devm_request_threaded_irq(&pdev->dev, info->irq, NULL,
                                          twl6040_vib_irq_handler,
                                          IRQF_ONESHOT,