aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/core/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-09-15 22:25:12 +1000
commit30da08069726fc4ca0ef5590b897dc5a017edbc9 (patch)
treea72fad87b876c721afbfe5db4ad5cb5909ead1ae /drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/memx.fuc
parentdrm/nouveau/pwr/memx: rename fb off/on to block/unblock (diff)
downloadlinux-dev-30da08069726fc4ca0ef5590b897dc5a017edbc9.tar.xz
linux-dev-30da08069726fc4ca0ef5590b897dc5a017edbc9.zip
drm/nouveau/pwr/memx: fix command ordering around block/unblock
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/memx.fuc')
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/memx.fuc8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/memx.fuc b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/memx.fuc
index 635539700216..bd639fbaadfa 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/memx.fuc
+++ b/drivers/gpu/drm/nouveau/core/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