Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 947bfc83 authored by Alex Deucher's avatar Alex Deucher Committed by Dave Airlie
Browse files

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: default avatarAlex Deucher <alexdeucher@gmail.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 4eaeca33
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -1122,8 +1122,6 @@ static void atom_execute_table_locked(struct atom_context *ctx, int index, uint3

	SDEBUG(">> execute %04X (len %d, WS %d, PS %d)\n", base, len, ws, ps);

	/* reset reg block */
	ctx->reg_block = 0;
	ectx.ctx = ctx;
	ectx.ps_shift = ps / 4;
	ectx.start = base;
@@ -1160,6 +1158,12 @@ static void atom_execute_table_locked(struct atom_context *ctx, int index, uint3
void atom_execute_table(struct atom_context *ctx, int index, uint32_t * params)
{
	mutex_lock(&ctx->mutex);
	/* reset reg block */
	ctx->reg_block = 0;
	/* reset fb window */
	ctx->fb_base = 0;
	/* reset io mode */
	ctx->io_mode = ATOM_IO_MM;
	atom_execute_table_locked(ctx, index, params);
	mutex_unlock(&ctx->mutex);
}