intel_menlow: reduce code duplication
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>
This commit is contained in:
parent
aca234f637
commit
a29ccf6ff3
1 changed files with 27 additions and 32 deletions
|
@ -306,66 +306,61 @@ 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 aux0_show(struct device *dev,
|
||||
struct device_attribute *dev_attr, char *buf)
|
||||
{
|
||||
return aux_show(dev, dev_attr, buf, 0);
|
||||
}
|
||||
|
||||
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 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);
|
||||
unsigned long long value;
|
||||
int value;
|
||||
int result;
|
||||
|
||||
result = sensor_get_auxtrip(attr->handle, 1, &value);
|
||||
/*Sanity check; should be a positive integer */
|
||||
if (!sscanf(buf, "%d", &value))
|
||||
return -EINVAL;
|
||||
|
||||
return result ? result : sprintf(buf, "%lu", DECI_KELVIN_TO_CELSIUS(value));
|
||||
if (value < 0)
|
||||
return -EINVAL;
|
||||
|
||||
result = sensor_set_auxtrip(attr->handle, idx,
|
||||
CELSIUS_TO_DECI_KELVIN(value));
|
||||
return result ? result : count;
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
result = sensor_set_auxtrip(attr->handle, 0, CELSIUS_TO_DECI_KELVIN(value));
|
||||
return result ? result : count;
|
||||
return aux_store(dev, dev_attr, buf, count, 0);
|
||||
}
|
||||
|
||||
static ssize_t aux1_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;
|
||||
|
||||
result = sensor_set_auxtrip(attr->handle, 1, CELSIUS_TO_DECI_KELVIN(value));
|
||||
return result ? result : count;
|
||||
return aux_store(dev, dev_attr, buf, count, 1);
|
||||
}
|
||||
|
||||
/* BIOS can enable/disable the thermal user application in dabney platform */
|
||||
|
|
Loading…
Reference in a new issue