Commit 40f6193b authored by Ben Skeggs's avatar Ben Skeggs

drm/nvc0/pm: correct core/mem/shader perflvl parsing

We need to parse some of these other entries still, but I've yet to
determine exactly which PLLs the rest map to.
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 730673b6
...@@ -236,9 +236,19 @@ nouveau_perf_init(struct drm_device *dev) ...@@ -236,9 +236,19 @@ nouveau_perf_init(struct drm_device *dev)
#define subent(n) entry[perf[2] + ((n) * perf[3])] #define subent(n) entry[perf[2] + ((n) * perf[3])]
perflvl->fanspeed = 0; /*XXX*/ perflvl->fanspeed = 0; /*XXX*/
perflvl->voltage = entry[2]; perflvl->voltage = entry[2];
perflvl->core = (ROM16(subent(0)) & 0xfff) * 1000; if (dev_priv->card_type == NV_50) {
perflvl->shader = (ROM16(subent(1)) & 0xfff) * 1000; perflvl->core = ROM16(subent(0)) & 0xfff;
perflvl->memory = (ROM16(subent(2)) & 0xfff) * 1000; perflvl->shader = ROM16(subent(1)) & 0xfff;
perflvl->memory = ROM16(subent(2)) & 0xfff;
} else {
perflvl->shader = ROM16(subent(3)) & 0xfff;
perflvl->core = perflvl->shader / 2;
perflvl->memory = ROM16(subent(5)) & 0xfff;
}
perflvl->core *= 1000;
perflvl->shader *= 1000;
perflvl->memory *= 1000;
break; break;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment