diff options
author | Jerome Glisse <jglisse@redhat.com> | 2010-03-02 20:37:52 +0100 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-03-15 00:35:45 +0100 |
commit | c21b0fe6de3912f53087b4f3991942529f03eef6 (patch) | |
tree | effd4e98793dbd06a85f558a843519b1bf35bf24 /drivers/gpu/drm/radeon/atom.h | |
parent | drm/radeon: add new RS880 pci id (diff) | |
download | linux-c21b0fe6de3912f53087b4f3991942529f03eef6.tar.xz linux-c21b0fe6de3912f53087b4f3991942529f03eef6.zip |
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.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/atom.h b/drivers/gpu/drm/radeon/atom.h index bc73781423a1..1b2626314804 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); |