tools/power/x86/intel-speed-select/isst-core-tpmi.c

Source file repositories/reference/linux-study-clean/tools/power/x86/intel-speed-select/isst-core-tpmi.c

File Facts

System
Linux kernel
Corpus path
tools/power/x86/intel-speed-select/isst-core-tpmi.c
Extension
.c
Size
21290 bytes
Lines
875
Domain
Support Tooling And Documentation
Bucket
tools
Inferred role
Support Tooling And Documentation: implementation source
Status
source implementation candidate

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

switch (ioctl_no) {
		case ISST_IF_CORE_POWER_STATE:
			debug_printf("ISST_IF_CORE_POWER_STATE\n");
			break;
		case ISST_IF_CLOS_PARAM:
			debug_printf("ISST_IF_CLOS_PARAM\n");
			break;
		case ISST_IF_CLOS_ASSOC:
			debug_printf("ISST_IF_CLOS_ASSOC\n");
			break;
		case ISST_IF_PERF_LEVELS:
			debug_printf("ISST_IF_PERF_LEVELS\n");
			break;
		case ISST_IF_PERF_SET_LEVEL:
			debug_printf("ISST_IF_PERF_SET_LEVEL\n");
			break;
		case ISST_IF_PERF_SET_FEATURE:
			debug_printf("ISST_IF_PERF_SET_FEATURE\n");
			break;
		case ISST_IF_GET_PERF_LEVEL_INFO:
			debug_printf("ISST_IF_GET_PERF_LEVEL_INFO\n");
			break;
		case ISST_IF_GET_PERF_LEVEL_CPU_MASK:
			debug_printf("ISST_IF_GET_PERF_LEVEL_CPU_MASK\n");
			break;
		case ISST_IF_GET_BASE_FREQ_INFO:
			debug_printf("ISST_IF_GET_BASE_FREQ_INFO\n");
			break;
		case ISST_IF_GET_BASE_FREQ_CPU_MASK:
			debug_printf("ISST_IF_GET_BASE_FREQ_CPU_MASK\n");
			break;
		case ISST_IF_GET_TURBO_FREQ_INFO:
			debug_printf("ISST_IF_GET_TURBO_FREQ_INFO\n");
			break;
		case ISST_IF_COUNT_TPMI_INSTANCES:
			debug_printf("ISST_IF_COUNT_TPMI_INSTANCES\n");
			break;
		default:
			debug_printf("%d\n", ioctl_no);
			break;
		}
	}

	fd = open(pathname, O_RDWR);
	if (fd < 0)
		return -1;

	if (ioctl(fd, ioctl_no, info) == -1) {
		debug_printf("IOCTL %d Failed\n", ioctl_no);
		close(fd);
		return -1;
	}

	close(fd);

	return 0;
}

static int tpmi_get_disp_freq_multiplier(void)
{
	return 1;
}

static int tpmi_get_trl_max_levels(void)
{
	return TRL_MAX_LEVELS;
}

static char *tpmi_get_trl_level_name(int level)
{
	switch (level) {
	case 0:
		return "level-0";
	case 1:
		return "level-1";
	case 2:
		return "level-2";
	case 3:
		return "level-3";
	case 4:
		return "level-4";
	case 5:
		return "level-5";
	case 6:
		return "level-6";
	case 7:
		return "level-7";
	default:
		return NULL;
	}

Annotation

Implementation Notes