Re: [PATCH] intel_menlow: reduce code duplication
From: Joe Perches
Date: Sat Mar 26 2016 - 19:53:18 EST
On Sat, 2016-03-26 at 22:40 +0100, Rasmus Villemoes wrote:
> aux0_show and aux1_show consists of almost identical code. Pull that
> into a common helper and make them thin wrappers. Similarly for
> _store.
Seems sensible, thanks
> diff --git a/drivers/platform/x86/intel_menlow.c b/drivers/platform/x86/intel_menlow.c
[]
> @@ -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));
While not something you've done differently than the
existing code, perhaps this would be more common
without the ternary operator like:
result = sensor_get_auxtrip(attr->handle, idx, &value);
if (result < 0)
return result;
return sprintf(buf, "%lu", DECI_KELVIN_TO_CELSIUS(value));