summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/input/touchscreen/zinitix.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/drivers/input/touchscreen/zinitix.c b/drivers/input/touchscreen/zinitix.c
index 716d6fa60f86..0c36765bd79f 100644
--- a/drivers/input/touchscreen/zinitix.c
+++ b/drivers/input/touchscreen/zinitix.c
@@ -703,13 +703,11 @@ static int zinitix_suspend(struct device *dev)
struct i2c_client *client = to_i2c_client(dev);
struct bt541_ts_data *bt541 = i2c_get_clientdata(client);
- mutex_lock(&bt541->input_dev->mutex);
+ guard(mutex)(&bt541->input_dev->mutex);
if (input_device_enabled(bt541->input_dev))
zinitix_stop(bt541);
- mutex_unlock(&bt541->input_dev->mutex);
-
return 0;
}
@@ -717,16 +715,17 @@ static int zinitix_resume(struct device *dev)
{
struct i2c_client *client = to_i2c_client(dev);
struct bt541_ts_data *bt541 = i2c_get_clientdata(client);
- int ret = 0;
-
- mutex_lock(&bt541->input_dev->mutex);
+ int error;
- if (input_device_enabled(bt541->input_dev))
- ret = zinitix_start(bt541);
+ guard(mutex)(&bt541->input_dev->mutex);
- mutex_unlock(&bt541->input_dev->mutex);
+ if (input_device_enabled(bt541->input_dev)) {
+ error = zinitix_start(bt541);
+ if (error)
+ return error;
+ }
- return ret;
+ return 0;
}
static DEFINE_SIMPLE_DEV_PM_OPS(zinitix_pm_ops, zinitix_suspend, zinitix_resume);