drm/nouveau/pm: store voltage in microvolts
[pandora-kernel.git] / drivers / gpu / drm / nouveau / nouveau_perf.c
index ef9dec0..117ce16 100644 (file)
@@ -203,7 +203,8 @@ nouveau_perf_init(struct drm_device *dev)
                case 0x13:
                case 0x15:
                        perflvl->fanspeed = entry[55];
-                       perflvl->voltage = (recordlen > 56) ? entry[56] : 0;
+                       if (recordlen > 56)
+                               perflvl->voltage = entry[56] * 10000;
                        perflvl->core = ROM32(entry[1]) * 10;
                        perflvl->memory = ROM32(entry[5]) * 20;
                        break;
@@ -211,7 +212,7 @@ nouveau_perf_init(struct drm_device *dev)
                case 0x23:
                case 0x24:
                        perflvl->fanspeed = entry[4];
-                       perflvl->voltage = entry[5];
+                       perflvl->voltage = entry[5] * 10000;
                        perflvl->core = ROM16(entry[6]) * 1000;
 
                        if (dev_priv->chipset == 0x49 ||
@@ -223,7 +224,7 @@ nouveau_perf_init(struct drm_device *dev)
                        break;
                case 0x25:
                        perflvl->fanspeed = entry[4];
-                       perflvl->voltage = entry[5];
+                       perflvl->voltage = entry[5] * 10000;
                        perflvl->core = ROM16(entry[6]) * 1000;
                        perflvl->shader = ROM16(entry[10]) * 1000;
                        perflvl->memory = ROM16(entry[12]) * 1000;
@@ -232,7 +233,7 @@ nouveau_perf_init(struct drm_device *dev)
                        perflvl->memscript = ROM16(entry[2]);
                case 0x35:
                        perflvl->fanspeed = entry[6];
-                       perflvl->voltage = entry[7];
+                       perflvl->voltage = entry[7] * 10000;
                        perflvl->core = ROM16(entry[8]) * 1000;
                        perflvl->shader = ROM16(entry[10]) * 1000;
                        perflvl->memory = ROM16(entry[12]) * 1000;
@@ -242,7 +243,7 @@ nouveau_perf_init(struct drm_device *dev)
                case 0x40:
 #define subent(n) entry[perf[2] + ((n) * perf[3])]
                        perflvl->fanspeed = 0; /*XXX*/
-                       perflvl->voltage = entry[2];
+                       perflvl->voltage = entry[2] * 10000;
                        if (dev_priv->card_type == NV_50) {
                                perflvl->core = ROM16(subent(0)) & 0xfff;
                                perflvl->shader = ROM16(subent(1)) & 0xfff;