mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
platform-drivers-x86 for v5.4-1
* ASUS WMI driver got couple of worth to mention updates, i.e. support of FAN is fixed for recent products and the charge threshold support has been added. * Two uknown key events for Dell laptops are being ignored now to avoid spam user with harmless messages. * HP ZBook 17 G5 and ASUS Zenbook UX430UNR have got accelerometer support. * Intel CherryTrail platforms got a regression with wake up. Now it's fixed. * Intel PMC driver got fixed in order to work nicely in Xen environment. * Intel Speed Select driver provides bucket vs core count relationship. Besides that the tools has been updated for better output. * The PrivacyGuard is enabled on Lenovo ThinkPad laptops. * Three tablets, i.e. Trekstor Primebook C11B 2-in-1, Irbis TW90 and Chuwi Surbook Mini, have got touchscreen support. The following is an automated git shortlog grouped by driver: acer-wmi: - Switch to acpi_dev_get_first_match_dev() asus-nb-wmi: - Support ALS on the Zenbook UX430UNR asus-wmi: - Refactor charge threshold to use the battery hooking API - Rename CHARGE_THRESHOLD to RSOC - Reorder ASUS_WMI_CHARGE_THRESHOLD - Fix condition in charge_threshold_store() - Remove unnecessary blank lines - Drop indentation level by inverting conditionals - Use clamp_val() instead of open coded variant - Replace sscanf() with kstrtoint() - Refactor charge_threshold_store() - Add support for charge threshold - fix CPU fan control on recent products - add a helper for device presence - cleanup AGFN fan handling - Use kmemdup rather than duplicating its implementation compal-laptop: - Initialize "value" in ec_read_u8() dell-wmi: - Use existing defined KBD_LED_* magic values - Ignore keyboard backlight change KBD_LED_AUTO_TOKEN - Ignore keyboard backlight change KBD_LED_ON_TOKEN hp_accel: - Add support for HP ZBook 17 G5 i2c-multi-instantiate: - Use struct_size() helper intel_bxtwc_tmu: - Remove dev_err() usage after platform_get_irq() intel_int0002_vgpio: - Use device_init_wakeup - Fix wakeups not working on Cherry Trail - Remove dev_err() usage after platform_get_irq() intel_pmc_core: - Do not ioremap RAM intel_pmc_core_pltdrv: - Module removal warning fix intel_pmc_ipc: - Remove dev_err() usage after platform_get_irq() ISST: - Allow additional TRL MSRs - Use dev_get_drvdata MAINTAINERS: - Switch PDx86 subsystem status to Odd Fixes pcengines-apuv2: - wire up simswitch gpio as led - add mpcie reset gpio export platform/mellanox: - mlxreg-hotplug: Remove dev_err() usage after platform_get_irq() pmc_atom: - Add Siemens SIMATIC IPC227E to critclk_systems DMI table thinkpad_acpi: - Add ThinkPad PrivacyGuard - Use kmemdup rather than duplicating its implementation tools/power/x86/intel-speed-select: - Display core count for bucket - Fix memory leak - Output success/failed for command output - Output human readable CPU list - Change turbo ratio output to maximum turbo frequency - Switch output to MHz - Simplify output for turbo-freq and base-freq - Fix cpu-count output - Fix help option typo - Fix package typo - Fix a read overflow in isst_set_tdp_level_msr() touchscreen_dmi: - Add info for the Trekstor Primebook C11B 2-in-1 - Add info for the Irbis TW90 tablet - Add info for the Chuwi Surbook Mini tablet wmi: - Remove acpi_has_method() call -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEqaflIX74DDDzMJJtb7wzTHR8rCgFAl17y/4ACgkQb7wzTHR8 rCjMyA//Zgv//XuQUqAPon/UAxu2FhDC40VBicm4AuNUtkqbN2cE04ZosyVQWLr9 ZNVgTu5CU2HR5HIuA6Xn3+FIadLYe/qpXhOvCTKQa/SrbvZLKxeoEBzoqIOgxvpN 90xkoKIp6GB+N2zjeKAhyuiJ2wce2RKok3mWOEdaEBqsrTT3LFToCpF+crpbKv81 UECMUet7ymdq+ryNYjCW4O2YmQYUpI3aGvv0MRJ9uQJrUfdN0Pa/lsXqmd5/agyi 6J5RP0LDSUJat8lOzxzWWF7pHa7dbVuDVzKlfKt6yIOmK4YqiwE9OLoVEDmpyCNx 22/pIDsJcPcdeUaAzwNEO7ao+UKQ2jXmh0IhkO9DkFziJfLz73Ucv47ZJzdPYhEo bQtr9FlcttJ5Xxw/j6tQTSGasmSZCXElfiVJObujxRu47bSqlH/846PRK3kcWrga AgFlIpvqO5J+ZkEZTohQltRPEfnJC4GbpjHnNOFvk0bowBc7KWk3EzDsJ6GvyIIX z9pKpQ6OmjmiVZmA+aIxMbxYvgYobNGjCeUH20duqgLaMtzqZ3MgU4NXnuSbzX5t 8AL9irGE4JclJ7gkOh7SGIKdibXTjeUC9bPV0efqHn2P8sEigsYtDfaUA67XMDZ/ xYvKxC4XR/msJMkz4hRk9WyTEFAXbLW/teLE9nLBEBTguWemDuk= =HItn -----END PGP SIGNATURE----- Merge tag 'platform-drivers-x86-v5.4-1' of git://git.infradead.org/linux-platform-drivers-x86 Pull x86 platform-drivers updates from Andy Shevchenko: - ASUS WMI driver got a couple of updates, i.e. support of FAN is fixed for recent products and the charge threshold support has been added - Two uknown key events for Dell laptops are being ignored now to avoid spamming users with harmless messages - HP ZBook 17 G5 and ASUS Zenbook UX430UNR got accelerometer support. - Intel CherryTrail platforms had a regression with wake up. Now it's fixed - Intel PMC driver got fixed in order to work nicely in Xen environment - Intel Speed Select driver provides bucket vs core count relationship. Besides that the tools has been updated for better output - The PrivacyGuard is enabled on Lenovo ThinkPad laptops - Three tablets - Trekstor Primebook C11B 2-in-1, Irbis TW90 and Chuwi Surbook Mini - got touchscreen support * tag 'platform-drivers-x86-v5.4-1' of git://git.infradead.org/linux-platform-drivers-x86: (53 commits) MAINTAINERS: Switch PDx86 subsystem status to Odd Fixes platform/x86: asus-wmi: Refactor charge threshold to use the battery hooking API platform/x86: asus-wmi: Rename CHARGE_THRESHOLD to RSOC platform/x86: asus-wmi: Reorder ASUS_WMI_CHARGE_THRESHOLD tools/power/x86/intel-speed-select: Display core count for bucket platform/x86: ISST: Allow additional TRL MSRs tools/power/x86/intel-speed-select: Fix memory leak tools/power/x86/intel-speed-select: Output success/failed for command output tools/power/x86/intel-speed-select: Output human readable CPU list tools/power/x86/intel-speed-select: Change turbo ratio output to maximum turbo frequency tools/power/x86/intel-speed-select: Switch output to MHz tools/power/x86/intel-speed-select: Simplify output for turbo-freq and base-freq tools/power/x86/intel-speed-select: Fix cpu-count output tools/power/x86/intel-speed-select: Fix help option typo tools/power/x86/intel-speed-select: Fix package typo tools/power/x86/intel-speed-select: Fix a read overflow in isst_set_tdp_level_msr() platform/x86: intel_int0002_vgpio: Use device_init_wakeup platform/x86: intel_int0002_vgpio: Fix wakeups not working on Cherry Trail platform/x86: compal-laptop: Initialize "value" in ec_read_u8() platform/x86: touchscreen_dmi: Add info for the Trekstor Primebook C11B 2-in-1 ...
This commit is contained in:
commit
ad06219573
27 changed files with 728 additions and 349 deletions
|
|
@ -304,7 +304,7 @@ static void set_cpu_present_cpu_mask(void)
|
|||
int get_cpu_count(int pkg_id, int die_id)
|
||||
{
|
||||
if (pkg_id < MAX_PACKAGE_COUNT && die_id < MAX_DIE_PER_PACKAGE)
|
||||
return cpu_cnt[pkg_id][die_id] + 1;
|
||||
return cpu_cnt[pkg_id][die_id];
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -603,6 +603,10 @@ static int isst_fill_platform_info(void)
|
|||
|
||||
close(fd);
|
||||
|
||||
if (isst_platform_info.api_version > supported_api_ver) {
|
||||
printf("Incompatible API versions; Upgrade of tool is required\n");
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -1491,7 +1495,7 @@ static void usage(void)
|
|||
printf("intel-speed-select [OPTIONS] FEATURE COMMAND COMMAND_ARGUMENTS\n");
|
||||
printf("\nUse this tool to enumerate and control the Intel Speed Select Technology features,\n");
|
||||
printf("\nFEATURE : [perf-profile|base-freq|turbo-freq|core-power]\n");
|
||||
printf("\nFor help on each feature, use --h|--help\n");
|
||||
printf("\nFor help on each feature, use -h|--help\n");
|
||||
printf("\tFor example: intel-speed-select perf-profile -h\n");
|
||||
|
||||
printf("\nFor additional help on each command for a feature, use --h|--help\n");
|
||||
|
|
@ -1514,7 +1518,6 @@ static void usage(void)
|
|||
printf("\tResult display uses a common format for each command:\n");
|
||||
printf("\tResults are formatted in text/JSON with\n");
|
||||
printf("\t\tPackage, Die, CPU, and command specific results.\n");
|
||||
printf("\t\t\tFor Set commands, status is 0 for success and rest for failures\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
|
@ -1529,6 +1532,7 @@ static void cmdline(int argc, char **argv)
|
|||
{
|
||||
int opt;
|
||||
int option_index = 0;
|
||||
int ret;
|
||||
|
||||
static struct option long_options[] = {
|
||||
{ "cpu", required_argument, 0, 'c' },
|
||||
|
|
@ -1590,13 +1594,14 @@ static void cmdline(int argc, char **argv)
|
|||
set_max_cpu_num();
|
||||
set_cpu_present_cpu_mask();
|
||||
set_cpu_target_cpu_mask();
|
||||
isst_fill_platform_info();
|
||||
if (isst_platform_info.api_version > supported_api_ver) {
|
||||
printf("Incompatible API versions; Upgrade of tool is required\n");
|
||||
exit(0);
|
||||
}
|
||||
ret = isst_fill_platform_info();
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
process_command(argc, argv);
|
||||
out:
|
||||
free_cpu_set(present_cpumask);
|
||||
free_cpu_set(target_cpumask);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
|
|
|
|||
|
|
@ -188,8 +188,27 @@ int isst_get_get_trl(int cpu, int level, int avx_level, int *trl)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int isst_get_trl_bucket_info(int cpu, unsigned long long *buckets_info)
|
||||
{
|
||||
int ret;
|
||||
|
||||
debug_printf("cpu:%d bucket info via MSR\n", cpu);
|
||||
|
||||
*buckets_info = 0;
|
||||
|
||||
ret = isst_send_msr_command(cpu, 0x1ae, 0, buckets_info);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
debug_printf("cpu:%d bucket info via MSR successful 0x%llx\n", cpu,
|
||||
*buckets_info);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int isst_set_tdp_level_msr(int cpu, int tdp_level)
|
||||
{
|
||||
unsigned long long level = tdp_level;
|
||||
int ret;
|
||||
|
||||
debug_printf("cpu: tdp_level via MSR %d\n", cpu, tdp_level);
|
||||
|
|
@ -202,8 +221,7 @@ int isst_set_tdp_level_msr(int cpu, int tdp_level)
|
|||
if (tdp_level > 2)
|
||||
return -1; /* invalid value */
|
||||
|
||||
ret = isst_send_msr_command(cpu, 0x64b, 1,
|
||||
(unsigned long long *)&tdp_level);
|
||||
ret = isst_send_msr_command(cpu, 0x64b, 1, &level);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
|
@ -563,6 +581,10 @@ int isst_get_process_ctdp(int cpu, int tdp_level, struct isst_pkg_ctdp *pkg_dev)
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = isst_get_trl_bucket_info(cpu, &ctdp_level->buckets_info);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = isst_get_get_trl(cpu, i, 0,
|
||||
ctdp_level->trl_sse_active_cores);
|
||||
if (ret)
|
||||
|
|
|
|||
|
|
@ -6,7 +6,34 @@
|
|||
|
||||
#include "isst.h"
|
||||
|
||||
#define DISP_FREQ_MULTIPLIER 100000
|
||||
#define DISP_FREQ_MULTIPLIER 100
|
||||
|
||||
static void printcpulist(int str_len, char *str, int mask_size,
|
||||
cpu_set_t *cpu_mask)
|
||||
{
|
||||
int i, first, curr_index, index;
|
||||
|
||||
if (!CPU_COUNT_S(mask_size, cpu_mask)) {
|
||||
snprintf(str, str_len, "none");
|
||||
return;
|
||||
}
|
||||
|
||||
curr_index = 0;
|
||||
first = 1;
|
||||
for (i = 0; i < get_topo_max_cpus(); ++i) {
|
||||
if (!CPU_ISSET_S(i, mask_size, cpu_mask))
|
||||
continue;
|
||||
if (!first) {
|
||||
index = snprintf(&str[curr_index],
|
||||
str_len - curr_index, ",");
|
||||
curr_index += index;
|
||||
}
|
||||
index = snprintf(&str[curr_index], str_len - curr_index, "%d",
|
||||
i);
|
||||
curr_index += index;
|
||||
first = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static void printcpumask(int str_len, char *str, int mask_size,
|
||||
cpu_set_t *cpu_mask)
|
||||
|
|
@ -133,7 +160,7 @@ static void format_and_print(FILE *outf, int level, char *header, char *value)
|
|||
last_level = level;
|
||||
}
|
||||
|
||||
static void print_packag_info(int cpu, FILE *outf)
|
||||
static void print_package_info(int cpu, FILE *outf)
|
||||
{
|
||||
char header[256];
|
||||
|
||||
|
|
@ -156,7 +183,7 @@ static void _isst_pbf_display_information(int cpu, FILE *outf, int level,
|
|||
snprintf(header, sizeof(header), "speed-select-base-freq");
|
||||
format_and_print(outf, disp_level, header, NULL);
|
||||
|
||||
snprintf(header, sizeof(header), "high-priority-base-frequency(KHz)");
|
||||
snprintf(header, sizeof(header), "high-priority-base-frequency(MHz)");
|
||||
snprintf(value, sizeof(value), "%d",
|
||||
pbf_info->p1_high * DISP_FREQ_MULTIPLIER);
|
||||
format_and_print(outf, disp_level + 1, header, value);
|
||||
|
|
@ -166,7 +193,13 @@ static void _isst_pbf_display_information(int cpu, FILE *outf, int level,
|
|||
pbf_info->core_cpumask);
|
||||
format_and_print(outf, disp_level + 1, header, value);
|
||||
|
||||
snprintf(header, sizeof(header), "low-priority-base-frequency(KHz)");
|
||||
snprintf(header, sizeof(header), "high-priority-cpu-list");
|
||||
printcpulist(sizeof(value), value,
|
||||
pbf_info->core_cpumask_size,
|
||||
pbf_info->core_cpumask);
|
||||
format_and_print(outf, disp_level + 1, header, value);
|
||||
|
||||
snprintf(header, sizeof(header), "low-priority-base-frequency(MHz)");
|
||||
snprintf(value, sizeof(value), "%d",
|
||||
pbf_info->p1_low * DISP_FREQ_MULTIPLIER);
|
||||
format_and_print(outf, disp_level + 1, header, value);
|
||||
|
|
@ -209,7 +242,7 @@ static void _isst_fact_display_information(int cpu, FILE *outf, int level,
|
|||
|
||||
if (fact_avx & 0x01) {
|
||||
snprintf(header, sizeof(header),
|
||||
"high-priority-max-frequency(KHz)");
|
||||
"high-priority-max-frequency(MHz)");
|
||||
snprintf(value, sizeof(value), "%d",
|
||||
bucket_info[j].sse_trl * DISP_FREQ_MULTIPLIER);
|
||||
format_and_print(outf, base_level + 2, header, value);
|
||||
|
|
@ -217,7 +250,7 @@ static void _isst_fact_display_information(int cpu, FILE *outf, int level,
|
|||
|
||||
if (fact_avx & 0x02) {
|
||||
snprintf(header, sizeof(header),
|
||||
"high-priority-max-avx2-frequency(KHz)");
|
||||
"high-priority-max-avx2-frequency(MHz)");
|
||||
snprintf(value, sizeof(value), "%d",
|
||||
bucket_info[j].avx_trl * DISP_FREQ_MULTIPLIER);
|
||||
format_and_print(outf, base_level + 2, header, value);
|
||||
|
|
@ -225,7 +258,7 @@ static void _isst_fact_display_information(int cpu, FILE *outf, int level,
|
|||
|
||||
if (fact_avx & 0x04) {
|
||||
snprintf(header, sizeof(header),
|
||||
"high-priority-max-avx512-frequency(KHz)");
|
||||
"high-priority-max-avx512-frequency(MHz)");
|
||||
snprintf(value, sizeof(value), "%d",
|
||||
bucket_info[j].avx512_trl *
|
||||
DISP_FREQ_MULTIPLIER);
|
||||
|
|
@ -235,19 +268,19 @@ static void _isst_fact_display_information(int cpu, FILE *outf, int level,
|
|||
snprintf(header, sizeof(header),
|
||||
"speed-select-turbo-freq-clip-frequencies");
|
||||
format_and_print(outf, base_level + 1, header, NULL);
|
||||
snprintf(header, sizeof(header), "low-priority-max-frequency(KHz)");
|
||||
snprintf(header, sizeof(header), "low-priority-max-frequency(MHz)");
|
||||
snprintf(value, sizeof(value), "%d",
|
||||
fact_info->lp_clipping_ratio_license_sse *
|
||||
DISP_FREQ_MULTIPLIER);
|
||||
format_and_print(outf, base_level + 2, header, value);
|
||||
snprintf(header, sizeof(header),
|
||||
"low-priority-max-avx2-frequency(KHz)");
|
||||
"low-priority-max-avx2-frequency(MHz)");
|
||||
snprintf(value, sizeof(value), "%d",
|
||||
fact_info->lp_clipping_ratio_license_avx2 *
|
||||
DISP_FREQ_MULTIPLIER);
|
||||
format_and_print(outf, base_level + 2, header, value);
|
||||
snprintf(header, sizeof(header),
|
||||
"low-priority-max-avx512-frequency(KHz)");
|
||||
"low-priority-max-avx512-frequency(MHz)");
|
||||
snprintf(value, sizeof(value), "%d",
|
||||
fact_info->lp_clipping_ratio_license_avx512 *
|
||||
DISP_FREQ_MULTIPLIER);
|
||||
|
|
@ -261,7 +294,7 @@ void isst_ctdp_display_information(int cpu, FILE *outf, int tdp_level,
|
|||
char value[256];
|
||||
int i, base_level = 1;
|
||||
|
||||
print_packag_info(cpu, outf);
|
||||
print_package_info(cpu, outf);
|
||||
|
||||
for (i = 0; i <= pkg_dev->levels; ++i) {
|
||||
struct isst_pkg_ctdp_level_info *ctdp_level;
|
||||
|
|
@ -287,33 +320,41 @@ void isst_ctdp_display_information(int cpu, FILE *outf, int tdp_level,
|
|||
ctdp_level->core_cpumask);
|
||||
format_and_print(outf, base_level + 4, header, value);
|
||||
|
||||
snprintf(header, sizeof(header), "enable-cpu-list");
|
||||
printcpulist(sizeof(value), value,
|
||||
ctdp_level->core_cpumask_size,
|
||||
ctdp_level->core_cpumask);
|
||||
format_and_print(outf, base_level + 4, header, value);
|
||||
|
||||
snprintf(header, sizeof(header), "thermal-design-power-ratio");
|
||||
snprintf(value, sizeof(value), "%d", ctdp_level->tdp_ratio);
|
||||
format_and_print(outf, base_level + 4, header, value);
|
||||
|
||||
snprintf(header, sizeof(header), "base-frequency(KHz)");
|
||||
snprintf(header, sizeof(header), "base-frequency(MHz)");
|
||||
snprintf(value, sizeof(value), "%d",
|
||||
ctdp_level->tdp_ratio * DISP_FREQ_MULTIPLIER);
|
||||
format_and_print(outf, base_level + 4, header, value);
|
||||
|
||||
snprintf(header, sizeof(header),
|
||||
"speed-select-turbo-freq-support");
|
||||
snprintf(value, sizeof(value), "%d", ctdp_level->fact_support);
|
||||
"speed-select-turbo-freq");
|
||||
if (ctdp_level->fact_support) {
|
||||
if (ctdp_level->fact_enabled)
|
||||
snprintf(value, sizeof(value), "enabled");
|
||||
else
|
||||
snprintf(value, sizeof(value), "disabled");
|
||||
} else
|
||||
snprintf(value, sizeof(value), "unsupported");
|
||||
format_and_print(outf, base_level + 4, header, value);
|
||||
|
||||
snprintf(header, sizeof(header),
|
||||
"speed-select-base-freq-support");
|
||||
snprintf(value, sizeof(value), "%d", ctdp_level->pbf_support);
|
||||
format_and_print(outf, base_level + 4, header, value);
|
||||
|
||||
snprintf(header, sizeof(header),
|
||||
"speed-select-base-freq-enabled");
|
||||
snprintf(value, sizeof(value), "%d", ctdp_level->pbf_enabled);
|
||||
format_and_print(outf, base_level + 4, header, value);
|
||||
|
||||
snprintf(header, sizeof(header),
|
||||
"speed-select-turbo-freq-enabled");
|
||||
snprintf(value, sizeof(value), "%d", ctdp_level->fact_enabled);
|
||||
"speed-select-base-freq");
|
||||
if (ctdp_level->pbf_support) {
|
||||
if (ctdp_level->pbf_enabled)
|
||||
snprintf(value, sizeof(value), "enabled");
|
||||
else
|
||||
snprintf(value, sizeof(value), "disabled");
|
||||
} else
|
||||
snprintf(value, sizeof(value), "unsupported");
|
||||
format_and_print(outf, base_level + 4, header, value);
|
||||
|
||||
snprintf(header, sizeof(header), "thermal-design-power(W)");
|
||||
|
|
@ -331,12 +372,14 @@ void isst_ctdp_display_information(int cpu, FILE *outf, int tdp_level,
|
|||
format_and_print(outf, base_level + 5, header, NULL);
|
||||
|
||||
snprintf(header, sizeof(header), "core-count");
|
||||
snprintf(value, sizeof(value), "%d", j);
|
||||
snprintf(value, sizeof(value), "%llu", (ctdp_level->buckets_info >> (j * 8)) & 0xff);
|
||||
format_and_print(outf, base_level + 6, header, value);
|
||||
|
||||
snprintf(header, sizeof(header), "turbo-ratio");
|
||||
snprintf(header, sizeof(header),
|
||||
"max-turbo-frequency(MHz)");
|
||||
snprintf(value, sizeof(value), "%d",
|
||||
ctdp_level->trl_sse_active_cores[j]);
|
||||
ctdp_level->trl_sse_active_cores[j] *
|
||||
DISP_FREQ_MULTIPLIER);
|
||||
format_and_print(outf, base_level + 6, header, value);
|
||||
}
|
||||
snprintf(header, sizeof(header), "turbo-ratio-limits-avx");
|
||||
|
|
@ -346,12 +389,14 @@ void isst_ctdp_display_information(int cpu, FILE *outf, int tdp_level,
|
|||
format_and_print(outf, base_level + 5, header, NULL);
|
||||
|
||||
snprintf(header, sizeof(header), "core-count");
|
||||
snprintf(value, sizeof(value), "%d", j);
|
||||
snprintf(value, sizeof(value), "%llu", (ctdp_level->buckets_info >> (j * 8)) & 0xff);
|
||||
format_and_print(outf, base_level + 6, header, value);
|
||||
|
||||
snprintf(header, sizeof(header), "turbo-ratio");
|
||||
snprintf(header, sizeof(header),
|
||||
"max-turbo-frequency(MHz)");
|
||||
snprintf(value, sizeof(value), "%d",
|
||||
ctdp_level->trl_avx_active_cores[j]);
|
||||
ctdp_level->trl_avx_active_cores[j] *
|
||||
DISP_FREQ_MULTIPLIER);
|
||||
format_and_print(outf, base_level + 6, header, value);
|
||||
}
|
||||
|
||||
|
|
@ -362,12 +407,14 @@ void isst_ctdp_display_information(int cpu, FILE *outf, int tdp_level,
|
|||
format_and_print(outf, base_level + 5, header, NULL);
|
||||
|
||||
snprintf(header, sizeof(header), "core-count");
|
||||
snprintf(value, sizeof(value), "%d", j);
|
||||
snprintf(value, sizeof(value), "%llu", (ctdp_level->buckets_info >> (j * 8)) & 0xff);
|
||||
format_and_print(outf, base_level + 6, header, value);
|
||||
|
||||
snprintf(header, sizeof(header), "turbo-ratio");
|
||||
snprintf(header, sizeof(header),
|
||||
"max-turbo-frequency(MHz)");
|
||||
snprintf(value, sizeof(value), "%d",
|
||||
ctdp_level->trl_avx_512_active_cores[j]);
|
||||
ctdp_level->trl_avx_512_active_cores[j] *
|
||||
DISP_FREQ_MULTIPLIER);
|
||||
format_and_print(outf, base_level + 6, header, value);
|
||||
}
|
||||
if (ctdp_level->pbf_support)
|
||||
|
|
@ -397,7 +444,7 @@ void isst_ctdp_display_information_end(FILE *outf)
|
|||
void isst_pbf_display_information(int cpu, FILE *outf, int level,
|
||||
struct isst_pbf_info *pbf_info)
|
||||
{
|
||||
print_packag_info(cpu, outf);
|
||||
print_package_info(cpu, outf);
|
||||
_isst_pbf_display_information(cpu, outf, level, pbf_info, 4);
|
||||
format_and_print(outf, 1, NULL, NULL);
|
||||
}
|
||||
|
|
@ -406,7 +453,7 @@ void isst_fact_display_information(int cpu, FILE *outf, int level,
|
|||
int fact_bucket, int fact_avx,
|
||||
struct isst_fact_info *fact_info)
|
||||
{
|
||||
print_packag_info(cpu, outf);
|
||||
print_package_info(cpu, outf);
|
||||
_isst_fact_display_information(cpu, outf, level, fact_bucket, fact_avx,
|
||||
fact_info, 4);
|
||||
format_and_print(outf, 1, NULL, NULL);
|
||||
|
|
@ -472,7 +519,10 @@ void isst_display_result(int cpu, FILE *outf, char *feature, char *cmd,
|
|||
snprintf(header, sizeof(header), "%s", feature);
|
||||
format_and_print(outf, 4, header, NULL);
|
||||
snprintf(header, sizeof(header), "%s", cmd);
|
||||
snprintf(value, sizeof(value), "%d", result);
|
||||
if (!result)
|
||||
snprintf(value, sizeof(value), "success");
|
||||
else
|
||||
snprintf(value, sizeof(value), "failed(error %d)", result);
|
||||
format_and_print(outf, 5, header, value);
|
||||
|
||||
format_and_print(outf, 1, NULL, NULL);
|
||||
|
|
|
|||
|
|
@ -134,6 +134,7 @@ struct isst_pkg_ctdp_level_info {
|
|||
size_t core_cpumask_size;
|
||||
cpu_set_t *core_cpumask;
|
||||
int cpu_count;
|
||||
unsigned long long buckets_info;
|
||||
int trl_sse_active_cores[ISST_TRL_MAX_ACTIVE_CORES];
|
||||
int trl_avx_active_cores[ISST_TRL_MAX_ACTIVE_CORES];
|
||||
int trl_avx_512_active_cores[ISST_TRL_MAX_ACTIVE_CORES];
|
||||
|
|
|
|||
Loading…
Reference in a new issue