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

Commit 4cc32cb4 authored by Brian Norris's avatar Brian Norris Committed by Zhang Rui
Browse files

tools/thermal: tmon: add --target-temp parameter



If we launch in daemon mode (--daemon), we don't have the ncurses UI,
but we might want to set the target temperature still. For example,
someone might stick the following in their boot script:

  tmon --control intel_powerclamp --target-temp 90 --log --daemon

This would turn on CPU idle injection when we're around 90 degrees
celsius, and would log temperature and throttling info to
/var/tmp/tmon.log.

Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
Acked-by: default avatarJacob Pan <jacob.jun.pan@linux.intel.com>
Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Signed-off-by: default avatarZhang Rui <rui.zhang@intel.com>
parent c517d838
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -55,6 +55,8 @@ The \fB-l --log\fP option write data to /var/tmp/tmon.log
.PP
The \fB-t --time-interval\fP option sets the polling interval in seconds
.PP
The \fB-T --target-temp\fP option sets the initial target temperature
.PP
The \fB-v --version\fP option shows the version of \fBtmon \fP
.PP
The \fB-z --zone\fP option sets the target therma zone instance to be controlled
+12 −2
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ void usage()
	printf("  -h, --help            show this help message\n");
	printf("  -l, --log             log data to /var/tmp/tmon.log\n");
	printf("  -t, --time-interval   sampling time interval, > 1 sec.\n");
	printf("  -T, --target-temp     initial target temperature\n");
	printf("  -v, --version         show version\n");
	printf("  -z, --zone            target thermal zone id\n");

@@ -219,6 +220,7 @@ static struct option opts[] = {
	{ "control", 1, NULL, 'c' },
	{ "daemon", 0, NULL, 'd' },
	{ "time-interval", 1, NULL, 't' },
	{ "target-temp", 1, NULL, 'T' },
	{ "log", 0, NULL, 'l' },
	{ "help", 0, NULL, 'h' },
	{ "version", 0, NULL, 'v' },
@@ -231,7 +233,7 @@ int main(int argc, char **argv)
{
	int err = 0;
	int id2 = 0, c;
	double yk = 0.0; /* controller output */
	double yk = 0.0, temp; /* controller output */
	int target_tz_index;

	if (geteuid() != 0) {
@@ -239,7 +241,7 @@ int main(int argc, char **argv)
		exit(EXIT_FAILURE);
	}

	while ((c = getopt_long(argc, argv, "c:dlht:vgz:", opts, &id2)) != -1) {
	while ((c = getopt_long(argc, argv, "c:dlht:T:vgz:", opts, &id2)) != -1) {
		switch (c) {
		case 'c':
			no_control = 0;
@@ -254,6 +256,14 @@ int main(int argc, char **argv)
			if (ticktime < 1)
				ticktime = 1;
			break;
		case 'T':
			temp = strtod(optarg, NULL);
			if (temp < 0) {
				fprintf(stderr, "error: temperature must be positive\n");
				return 1;
			}
			target_temp_user = temp;
			break;
		case 'l':
			printf("Logging data to /var/tmp/tmon.log\n");
			logging = 1;