@@ -351,9 +351,11 @@ static ssize_t show_ideapad_cam(struct device *dev,
{
unsigned long result;
struct ideapad_private *priv = dev_get_drvdata(dev);
+ int err;
- if (read_ec_data(priv->adev->handle, VPCCMD_R_CAMERA, &result))
- return sysfs_emit(buf, "-1\n");
+ err = read_ec_data(priv->adev->handle, VPCCMD_R_CAMERA, &result);
+ if (err)
+ return err;
return sysfs_emit(buf, "%lu\n", result);
}
@@ -382,9 +384,11 @@ static ssize_t show_ideapad_fan(struct device *dev,
{
unsigned long result;
struct ideapad_private *priv = dev_get_drvdata(dev);
+ int err;
- if (read_ec_data(priv->adev->handle, VPCCMD_R_FAN, &result))
- return sysfs_emit(buf, "-1\n");
+ err = read_ec_data(priv->adev->handle, VPCCMD_R_FAN, &result);
+ if (err)
+ return err;
return sysfs_emit(buf, "%lu\n", result);
}
@@ -415,9 +419,11 @@ static ssize_t touchpad_show(struct device *dev,
{
struct ideapad_private *priv = dev_get_drvdata(dev);
unsigned long result;
+ int err;
- if (read_ec_data(priv->adev->handle, VPCCMD_R_TOUCHPAD, &result))
- return sysfs_emit(buf, "-1\n");
+ err = read_ec_data(priv->adev->handle, VPCCMD_R_TOUCHPAD, &result);
+ if (err)
+ return err;
return sysfs_emit(buf, "%lu\n", result);
}
@@ -448,9 +454,11 @@ static ssize_t conservation_mode_show(struct device *dev,
{
struct ideapad_private *priv = dev_get_drvdata(dev);
unsigned long result;
+ int err;
- if (method_gbmd(priv->adev->handle, &result))
- return sysfs_emit(buf, "-1\n");
+ err = method_gbmd(priv->adev->handle, &result);
+ if (err)
+ return err;
return sysfs_emit(buf, "%u\n", test_bit(BM_CONSERVATION_BIT, &result));
}
@@ -486,7 +494,7 @@ static ssize_t fn_lock_show(struct device *dev,
int fail = read_method_int(priv->adev->handle, "HALS", &hals);
if (fail)
- return sysfs_emit(buf, "-1\n");
+ return fail;
result = hals;
return sysfs_emit(buf, "%u\n", test_bit(HA_FNLOCK_BIT, &result));
Consumers can differentiate an error from a successful read much more easily if the read() call fails with the appropriate errno instead of returning a magic string like "-1". Signed-off-by: Barnabás Pőcze <pobrn@protonmail.com>