[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