drm/nouveau/pm: hook up fanspeed get/set if they're present
authorBen Skeggs <bskeggs@redhat.com>
Thu, 28 Jul 2011 01:01:21 +0000 (11:01 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Wed, 21 Dec 2011 09:01:10 +0000 (19:01 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nouveau_pm.c

index a539fd2..607e496 100644 (file)
@@ -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;
 }