aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/radeon/atom.h
diff options
context:
space:
mode:
authorJerome Glisse <jglisse@redhat.com>2010-03-02 20:37:52 +0100
committerDave Airlie <airlied@redhat.com>2010-03-15 09:35:45 +1000
commitc21b0fe6de3912f53087b4f3991942529f03eef6 (patch)
treeeffd4e98793dbd06a85f558a843519b1bf35bf24 /drivers/gpu/drm/radeon/atom.h
parent338e2b1d571e4873908b199c90d6a31f65137fe3 (diff)
drm/radeon/kms: catch atombios infinite loop and break out of it
In somecase the atombios code might lead to infinite loop because the GPU is in broken state, this patch track the jump history and will abort atombios execution if we are stuck executing the same jump for more than 1sec. Note that otherwise in some case we might enter an infinite loop in the kernel context which is bad. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/atom.h')
-rw-r--r--drivers/gpu/drm/radeon/atom.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/atom.h b/drivers/gpu/drm/radeon/atom.h
index bc73781423a..1b262631480 100644
--- a/drivers/gpu/drm/radeon/atom.h
+++ b/drivers/gpu/drm/radeon/atom.h
@@ -140,7 +140,7 @@ struct atom_context {
extern int atom_debug;
struct atom_context *atom_parse(struct card_info *, void *);
-void atom_execute_table(struct atom_context *, int, uint32_t *);
+int atom_execute_table(struct atom_context *, int, uint32_t *);
int atom_asic_init(struct atom_context *);
void atom_destroy(struct atom_context *);
void atom_parse_data_header(struct atom_context *ctx, int index, uint16_t *size, uint8_t *frev, uint8_t *crev, uint16_t *data_start);