Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 519ef1af authored by Len Brown's avatar Len Brown
Browse files

Pull thermal into release branch

parents b7011d53 2db9ccba
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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
			<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]
			Set to disable actions on ACPI thermal zone
			critical and hot trip points.
+40 −7
Original line number Diff line number Diff line
@@ -77,23 +77,27 @@ MODULE_LICENSE("GPL");

static int act;
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;
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;
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;
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;
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_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));
	}

	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) */

	status =
@@ -1067,9 +1085,9 @@ static int acpi_thermal_add_fs(struct acpi_device *device)
		entry->owner = THIS_MODULE;
	}

	/* 'trip_points' [R/W] */
	/* 'trip_points' [R] */
	entry = create_proc_entry(ACPI_THERMAL_FILE_TRIP_POINTS,
				  S_IFREG | S_IRUGO | S_IWUSR,
				  S_IRUGO,
				  acpi_device_dir(device));
	if (!entry)
		return -ENODEV;
@@ -1339,6 +1357,13 @@ static int thermal_act(struct dmi_system_id *d) {
	}
	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) {

	if (tzp == 0) {
@@ -1387,6 +1412,14 @@ static struct dmi_system_id thermal_dmi_table[] __initdata = {
		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 */