[Nouveau] [PATCH 3/4] pmu/fuc: call# seems to be broken on gk208

Karol Herbst nouveau at karolherbst.de
Fri Feb 26 15:19:33 UTC 2016


for some reasons these calls don't really go there where they should go
leading to various corruptions of the PMU state

Signed-off-by: Karol Herbst <nouveau at karolherbst.de>
---
 drm/nouveau/nvkm/subdev/pmu/fuc/gk208.fuc5.h | 12 ++++++------
 drm/nouveau/nvkm/subdev/pmu/fuc/kernel.fuc   |  6 +++---
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/drm/nouveau/nvkm/subdev/pmu/fuc/gk208.fuc5.h b/drm/nouveau/nvkm/subdev/pmu/fuc/gk208.fuc5.h
index 776e672..3c731ff 100644
--- a/drm/nouveau/nvkm/subdev/pmu/fuc/gk208.fuc5.h
+++ b/drm/nouveau/nvkm/subdev/pmu/fuc/gk208.fuc5.h
@@ -1036,20 +1036,20 @@ uint32_t gk208_pmu_code[] = {
 /* 0x0193: ticks_from_ns */
 	0xf901f800,
 	0x4db0f9c0,
-	0x21f50144,
-	0xccec0352,
+	0x527e0144,
+	0xccec0003,
 	0xb4b003e8,
 	0x0e0bf400,
 	0x03e8eeec,
-	0xf501444d,
+	0x7e01444d,
 /* 0x01b3: ticks_from_ns_quit */
-	0xb2035221,
+	0xb2000352,
 	0xfcb0fcce,
 /* 0x01bb: ticks_from_us */
 	0xf900f8c0,
 	0x4db0f9c0,
-	0x21f50144,
-	0xceb20352,
+	0x527e0144,
+	0xceb20003,
 	0xf400b4b0,
 	0xe4bd050b,
 /* 0x01d0: ticks_from_us_quit */
diff --git a/drm/nouveau/nvkm/subdev/pmu/fuc/kernel.fuc b/drm/nouveau/nvkm/subdev/pmu/fuc/kernel.fuc
index d1ca3c7..6839f88 100644
--- a/drm/nouveau/nvkm/subdev/pmu/fuc/kernel.fuc
+++ b/drm/nouveau/nvkm/subdev/pmu/fuc/kernel.fuc
@@ -252,7 +252,7 @@ ticks_from_ns:
 
 	/* try not losing precision (multiply then divide) */
 	imm32($r13, HW_TICKS_PER_US)
-	call #mulu32_32_64
+	call(mulu32_32_64)
 
 	/* use an immeditate, it's ok because HW_TICKS_PER_US < 16 bits */
 	div $r12 $r12 1000
@@ -264,7 +264,7 @@ ticks_from_ns:
 	/* let's divide then multiply, too bad for the precision! */
 	div $r14 $r14 1000
 	imm32($r13, HW_TICKS_PER_US)
-	call #mulu32_32_64
+	call(mulu32_32_64)
 
 	/* this cannot overflow as long as HW_TICKS_PER_US < 1000 */
 
@@ -286,7 +286,7 @@ ticks_from_us:
 
 	/* simply multiply $us by HW_TICKS_PER_US */
 	imm32($r13, HW_TICKS_PER_US)
-	call #mulu32_32_64
+	call(mulu32_32_64)
 	mov b32 $r14 $r12
 
 	/* check if there wasn't any overflow */
-- 
2.7.2



More information about the Nouveau mailing list