intel_menlow: reduce code duplication
authorRasmus Villemoes <linux@rasmusvillemoes.dk>
Sat, 26 Mar 2016 21:40:26 +0000 (22:40 +0100)
committerDarren Hart <dvhart@linux.intel.com>
Fri, 27 May 2016 18:47:55 +0000 (11:47 -0700)
aux0_show and aux1_show consists of almost identical code. Pull that
into a common helper and make them thin wrappers. Similarly for
_store.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
drivers/platform/x86/intel_menlow.c

index 0a919d81662cdd9fe19506323d78d1c05867e604..cbe01021c939b1c8c9dab2053ac749e0dd6cc792 100644 (file)
@@ -306,33 +306,32 @@ static int sensor_set_auxtrip(acpi_handle handle, int index, int value)
 #define to_intel_menlow_attr(_attr)    \
        container_of(_attr, struct intel_menlow_attribute, attr)
 
-static ssize_t aux0_show(struct device *dev,
-                        struct device_attribute *dev_attr, char *buf)
+static ssize_t aux_show(struct device *dev, struct device_attribute *dev_attr,
+                       char *buf, int idx)
 {
        struct intel_menlow_attribute *attr = to_intel_menlow_attr(dev_attr);
        unsigned long long value;
        int result;
 
-       result = sensor_get_auxtrip(attr->handle, 0, &value);
+       result = sensor_get_auxtrip(attr->handle, idx, &value);
 
        return result ? result : sprintf(buf, "%lu", DECI_KELVIN_TO_CELSIUS(value));
 }
 
-static ssize_t aux1_show(struct device *dev,
+static ssize_t aux0_show(struct device *dev,
                         struct device_attribute *dev_attr, char *buf)
 {
-       struct intel_menlow_attribute *attr = to_intel_menlow_attr(dev_attr);
-       unsigned long long value;
-       int result;
-
-       result = sensor_get_auxtrip(attr->handle, 1, &value);
+       return aux_show(dev, dev_attr, buf, 0);
+}
 
-       return result ? result : sprintf(buf, "%lu", DECI_KELVIN_TO_CELSIUS(value));
+static ssize_t aux1_show(struct device *dev,
+                        struct device_attribute *dev_attr, char *buf)
+{
+       return aux_show(dev, dev_attr, buf, 1);
 }
 
-static ssize_t aux0_store(struct device *dev,
-                         struct device_attribute *dev_attr,
-                         const char *buf, size_t count)
+static ssize_t aux_store(struct device *dev, struct device_attribute *dev_attr,
+                        const char *buf, size_t count, int idx)
 {
        struct intel_menlow_attribute *attr = to_intel_menlow_attr(dev_attr);
        int value;
@@ -345,27 +344,23 @@ static ssize_t aux0_store(struct device *dev,
        if (value < 0)
                return -EINVAL;
 
-       result = sensor_set_auxtrip(attr->handle, 0, CELSIUS_TO_DECI_KELVIN(value));
+       result = sensor_set_auxtrip(attr->handle, idx, 
+                                   CELSIUS_TO_DECI_KELVIN(value));
        return result ? result : count;
 }
 
-static ssize_t aux1_store(struct device *dev,
+static ssize_t aux0_store(struct device *dev,
                          struct device_attribute *dev_attr,
                          const char *buf, size_t count)
 {
-       struct intel_menlow_attribute *attr = to_intel_menlow_attr(dev_attr);
-       int value;
-       int result;
-
-       /*Sanity check; should be a positive integer */
-       if (!sscanf(buf, "%d", &value))
-               return -EINVAL;
-
-       if (value < 0)
-               return -EINVAL;
+       return aux_store(dev, dev_attr, buf, count, 0);
+}
 
-       result = sensor_set_auxtrip(attr->handle, 1, CELSIUS_TO_DECI_KELVIN(value));
-       return result ? result : count;
+static ssize_t aux1_store(struct device *dev,
+                         struct device_attribute *dev_attr,
+                         const char *buf, size_t count)
+{
+       return aux_store(dev, dev_attr, buf, count, 1);
 }
 
 /* BIOS can enable/disable the thermal user application in dabney platform */