summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2011-07-18 06:02:37 (GMT)
committerBen Skeggs <bskeggs@redhat.com>2011-09-20 06:10:40 (GMT)
commit9f403603f29f748b50b85a1be1c2ca2c792ae200 (patch)
treee9531e13e1fdcec64e5b49bb56653b9ce94f0340
parent52e0d0ecc8f82d4da12c31f0701bf490db5abe72 (diff)
downloadlinux-fsl-qoriq-9f403603f29f748b50b85a1be1c2ca2c792ae200.tar.xz
drm/nv40/pm: parse geometric delta clock from vbios
This changes the meaning of what we reported as "core" clock previously. The shader/rop units are allegedly supposed to be run at the base clock listed in the perf table, while the geometric clock can be bumped from this value on some boards. So that we can report both, we'll report the base clock as "shader" (since the shaders *do* run at it), and the geometric clock as "core". Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_perf.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_perf.c b/drivers/gpu/drm/nouveau/nouveau_perf.c
index 854ca85..9f178aa 100644
--- a/drivers/gpu/drm/nouveau/nouveau_perf.c
+++ b/drivers/gpu/drm/nouveau/nouveau_perf.c
@@ -275,8 +275,9 @@ nouveau_perf_init(struct drm_device *dev)
case 0x24:
perflvl->fanspeed = entry[4];
perflvl->volt_min = entry[5];
- perflvl->core = ROM16(entry[6]) * 1000;
-
+ perflvl->shader = ROM16(entry[6]) * 1000;
+ perflvl->core = perflvl->shader;
+ perflvl->core += (signed char)entry[8] * 1000;
if (dev_priv->chipset == 0x49 ||
dev_priv->chipset == 0x4b)
perflvl->memory = ROM16(entry[11]) * 1000;