mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
eeepc-laptop: Fix hwmon interface
Creates a name file in the sysfs directory, that is needed for the libsensors library to work. Also rename fan1_pwm to pwm1 and scale its value as needed. This fixes bug #11520: http://bugzilla.kernel.org/show_bug.cgi?id=11520 Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
This commit is contained in:
parent
69849375d6
commit
04dcd84bc7
1 changed files with 13 additions and 3 deletions
|
@ -450,12 +450,14 @@ static int eeepc_get_fan_pwm(void)
|
||||||
int value = 0;
|
int value = 0;
|
||||||
|
|
||||||
read_acpi_int(NULL, EEEPC_EC_FAN_PWM, &value);
|
read_acpi_int(NULL, EEEPC_EC_FAN_PWM, &value);
|
||||||
|
value = value * 255 / 100;
|
||||||
return (value);
|
return (value);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void eeepc_set_fan_pwm(int value)
|
static void eeepc_set_fan_pwm(int value)
|
||||||
{
|
{
|
||||||
value = SENSORS_LIMIT(value, 0, 100);
|
value = SENSORS_LIMIT(value, 0, 255);
|
||||||
|
value = value * 100 / 255;
|
||||||
ec_write(EEEPC_EC_SC02, value);
|
ec_write(EEEPC_EC_SC02, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -520,15 +522,23 @@ static ssize_t show_sys_hwmon(int (*get)(void), char *buf)
|
||||||
static SENSOR_DEVICE_ATTR(_name, _mode, show_##_name, store_##_name, 0);
|
static SENSOR_DEVICE_ATTR(_name, _mode, show_##_name, store_##_name, 0);
|
||||||
|
|
||||||
EEEPC_CREATE_SENSOR_ATTR(fan1_input, S_IRUGO, eeepc_get_fan_rpm, NULL);
|
EEEPC_CREATE_SENSOR_ATTR(fan1_input, S_IRUGO, eeepc_get_fan_rpm, NULL);
|
||||||
EEEPC_CREATE_SENSOR_ATTR(fan1_pwm, S_IRUGO | S_IWUSR,
|
EEEPC_CREATE_SENSOR_ATTR(pwm1, S_IRUGO | S_IWUSR,
|
||||||
eeepc_get_fan_pwm, eeepc_set_fan_pwm);
|
eeepc_get_fan_pwm, eeepc_set_fan_pwm);
|
||||||
EEEPC_CREATE_SENSOR_ATTR(pwm1_enable, S_IRUGO | S_IWUSR,
|
EEEPC_CREATE_SENSOR_ATTR(pwm1_enable, S_IRUGO | S_IWUSR,
|
||||||
eeepc_get_fan_ctrl, eeepc_set_fan_ctrl);
|
eeepc_get_fan_ctrl, eeepc_set_fan_ctrl);
|
||||||
|
|
||||||
|
static ssize_t
|
||||||
|
show_name(struct device *dev, struct device_attribute *attr, char *buf)
|
||||||
|
{
|
||||||
|
return sprintf(buf, "eeepc\n");
|
||||||
|
}
|
||||||
|
static SENSOR_DEVICE_ATTR(name, S_IRUGO, show_name, NULL, 0);
|
||||||
|
|
||||||
static struct attribute *hwmon_attributes[] = {
|
static struct attribute *hwmon_attributes[] = {
|
||||||
&sensor_dev_attr_fan1_pwm.dev_attr.attr,
|
&sensor_dev_attr_pwm1.dev_attr.attr,
|
||||||
&sensor_dev_attr_fan1_input.dev_attr.attr,
|
&sensor_dev_attr_fan1_input.dev_attr.attr,
|
||||||
&sensor_dev_attr_pwm1_enable.dev_attr.attr,
|
&sensor_dev_attr_pwm1_enable.dev_attr.attr,
|
||||||
|
&sensor_dev_attr_name.dev_attr.attr,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue