summaryrefslogtreecommitdiff
path: root/nvkm/subdev/pwr/fuc/memx.fuc
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2014-09-11 23:04:22 +1000
committerBen Skeggs <bskeggs@redhat.com>2014-10-02 13:25:45 +1000
commitfc41d1eb99a590fd8d3ecd1c01ecb8aff7ec5903 (patch)
tree49e36d05614dad142b2dc8a1c047ee15e1f39106 /nvkm/subdev/pwr/fuc/memx.fuc
parent382ab32bcf0669bde4fa128c2fee3495c222d8b8 (diff)
downloadnouveau-fc41d1eb99a590fd8d3ecd1c01ecb8aff7ec5903.tar.gz
pwr/memx: fix command ordering around block/unblock
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'nvkm/subdev/pwr/fuc/memx.fuc')
-rw-r--r--nvkm/subdev/pwr/fuc/memx.fuc8
1 files changed, 5 insertions, 3 deletions
diff --git a/nvkm/subdev/pwr/fuc/memx.fuc b/nvkm/subdev/pwr/fuc/memx.fuc
index 635539700..bd639fbaa 100644
--- a/nvkm/subdev/pwr/fuc/memx.fuc
+++ b/nvkm/subdev/pwr/fuc/memx.fuc
@@ -242,13 +242,15 @@ memx_exec:
mov b32 $r2 $r11
memx_exec_next:
- // fetch the packet header, and locate opcode info
+ // fetch the packet header
ld b32 $r3 D[$r1]
add b32 $r1 4
- shr b32 $r4 $r3 16
- mulu $r3 #memx_func_size
+ extr $r4 $r3 16:31
+ extr $r3 $r3 0:15
// execute the opcode handler
+ sub b32 $r3 1
+ mulu $r3 #memx_func_size
ld b32 $r5 D[$r3 + #memx_func_head + #memx_func]
call $r5