Commit 0c101461 authored by Ben Skeggs's avatar Ben Skeggs

drm/nv40/pm: parse fan pwm divisor from vbios tables

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent d0d110e0
...@@ -525,6 +525,7 @@ struct nouveau_pm_engine { ...@@ -525,6 +525,7 @@ struct nouveau_pm_engine {
struct nouveau_pm_memtimings memtimings; struct nouveau_pm_memtimings memtimings;
struct nouveau_pm_temp_sensor_constants sensor_constants; struct nouveau_pm_temp_sensor_constants sensor_constants;
struct nouveau_pm_threshold_temp threshold_temp; struct nouveau_pm_threshold_temp threshold_temp;
u32 pwm_divisor;
struct nouveau_pm_level boot; struct nouveau_pm_level boot;
struct nouveau_pm_level *cur; struct nouveau_pm_level *cur;
......
...@@ -210,6 +210,9 @@ nouveau_perf_init(struct drm_device *dev) ...@@ -210,6 +210,9 @@ nouveau_perf_init(struct drm_device *dev)
recordlen = perf[2] + (perf[3] * perf[4]); recordlen = perf[2] + (perf[3] * perf[4]);
entries = perf[5]; entries = perf[5];
} }
if (version < 0x30)
pm->pwm_divisor = ROM16(perf[6]);
} else { } else {
if (bios->data[bios->offset + 6] < 0x25) { if (bios->data[bios->offset + 6] < 0x25) {
legacy_perf_init(dev); legacy_perf_init(dev);
...@@ -283,7 +286,6 @@ nouveau_perf_init(struct drm_device *dev) ...@@ -283,7 +286,6 @@ nouveau_perf_init(struct drm_device *dev)
perflvl->memory = ROM16(entry[11]) * 1000; perflvl->memory = ROM16(entry[11]) * 1000;
else else
perflvl->memory = ROM16(entry[11]) * 2000; perflvl->memory = ROM16(entry[11]) * 2000;
break; break;
case 0x25: case 0x25:
perflvl->fanspeed = entry[4]; perflvl->fanspeed = entry[4];
......
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