Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[firefly-linux-kernel-4.4.55.git] / drivers / staging / speakup / kobjects.c
index 35f647ce1f1e476763668dbeadc5936063ad87cf..943b6c134a229d99e189f2376ddcf8a74d79eb06 100644 (file)
@@ -15,6 +15,7 @@
 #include <linux/kernel.h>
 #include <linux/kobject.h>
 #include <linux/string.h>
+#include <linux/string_helpers.h>
 #include <linux/sysfs.h>
 #include <linux/ctype.h>
 
@@ -417,7 +418,7 @@ static ssize_t synth_direct_store(struct kobject *kobj,
                bytes = min_t(size_t, len, 250);
                strncpy(tmp, ptr, bytes);
                tmp[bytes] = '\0';
-               spk_xlate(tmp);
+               string_unescape_any_inplace(tmp);
                synth_printf("%s", tmp);
                ptr += bytes;
                len -= bytes;
@@ -605,7 +606,8 @@ ssize_t spk_var_store(struct kobject *kobj, struct kobj_attribute *attr,
        if (param->data == NULL)
                return 0;
        ret = 0;
-       cp = spk_xlate((char *) buf);
+       cp = (char *)buf;
+       string_unescape_any_inplace(cp);
 
        spk_lock(flags);
        switch (param->var_type) {
@@ -617,9 +619,9 @@ ssize_t spk_var_store(struct kobject *kobj, struct kobj_attribute *attr,
                        len = E_INC;
                else
                        len = E_SET;
-               speakup_s2i(cp, &value);
+               value = simple_strtol(cp, NULL, 10);
                ret = spk_set_num_var(value, param, len);
-               if (ret == E_RANGE) {
+               if (ret == -ERANGE) {
                        var_data = param->data;
                        pr_warn("value for %s out of range, expect %d to %d\n",
                                attr->attr.name,
@@ -637,7 +639,7 @@ ssize_t spk_var_store(struct kobject *kobj, struct kobj_attribute *attr,
                cp = (char *) buf;
                cp[len] = '\0';
                ret = spk_set_string_var(buf, param, len);
-               if (ret == E_TOOLONG)
+               if (ret == -E2BIG)
                        pr_warn("value too long for %s\n",
                                        attr->attr.name);
                break;
@@ -670,7 +672,7 @@ ssize_t spk_var_store(struct kobject *kobj, struct kobj_attribute *attr,
        }
        spk_unlock(flags);
 
-       if (ret == SET_DEFAULT)
+       if (ret == -ERESTART)
                pr_info("%s reset to default value\n", attr->attr.name);
        return count;
 }