aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Nikolaus Schaller <hns@goldelico.com>2016-04-25 14:02:16 -0700
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2016-04-25 14:06:56 -0700
commit9e4cc255e6e18418ddbeea447efa506bb43d57a2 (patch)
tree913a63ebc3c8ca2ddf59d29652c2735c9c608b23
parentInput: bcm_iproc_tsc - DT spelling s/clock-name/clock-names/ (diff)
downloadlinux-dev-9e4cc255e6e18418ddbeea447efa506bb43d57a2.tar.xz
linux-dev-9e4cc255e6e18418ddbeea447efa506bb43d57a2.zip
Input: twl6040-vibra - remove mutex
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>
-rw-r--r--drivers/input/misc/twl6040-vibra.c15
1 files changed, 2 insertions, 13 deletions
diff --git a/drivers/input/misc/twl6040-vibra.c b/drivers/input/misc/twl6040-vibra.c
index ea63fad48de6..36c8182b7bd2 100644
--- a/drivers/input/misc/twl6040-vibra.c
+++ b/drivers/input/misc/twl6040-vibra.c
@@ -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,