[Nouveau] [PATCH 1/1] nv30: Fix parsing of perf table

Emil Velikov emil.l.velikov at gmail.com
Thu Mar 17 17:46:24 PDT 2011


Perf tables v 1.2 and 1.3 (seen on Geforce FX / 5) are not long enough to store
the voltage label/id

Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 drivers/gpu/drm/nouveau/nouveau_perf.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_perf.c b/drivers/gpu/drm/nouveau/nouveau_perf.c
index ac62a1b..b09780b 100644
--- a/drivers/gpu/drm/nouveau/nouveau_perf.c
+++ b/drivers/gpu/drm/nouveau/nouveau_perf.c
@@ -134,7 +134,11 @@ nouveau_perf_init(struct drm_device *dev)
 		case 0x13:
 		case 0x15:
 			perflvl->fanspeed = entry[55];
-			perflvl->voltage = entry[56];
+/*
+ * Table v 1.2 and 1.3 does not have big enough recordlen to store the
+ * voltage
+ */
+			perflvl->voltage = (recordlen > 56) ? entry[56] : 0;
 			perflvl->core = ROM32(entry[1]) * 10;
 			perflvl->memory = ROM32(entry[5]) * 20;
 			break;
-- 
1.7.1



More information about the Nouveau mailing list