OSDN Git Service

eeepc-laptop: document fan_pwm conversions
authorFrans Klaver <fransklaver@gmail.com>
Wed, 22 Oct 2014 19:12:42 +0000 (21:12 +0200)
committerDarren Hart <dvhart@linux.intel.com>
Wed, 19 Nov 2014 17:07:08 +0000 (09:07 -0800)
eeepc_get_fan_pwm and eeepc_set_fan_pwm convert the PWM value read from
the fan to a range lmsensors understands. Unfortunately this is only
clear if you are familiar with how lmsensors handles duty cycles.

Introduce two conversion functions that document the goal of these
conversions.

Signed-off-by: Frans Klaver <fransklaver@gmail.com>
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
drivers/platform/x86/eeepc-laptop.c

index c1758ec..e87c134 100644 (file)
@@ -980,18 +980,28 @@ static struct platform_driver platform_driver = {
 #define EEEPC_EC_SFB0      0xD0
 #define EEEPC_EC_FAN_CTRL  (EEEPC_EC_SFB0 + 3) /* Byte containing SF25  */
 
+static inline int eeepc_pwm_to_lmsensors(int value)
+{
+       return value * 255 / 100;
+}
+
+static inline int eeepc_lmsensors_to_pwm(int value)
+{
+       value = clamp_val(value, 0, 255);
+       return value * 100 / 255;
+}
+
 static int eeepc_get_fan_pwm(void)
 {
        u8 value = 0;
 
        ec_read(EEEPC_EC_FAN_PWM, &value);
-       return value * 255 / 100;
+       return eeepc_pwm_to_lmsensors(value);
 }
 
 static void eeepc_set_fan_pwm(int value)
 {
-       value = clamp_val(value, 0, 255);
-       value = value * 100 / 255;
+       value = eeepc_lmsensors_to_pwm(value);
        ec_write(EEEPC_EC_FAN_PWM, value);
 }