drm/nv40: fix reading temp value
authorFrancesco Marella <fmarl@paranoici.org>
Thu, 23 Sep 2010 07:14:22 +0000 (09:14 +0200)
committerBen Skeggs <bskeggs@redhat.com>
Fri, 24 Sep 2010 06:29:06 +0000 (16:29 +1000)
Signed-off-by: Francesco Marella <fmarl@paranoici.org>
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nouveau_temp.c

index 3394075..3e0f19e 100644 (file)
@@ -178,7 +178,7 @@ nouveau_nv40_sensor_setup(struct drm_device *dev)
        msleep(5);
 
        /* read */
-       return nv_rd32(dev, 0x0015b4);
+       return nv_rd32(dev, 0x0015b4) & 0x1fff;
 }
 
 s16
@@ -197,7 +197,7 @@ nouveau_temp_get(struct drm_device *dev)
                if (dev_priv->chipset >= 0x50) {
                        core_temp = nv_rd32(dev, 0x20008);
                } else {
-                       core_temp = nv_rd32(dev, 0x0015b4);
+                       core_temp = nv_rd32(dev, 0x0015b4) & 0x1fff;
                        /* Setup the sensor if the temperature is 0 */
                        if (core_temp == 0)
                                core_temp = nouveau_nv40_sensor_setup(dev);