|
@@ -263,13 +263,11 @@ static int acpi_setter_handle(struct eeepc_laptop *eeepc, int cm,
|
|
|
/*
|
|
|
* Sys helpers
|
|
|
*/
|
|
|
-static int parse_arg(const char *buf, unsigned long count, int *val)
|
|
|
+static int parse_arg(const char *buf, int *val)
|
|
|
{
|
|
|
- if (!count)
|
|
|
- return 0;
|
|
|
if (sscanf(buf, "%i", val) != 1)
|
|
|
return -EINVAL;
|
|
|
- return count;
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
static ssize_t store_sys_acpi(struct device *dev, int cm,
|
|
@@ -278,12 +276,13 @@ static ssize_t store_sys_acpi(struct device *dev, int cm,
|
|
|
struct eeepc_laptop *eeepc = dev_get_drvdata(dev);
|
|
|
int rv, value;
|
|
|
|
|
|
- rv = parse_arg(buf, count, &value);
|
|
|
- if (rv > 0)
|
|
|
- value = set_acpi(eeepc, cm, value);
|
|
|
- if (value < 0)
|
|
|
+ rv = parse_arg(buf, &value);
|
|
|
+ if (rv < 0)
|
|
|
+ return rv;
|
|
|
+ rv = set_acpi(eeepc, cm, value);
|
|
|
+ if (rv < 0)
|
|
|
return -EIO;
|
|
|
- return rv;
|
|
|
+ return count;
|
|
|
}
|
|
|
|
|
|
static ssize_t show_sys_acpi(struct device *dev, int cm, char *buf)
|
|
@@ -377,13 +376,13 @@ static ssize_t store_cpufv(struct device *dev,
|
|
|
return -EPERM;
|
|
|
if (get_cpufv(eeepc, &c))
|
|
|
return -ENODEV;
|
|
|
- rv = parse_arg(buf, count, &value);
|
|
|
+ rv = parse_arg(buf, &value);
|
|
|
if (rv < 0)
|
|
|
return rv;
|
|
|
- if (!rv || value < 0 || value >= c.num)
|
|
|
+ if (value < 0 || value >= c.num)
|
|
|
return -EINVAL;
|
|
|
set_acpi(eeepc, CM_ASL_CPUFV, value);
|
|
|
- return rv;
|
|
|
+ return count;
|
|
|
}
|
|
|
|
|
|
static ssize_t show_cpufv_disabled(struct device *dev,
|
|
@@ -402,7 +401,7 @@ static ssize_t store_cpufv_disabled(struct device *dev,
|
|
|
struct eeepc_laptop *eeepc = dev_get_drvdata(dev);
|
|
|
int rv, value;
|
|
|
|
|
|
- rv = parse_arg(buf, count, &value);
|
|
|
+ rv = parse_arg(buf, &value);
|
|
|
if (rv < 0)
|
|
|
return rv;
|
|
|
|
|
@@ -412,7 +411,7 @@ static ssize_t store_cpufv_disabled(struct device *dev,
|
|
|
pr_warn("cpufv enabled (not officially supported "
|
|
|
"on this model)\n");
|
|
|
eeepc->cpufv_disabled = false;
|
|
|
- return rv;
|
|
|
+ return count;
|
|
|
case 1:
|
|
|
return -EPERM;
|
|
|
default:
|
|
@@ -1042,10 +1041,11 @@ static ssize_t store_sys_hwmon(void (*set)(int), const char *buf, size_t count)
|
|
|
{
|
|
|
int rv, value;
|
|
|
|
|
|
- rv = parse_arg(buf, count, &value);
|
|
|
- if (rv > 0)
|
|
|
- set(value);
|
|
|
- return rv;
|
|
|
+ rv = parse_arg(buf, &value);
|
|
|
+ if (rv < 0)
|
|
|
+ return rv;
|
|
|
+ set(value);
|
|
|
+ return count;
|
|
|
}
|
|
|
|
|
|
static ssize_t show_sys_hwmon(int (*get)(void), char *buf)
|