Pull thermal into release branch
This commit is contained in:
commit
519ef1af47
|
@ -1823,6 +1823,10 @@ and is between 256 and 4096 characters. It is defined in the file
|
||||||
-1: disable all active trip points in all thermal zones
|
-1: disable all active trip points in all thermal zones
|
||||||
<degrees C>: override all lowest active trip points
|
<degrees C>: override all lowest active trip points
|
||||||
|
|
||||||
|
thermal.crt= [HW,ACPI]
|
||||||
|
-1: disable all critical trip points in all thermal zones
|
||||||
|
<degrees C>: lower all critical trip points
|
||||||
|
|
||||||
thermal.nocrt= [HW,ACPI]
|
thermal.nocrt= [HW,ACPI]
|
||||||
Set to disable actions on ACPI thermal zone
|
Set to disable actions on ACPI thermal zone
|
||||||
critical and hot trip points.
|
critical and hot trip points.
|
||||||
|
|
|
@ -77,23 +77,27 @@ MODULE_LICENSE("GPL");
|
||||||
|
|
||||||
static int act;
|
static int act;
|
||||||
module_param(act, int, 0644);
|
module_param(act, int, 0644);
|
||||||
MODULE_PARM_DESC(act, "Disable or override all lowest active trip points.\n");
|
MODULE_PARM_DESC(act, "Disable or override all lowest active trip points.");
|
||||||
|
|
||||||
|
static int crt;
|
||||||
|
module_param(crt, int, 0644);
|
||||||
|
MODULE_PARM_DESC(crt, "Disable or lower all critical trip points.");
|
||||||
|
|
||||||
static int tzp;
|
static int tzp;
|
||||||
module_param(tzp, int, 0444);
|
module_param(tzp, int, 0444);
|
||||||
MODULE_PARM_DESC(tzp, "Thermal zone polling frequency, in 1/10 seconds.\n");
|
MODULE_PARM_DESC(tzp, "Thermal zone polling frequency, in 1/10 seconds.");
|
||||||
|
|
||||||
static int nocrt;
|
static int nocrt;
|
||||||
module_param(nocrt, int, 0);
|
module_param(nocrt, int, 0);
|
||||||
MODULE_PARM_DESC(nocrt, "Set to disable action on ACPI thermal zone critical and hot trips.\n");
|
MODULE_PARM_DESC(nocrt, "Set to take no action upon ACPI thermal zone critical trips points.");
|
||||||
|
|
||||||
static int off;
|
static int off;
|
||||||
module_param(off, int, 0);
|
module_param(off, int, 0);
|
||||||
MODULE_PARM_DESC(off, "Set to disable ACPI thermal support.\n");
|
MODULE_PARM_DESC(off, "Set to disable ACPI thermal support.");
|
||||||
|
|
||||||
static int psv;
|
static int psv;
|
||||||
module_param(psv, int, 0644);
|
module_param(psv, int, 0644);
|
||||||
MODULE_PARM_DESC(psv, "Disable or override all passive trip points.\n");
|
MODULE_PARM_DESC(psv, "Disable or override all passive trip points.");
|
||||||
|
|
||||||
static int acpi_thermal_add(struct acpi_device *device);
|
static int acpi_thermal_add(struct acpi_device *device);
|
||||||
static int acpi_thermal_remove(struct acpi_device *device, int type);
|
static int acpi_thermal_remove(struct acpi_device *device, int type);
|
||||||
|
@ -340,6 +344,20 @@ static int acpi_thermal_get_trip_points(struct acpi_thermal *tz)
|
||||||
tz->trips.critical.temperature));
|
tz->trips.critical.temperature));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (tz->trips.critical.flags.valid == 1) {
|
||||||
|
if (crt == -1) {
|
||||||
|
tz->trips.critical.flags.valid = 0;
|
||||||
|
} else if (crt > 0) {
|
||||||
|
unsigned long crt_k = CELSIUS_TO_KELVIN(crt);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Allow override to lower critical threshold
|
||||||
|
*/
|
||||||
|
if (crt_k < tz->trips.critical.temperature)
|
||||||
|
tz->trips.critical.temperature = crt_k;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Critical Sleep (optional) */
|
/* Critical Sleep (optional) */
|
||||||
|
|
||||||
status =
|
status =
|
||||||
|
@ -1067,9 +1085,9 @@ static int acpi_thermal_add_fs(struct acpi_device *device)
|
||||||
entry->owner = THIS_MODULE;
|
entry->owner = THIS_MODULE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 'trip_points' [R/W] */
|
/* 'trip_points' [R] */
|
||||||
entry = create_proc_entry(ACPI_THERMAL_FILE_TRIP_POINTS,
|
entry = create_proc_entry(ACPI_THERMAL_FILE_TRIP_POINTS,
|
||||||
S_IFREG | S_IRUGO | S_IWUSR,
|
S_IRUGO,
|
||||||
acpi_device_dir(device));
|
acpi_device_dir(device));
|
||||||
if (!entry)
|
if (!entry)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
@ -1339,6 +1357,13 @@ static int thermal_act(struct dmi_system_id *d) {
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
static int thermal_nocrt(struct dmi_system_id *d) {
|
||||||
|
|
||||||
|
printk(KERN_NOTICE "ACPI: %s detected: "
|
||||||
|
"disabling all critical thermal trip point actions.\n", d->ident);
|
||||||
|
nocrt = 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
static int thermal_tzp(struct dmi_system_id *d) {
|
static int thermal_tzp(struct dmi_system_id *d) {
|
||||||
|
|
||||||
if (tzp == 0) {
|
if (tzp == 0) {
|
||||||
|
@ -1387,6 +1412,14 @@ static struct dmi_system_id thermal_dmi_table[] __initdata = {
|
||||||
DMI_MATCH(DMI_BOARD_NAME, "i915GMm-HFS"),
|
DMI_MATCH(DMI_BOARD_NAME, "i915GMm-HFS"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.callback = thermal_nocrt,
|
||||||
|
.ident = "Gigabyte GA-7ZX",
|
||||||
|
.matches = {
|
||||||
|
DMI_MATCH(DMI_BOARD_VENDOR, "Gigabyte Technology Co., Ltd."),
|
||||||
|
DMI_MATCH(DMI_BOARD_NAME, "7ZX"),
|
||||||
|
},
|
||||||
|
},
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
#endif /* CONFIG_DMI */
|
#endif /* CONFIG_DMI */
|
||||||
|
|
Loading…
Reference in New Issue