Browse Source

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

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs 14 years ago
parent
commit
0c101461e2
2 changed files with 4 additions and 1 deletions
  1. 1 0
      drivers/gpu/drm/nouveau/nouveau_drv.h
  2. 3 1
      drivers/gpu/drm/nouveau/nouveau_perf.c

+ 1 - 0
drivers/gpu/drm/nouveau/nouveau_drv.h

@@ -525,6 +525,7 @@ struct nouveau_pm_engine {
 	struct nouveau_pm_memtimings memtimings;
 	struct nouveau_pm_temp_sensor_constants sensor_constants;
 	struct nouveau_pm_threshold_temp threshold_temp;
+	u32 pwm_divisor;
 
 	struct nouveau_pm_level boot;
 	struct nouveau_pm_level *cur;

+ 3 - 1
drivers/gpu/drm/nouveau/nouveau_perf.c

@@ -210,6 +210,9 @@ nouveau_perf_init(struct drm_device *dev)
 			recordlen = perf[2] + (perf[3] * perf[4]);
 			entries   = perf[5];
 		}
+
+		if (version < 0x30)
+			pm->pwm_divisor = ROM16(perf[6]);
 	} else {
 		if (bios->data[bios->offset + 6] < 0x25) {
 			legacy_perf_init(dev);
@@ -283,7 +286,6 @@ nouveau_perf_init(struct drm_device *dev)
 				perflvl->memory = ROM16(entry[11]) * 1000;
 			else
 				perflvl->memory = ROM16(entry[11]) * 2000;
-
 			break;
 		case 0x25:
 			perflvl->fanspeed = entry[4];