Browse Source

drm/nouveau/pm: hook up fanspeed get/set if they're present

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs 14 years ago
parent
commit
771e1035b9
1 changed files with 9 additions and 0 deletions
  1. 9 0
      drivers/gpu/drm/nouveau/nouveau_pm.c

+ 9 - 0
drivers/gpu/drm/nouveau/nouveau_pm.c

@@ -64,6 +64,12 @@ nouveau_pm_perflvl_set(struct drm_device *dev, struct nouveau_pm_level *perflvl)
 	if (perflvl == pm->cur)
 		return 0;
 
+	if (pm->fanspeed_set && perflvl->fanspeed) {
+		ret = pm->fanspeed_set(dev, perflvl->fanspeed);
+		if (ret)
+			NV_ERROR(dev, "set fanspeed failed: %d\n", ret);
+	}
+
 	if (pm->voltage.supported && pm->voltage_set && perflvl->volt_min) {
 		ret = pm->voltage_set(dev, perflvl->volt_min);
 		if (ret) {
@@ -161,6 +167,9 @@ nouveau_pm_perflvl_get(struct drm_device *dev, struct nouveau_pm_level *perflvl)
 		}
 	}
 
+	if (pm->fanspeed_get)
+		perflvl->fanspeed = pm->fanspeed_get(dev);
+
 	return 0;
 }