Skip to content

Commit

Permalink
eeepc-laptop: document fan_pwm conversions
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Frans Klaver authored and Darren Hart committed Nov 19, 2014
1 parent a5de681 commit 148a5dd
Showing 1 changed file with 13 additions and 3 deletions.
16 changes: 13 additions & 3 deletions drivers/platform/x86/eeepc-laptop.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down

0 comments on commit 148a5dd

Please sign in to comment.