diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2013-07-30 00:22:53 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-08-04 04:51:14 -0400 |
commit | 6f8bbaf568c7f2c497558bfd04654c0b9841ad57 (patch) | |
tree | 660c876ccd2f31492d570bee91fc2398a215e663 | |
parent | 8414d407af75ccbd398898fdb108189afc22ded4 (diff) |
drm/radeon/atom: initialize more atom interpretor elements to 0
commit 42a21826dc54583cdb79cc8477732e911ac9c376 upstream.
The ProcessAuxChannel table on some rv635 boards assumes
the divmul members are initialized to 0 otherwise we get
an invalid fb offset since it has a bad mask set when
setting the fb base. While here initialize all the
atom interpretor elements to 0.
Fixes:
https://bugzilla.kernel.org/show_bug.cgi?id=60639
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/gpu/drm/radeon/atom.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c index fb441a790f3d..15da7ef344a4 100644 --- a/drivers/gpu/drm/radeon/atom.c +++ b/drivers/gpu/drm/radeon/atom.c | |||
@@ -1222,12 +1222,17 @@ int atom_execute_table(struct atom_context *ctx, int index, uint32_t * params) | |||
1222 | int r; | 1222 | int r; |
1223 | 1223 | ||
1224 | mutex_lock(&ctx->mutex); | 1224 | mutex_lock(&ctx->mutex); |
1225 | /* reset data block */ | ||
1226 | ctx->data_block = 0; | ||
1225 | /* reset reg block */ | 1227 | /* reset reg block */ |
1226 | ctx->reg_block = 0; | 1228 | ctx->reg_block = 0; |
1227 | /* reset fb window */ | 1229 | /* reset fb window */ |
1228 | ctx->fb_base = 0; | 1230 | ctx->fb_base = 0; |
1229 | /* reset io mode */ | 1231 | /* reset io mode */ |
1230 | ctx->io_mode = ATOM_IO_MM; | 1232 | ctx->io_mode = ATOM_IO_MM; |
1233 | /* reset divmul */ | ||
1234 | ctx->divmul[0] = 0; | ||
1235 | ctx->divmul[1] = 0; | ||
1231 | r = atom_execute_table_locked(ctx, index, params); | 1236 | r = atom_execute_table_locked(ctx, index, params); |
1232 | mutex_unlock(&ctx->mutex); | 1237 | mutex_unlock(&ctx->mutex); |
1233 | return r; | 1238 | return r; |