mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-07-23 18:06:18 +00:00
overlay: Baytrail needs a custom GPU frequency parser
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
98165d60be
commit
b9c705f4da
@ -88,6 +88,18 @@ int gpu_freq_init(struct gpu_freq *gf)
|
|||||||
|
|
||||||
buf[len] = '\0';
|
buf[len] = '\0';
|
||||||
|
|
||||||
|
if (strstr(buf, "PUNIT_REG_GPU_FREQ_STS")) {
|
||||||
|
/* Baytrail is special, ofc. */
|
||||||
|
gf->is_byt = 1;
|
||||||
|
s = strstr(buf, "max");
|
||||||
|
if (s == NULL)
|
||||||
|
goto err;
|
||||||
|
sscanf(s, "max GPU freq: %d MHz", &gf->max);
|
||||||
|
sscanf(s, "min GPU freq: %d MHz", &gf->min);
|
||||||
|
|
||||||
|
gf->rp0 = gf->rp1 = gf->max;
|
||||||
|
gf->rpn = gf->min;
|
||||||
|
} else {
|
||||||
s = strstr(buf, "(RPN)");
|
s = strstr(buf, "(RPN)");
|
||||||
if (s == NULL)
|
if (s == NULL)
|
||||||
goto err;
|
goto err;
|
||||||
@ -108,6 +120,7 @@ int gpu_freq_init(struct gpu_freq *gf)
|
|||||||
goto err;
|
goto err;
|
||||||
sscanf(s, "Max overclocked frequency: %dMHz", &gf->max);
|
sscanf(s, "Max overclocked frequency: %dMHz", &gf->max);
|
||||||
gf->min = gf->rpn;
|
gf->min = gf->rpn;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@ -140,6 +153,12 @@ int gpu_freq_update(struct gpu_freq *gf)
|
|||||||
|
|
||||||
buf[len] = '\0';
|
buf[len] = '\0';
|
||||||
|
|
||||||
|
if (gf->is_byt) {
|
||||||
|
s = strstr(buf, "current");
|
||||||
|
if (s)
|
||||||
|
sscanf(s, "current GPU freq: %d MHz", &gf->current);
|
||||||
|
gf->request = gf->current;
|
||||||
|
} else {
|
||||||
s = strstr(buf, "RPNSWREQ:");
|
s = strstr(buf, "RPNSWREQ:");
|
||||||
if (s)
|
if (s)
|
||||||
sscanf(s, "RPNSWREQ: %dMHz", &gf->request);
|
sscanf(s, "RPNSWREQ: %dMHz", &gf->request);
|
||||||
@ -147,6 +166,7 @@ int gpu_freq_update(struct gpu_freq *gf)
|
|||||||
s = strstr(buf, "CAGF:");
|
s = strstr(buf, "CAGF:");
|
||||||
if (s)
|
if (s)
|
||||||
sscanf(s, "CAGF: %dMHz", &gf->current);
|
sscanf(s, "CAGF: %dMHz", &gf->current);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
struct gpu_freq_stat *s = &gf->stat[gf->count++&1];
|
struct gpu_freq_stat *s = &gf->stat[gf->count++&1];
|
||||||
struct gpu_freq_stat *d = &gf->stat[gf->count&1];
|
struct gpu_freq_stat *d = &gf->stat[gf->count&1];
|
||||||
|
@ -34,6 +34,7 @@ struct gpu_freq {
|
|||||||
} stat[2];
|
} stat[2];
|
||||||
int fd;
|
int fd;
|
||||||
int count;
|
int count;
|
||||||
|
int is_byt;
|
||||||
int min, max;
|
int min, max;
|
||||||
int rpn, rp1, rp0;
|
int rpn, rp1, rp0;
|
||||||
int request;
|
int request;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user