aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2010-01-21 17:14:49 -0500
committerDave Airlie <airlied@redhat.com>2010-01-24 02:25:05 -0500
commit947bfc83043181e86e3e3134da158e479c9bcc51 (patch)
treed3a7111bf9d8e6dd55519d7a28762d0dffd581db /drivers
parent4eaeca33512b9774c25507b9a9bdcfe3791a5cc5 (diff)
drm/radeon/kms/atom: atom parser fixes
Only reset the reg block on the initial execute table call; nested calls require the reg block not be reset on each call. Also reset the fb window and io mode. This matches the upstream parser behavior. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/radeon/atom.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c
index cf3126108a48..e3b44562d265 100644
--- a/drivers/gpu/drm/radeon/atom.c
+++ b/drivers/gpu/drm/radeon/atom.c
@@ -1122,8 +1122,6 @@ static void atom_execute_table_locked(struct atom_context *ctx, int index, uint3
1122 1122
1123 SDEBUG(">> execute %04X (len %d, WS %d, PS %d)\n", base, len, ws, ps); 1123 SDEBUG(">> execute %04X (len %d, WS %d, PS %d)\n", base, len, ws, ps);
1124 1124
1125 /* reset reg block */
1126 ctx->reg_block = 0;
1127 ectx.ctx = ctx; 1125 ectx.ctx = ctx;
1128 ectx.ps_shift = ps / 4; 1126 ectx.ps_shift = ps / 4;
1129 ectx.start = base; 1127 ectx.start = base;
@@ -1160,6 +1158,12 @@ static void atom_execute_table_locked(struct atom_context *ctx, int index, uint3
1160void atom_execute_table(struct atom_context *ctx, int index, uint32_t * params) 1158void atom_execute_table(struct atom_context *ctx, int index, uint32_t * params)
1161{ 1159{
1162 mutex_lock(&ctx->mutex); 1160 mutex_lock(&ctx->mutex);
1161 /* reset reg block */
1162 ctx->reg_block = 0;
1163 /* reset fb window */
1164 ctx->fb_base = 0;
1165 /* reset io mode */
1166 ctx->io_mode = ATOM_IO_MM;
1163 atom_execute_table_locked(ctx, index, params); 1167 atom_execute_table_locked(ctx, index, params);
1164 mutex_unlock(&ctx->mutex); 1168 mutex_unlock(&ctx->mutex);
1165} 1169}