summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Torokhov <dmitry.torokhov@gmail.com>2024-08-18 04:55:08 +0300
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2026-03-25 07:14:49 +0300
commitded32cc611ef48a47d1ff6d424151e3d0c82a3a8 (patch)
tree6cba723018287154054e78e8003812be802dbb5b
parent5568c1aeb33b008b1f643b1fa16360cdb6ccadf7 (diff)
downloadlinux-ded32cc611ef48a47d1ff6d424151e3d0c82a3a8.tar.xz
Input: hycon-hy46xx - use guard notation when acquiring mutex
Guard notation simplifies code. Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
-rw-r--r--drivers/input/touchscreen/hycon-hy46xx.c31
1 files changed, 11 insertions, 20 deletions
diff --git a/drivers/input/touchscreen/hycon-hy46xx.c b/drivers/input/touchscreen/hycon-hy46xx.c
index b2ff7a45b908..1513f20cbf51 100644
--- a/drivers/input/touchscreen/hycon-hy46xx.c
+++ b/drivers/input/touchscreen/hycon-hy46xx.c
@@ -181,18 +181,17 @@ static ssize_t hycon_hy46xx_setting_show(struct device *dev,
struct hycon_hy46xx_attribute *attr =
container_of(dattr, struct hycon_hy46xx_attribute, dattr);
u8 *field = (u8 *)tsdata + attr->field_offset;
- size_t count = 0;
int error = 0;
int val;
- mutex_lock(&tsdata->mutex);
+ guard(mutex)(&tsdata->mutex);
error = regmap_read(tsdata->regmap, attr->address, &val);
- if (error < 0) {
+ if (error) {
dev_err(&tsdata->client->dev,
"Failed to fetch attribute %s, error %d\n",
dattr->attr.name, error);
- goto out;
+ return error;
}
if (val != *field) {
@@ -202,11 +201,7 @@ static ssize_t hycon_hy46xx_setting_show(struct device *dev,
*field = val;
}
- count = sysfs_emit(buf, "%d\n", val);
-
-out:
- mutex_unlock(&tsdata->mutex);
- return error ?: count;
+ return sysfs_emit(buf, "%d\n", val);
}
static ssize_t hycon_hy46xx_setting_store(struct device *dev,
@@ -221,29 +216,25 @@ static ssize_t hycon_hy46xx_setting_store(struct device *dev,
unsigned int val;
int error;
- mutex_lock(&tsdata->mutex);
+ guard(mutex)(&tsdata->mutex);
error = kstrtouint(buf, 0, &val);
if (error)
- goto out;
+ return error;
- if (val < attr->limit_low || val > attr->limit_high) {
- error = -ERANGE;
- goto out;
- }
+ if (val < attr->limit_low || val > attr->limit_high)
+ return -ERANGE;
error = regmap_write(tsdata->regmap, attr->address, val);
- if (error < 0) {
+ if (error) {
dev_err(&tsdata->client->dev,
"Failed to update attribute %s, error: %d\n",
dattr->attr.name, error);
- goto out;
+ return error;
}
*field = val;
-out:
- mutex_unlock(&tsdata->mutex);
- return error ?: count;
+ return count;
}
static HYCON_ATTR_U8(threshold, 0644, HY46XX_THRESHOLD, 0, 255);