linux/drivers/gpu/drm/radeon
Jerome Glisse 90aca4d274 drm/radeon/kms: simplify & improve GPU reset V2
This simplify and improve GPU reset for R1XX-R6XX hw, it's
not 100% reliable here are result:
- R1XX/R2XX works bunch of time in a row, sometimes it
  seems it can work indifinitly
- R3XX/R3XX the most unreliable one, sometimes you will be
  able to reset few times, sometimes not even once
- R5XX more reliable than previous hw, seems to work most
  of the times but once in a while it fails for no obvious
  reasons (same status than previous reset just no same
  happy ending)
- R6XX/R7XX are lot more reliable with this patch, still
  it seems that it can fail after a bunch (reset every
  2sec for 3hour bring down the GPU & computer)

This have been tested on various hw, for some odd reasons
i wasn't able to lockup RS480/RS690 (while they use to
love locking up).

Note that on R1XX-R5XX the cursor will disapear after
lockup haven't checked why, switch to console and back
to X will restore cursor.

Next step is to record the bogus command that leaded to
the lockup.

V2 Fix r6xx resume path to avoid reinitializing blit
module, use the gpu_lockup boolean to avoid entering
inifinite waiting loop on fence while reiniting the GPU

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-04-06 11:21:11 +10:00
..
reg_srcs drm/radeon/r6xx/r7xx: further safe reg clean up 2010-03-31 13:12:39 +10:00
.gitignore drm: create gitignore file for radeon 2009-09-25 13:08:21 +10:00
atom-bits.h drm/radeon: introduce kernel modesetting for radeon hardware 2009-06-15 12:01:53 +10:00
atom-names.h drm/radeon: introduce kernel modesetting for radeon hardware 2009-06-15 12:01:53 +10:00
atom-types.h drm/radeon: introduce kernel modesetting for radeon hardware 2009-06-15 12:01:53 +10:00
atom.c drm/radeon/kms/atom: make sure tables are valid (v2) 2010-03-31 13:11:29 +10:00
atom.h drm/radeon/kms/atom: make sure tables are valid (v2) 2010-03-31 13:11:29 +10:00
atombios_crtc.c drm/radeon/kms: minor fixes for eDP with LCD* device tags (v2) 2010-03-31 13:13:16 +10:00
atombios_dp.c drm/radeon/kms/dp: disable training pattern on the sink at the end of link training 2010-03-31 13:14:08 +10:00
atombios.h No need to patch AMD-provided drivers/gpu/drm/radeon/atombios.h 2010-02-12 10:31:37 +01:00
avivod.h [rfc] drm/radeon/kms: pm debugging check for vbl. 2010-02-23 09:46:21 +10:00
evergreen_reg.h drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00
evergreen.c drm/radeon/kms: rename gpu_reset to asic_reset 2010-04-06 11:21:04 +10:00
Kconfig drm/radeon/kms: change Kconfig text to reflect the new option. 2010-02-08 15:05:58 +10:00
Makefile drm/radeon: create radeon_asic.c 2010-03-15 11:27:03 +10:00
mkregtable.c drm/radeon: mkregtable.c: close a file before exit 2010-01-08 13:11:55 +10:00
ObjectID.h drm/radeon/kms: pull in the latest upstream ObjectID.h changes 2010-01-08 13:03:57 +10:00
r100_track.h drm/radeon/kms: allow rendering while no colorbuffer is set on r300 2009-12-23 11:14:04 +10:00
r100.c drm/radeon/kms: simplify & improve GPU reset V2 2010-04-06 11:21:11 +10:00
r100d.h drm/radeon/kms: simplify & improve GPU reset V2 2010-04-06 11:21:11 +10:00
r200.c drm/radeon: include radeon_asic.h in the asic specific files 2010-03-15 11:27:22 +10:00
r300_cmdbuf.c drm/radeon: Fix printf type warning in 64bit system. 2010-03-01 22:21:37 +11:00
r300_reg.h drm/radeon/kms: add support for square microtiles on r3xx-r5xx 2010-02-25 11:36:12 +10:00
r300.c drm/radeon/kms: simplify & improve GPU reset V2 2010-04-06 11:21:11 +10:00
r300d.h drm/radeon/kms: simplify & improve GPU reset V2 2010-04-06 11:21:11 +10:00
r420.c drm/radeon/kms: rename gpu_reset to asic_reset 2010-04-06 11:21:04 +10:00
r420d.h drm/radeon/kms: Convert RS400/RS480 to new init path & fix legacy VGA (V3) 2009-10-02 08:51:46 +10:00
r500_reg.h drm/radeon/kms: add support for hw i2c on r1xx-r5xx 2010-02-09 09:31:10 +10:00
r520.c drm/radeon/kms: simplify & improve GPU reset V2 2010-04-06 11:21:11 +10:00
r520d.h drm/radeon/kms: Convert R520 to new init path and associated cleanup 2009-09-29 11:15:56 +10:00
r600_audio.c drm/radeon/kms: improve coding style a little 2010-03-15 10:05:55 +10:00
r600_blit_kms.c drm/radeon/kms: simplify & improve GPU reset V2 2010-04-06 11:21:11 +10:00
r600_blit_shaders.c drm/radeon/r600: add missing license and comments to r600_blit_shaders.c 2010-03-15 10:07:38 +10:00
r600_blit_shaders.h drm/radeon/kms: add r600 KMS support 2009-09-08 11:15:52 +10:00
r600_blit.c drm/radeon: use ALIGN instead of open coding it 2010-03-01 15:56:41 +10:00
r600_cp.c drm/radeon/kms: gfx init fixes for r6xx/r7xx 2010-03-31 09:53:53 +10:00
r600_cs.c drm/radeon/r6xx/r7xx: CS parser fixes 2010-03-31 13:12:17 +10:00
r600_hdmi.c drm/radeon/kms: improve coding style a little 2010-03-15 10:05:55 +10:00
r600_reg.h drm/radeon/kms: clean HDMI definitions 2010-03-15 10:01:40 +10:00
r600.c drm/radeon/kms: simplify & improve GPU reset V2 2010-04-06 11:21:11 +10:00
r600d.h drm/radeon/r6xx/r7xx: CS parser fixes 2010-03-31 13:12:17 +10:00
radeon_agp.c drm/radeon/kms: simplify memory controller setup V2 2010-02-18 14:49:35 +10:00
radeon_asic.c drm/radeon/kms: simplify & improve GPU reset V2 2010-04-06 11:21:11 +10:00
radeon_asic.h drm/radeon/kms: simplify & improve GPU reset V2 2010-04-06 11:21:11 +10:00
radeon_atombios.c drm/radeon/kms/atom: fix gpio i2c table overrun (v2) 2010-04-06 09:59:31 +10:00
radeon_atpx_handler.c vga_switcheroo: fix build on platforms with no ACPI 2010-03-01 22:21:58 +11:00
radeon_benchmark.c drm/radeon: Skip dma copy test in benchmark if card doesn't have dma engine. 2010-02-11 13:13:25 +10:00
radeon_bios.c Merge branch 'gpu-switcher' of /ssd/git//linux-2.6 into drm-next-stage 2010-03-01 16:22:38 +10:00
radeon_clocks.c drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00
radeon_combios.c Merge branch 'v2.6.34-rc2' into drm-linus 2010-03-31 14:55:14 +10:00
radeon_connectors.c drm/radeon/kms: use new pre/post_xfer i2c bit algo hooks 2010-03-31 14:55:50 +10:00
radeon_cp.c drm/radeon: R300 AD only has one quad pipe. 2010-04-06 09:56:40 +10:00
radeon_cs.c drm/radeon/kms: simplify & improve GPU reset V2 2010-04-06 11:21:11 +10:00
radeon_cursor.c Merge remote branch 'korg/drm-radeon-testing' into drm-next-stage 2010-02-26 16:23:23 +10:00
radeon_device.c drm/radeon/kms: simplify & improve GPU reset V2 2010-04-06 11:21:11 +10:00
radeon_display.c drm/radeon/kms: display watermark updates (v2) 2010-03-31 14:54:47 +10:00
radeon_drv.c drm/radeon/kms: add hw_i2c module option 2010-03-31 14:55:52 +10:00
radeon_drv.h drm/radeon: bump the UMS driver version for r6xx/r7xx const buffer support 2010-03-31 13:12:28 +10:00
radeon_encoders.c drm/radeon/kms/evergreen: get DP working 2010-04-01 12:50:07 +10:00
radeon_family.h drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00
radeon_fb.c Merge branch 'gpu-switcher' of /ssd/git//linux-2.6 into drm-next-stage 2010-03-01 16:22:38 +10:00
radeon_fence.c drm/radeon/kms: simplify & improve GPU reset V2 2010-04-06 11:21:11 +10:00
radeon_fixed.h drm/radeon/kms/avivo: fix some bugs in the display bandwidth setup 2009-12-10 15:09:05 +10:00
radeon_gart.c drm/radeon/kms: simplify & improve GPU reset V2 2010-04-06 11:21:11 +10:00
radeon_gem.c Use drm_gem_object_[handle_]unreference_unlocked where possible 2010-02-11 14:22:34 +10:00
radeon_i2c.c drm/radeon/kms: add hw_i2c module option 2010-03-31 14:55:52 +10:00
radeon_ioc32.c drm: convert drm_ioctl to unlocked_ioctl 2009-12-18 11:22:31 +10:00
radeon_irq_kms.c drm/radeon/kms: disable MSI on IGP chips 2010-03-31 14:55:02 +10:00
radeon_irq.c gpu/drm/radeon/radeon_irq.c: move a dereference below a NULL test 2010-01-07 13:56:32 +10:00
radeon_kms.c Merge branch 'gpu-switcher' of /ssd/git//linux-2.6 into drm-next-stage 2010-03-01 16:22:38 +10:00
radeon_legacy_crtc.c drm/radeon/kms/rs4xx: make sure crtcs are enabled when setting timing 2010-03-15 09:59:24 +10:00
radeon_legacy_encoders.c drm/radeon/kms: add dynamic engine reclocking (V9) 2010-02-09 09:32:26 +10:00
radeon_legacy_tv.c drm/radeon/kms: fix pal tv-out support on legacy IGP chips 2010-03-15 09:57:42 +10:00
radeon_mem.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
radeon_mode.h drm/radeon/kms: use new pre/post_xfer i2c bit algo hooks 2010-03-31 14:55:50 +10:00
radeon_object.c drm/radeon/kms: Only restrict BO to visible VRAM size when pinning to VRAM. 2010-03-31 13:12:59 +10:00
radeon_object.h drm/radeon/kms: fix bo's fence association 2010-02-18 15:07:04 +10:00
radeon_pm.c drm/radeon/kms/pm: fix segfault in clock code 2010-03-31 09:53:46 +10:00
radeon_reg.h drm/radeon/kms: enable ACPI powermanagement mode on radeon gpus. 2010-04-01 12:50:46 +10:00
radeon_ring.c Merge remote branch 'korg/drm-radeon-testing' into drm-next-stage 2010-02-26 16:23:23 +10:00
radeon_state.c Merge branch 'for-next' into for-linus 2010-03-08 16:55:37 +01:00
radeon_test.c drm/radeon/kms: simplify memory controller setup V2 2010-02-18 14:49:35 +10:00
radeon_ttm.c Merge remote branch 'korg/drm-radeon-testing' into drm-next-stage 2010-02-26 16:23:23 +10:00
radeon.h drm/radeon/kms: simplify & improve GPU reset V2 2010-04-06 11:21:11 +10:00
rs100d.h drm/radeon/kms: Convert R100 to new init path (V2) 2009-10-02 08:51:49 +10:00
rs400.c drm/radeon/kms: simplify & improve GPU reset V2 2010-04-06 11:21:11 +10:00
rs400d.h drm/radeon/kms: Convert RS400/RS480 to new init path & fix legacy VGA (V3) 2009-10-02 08:51:46 +10:00
rs600.c drm/radeon/kms: simplify & improve GPU reset V2 2010-04-06 11:21:11 +10:00
rs600d.h drm/radeon/kms: simplify & improve GPU reset V2 2010-04-06 11:21:11 +10:00
rs690.c drm/radeon/kms: simplify & improve GPU reset V2 2010-04-06 11:21:11 +10:00
rs690d.h drm/radeon/kms: display watermark updates (v2) 2010-03-31 14:54:47 +10:00
rv200d.h drm/radeon/kms: Convert R100 to new init path (V2) 2009-10-02 08:51:49 +10:00
rv250d.h drm/radeon/kms: Convert R100 to new init path (V2) 2009-10-02 08:51:49 +10:00
rv350d.h drm/radeon/kms: Convert RS400/RS480 to new init path & fix legacy VGA (V3) 2009-10-02 08:51:46 +10:00
rv515.c drm/radeon/kms: simplify & improve GPU reset V2 2010-04-06 11:21:11 +10:00
rv515d.h drm/radeon/kms: simplify & improve GPU reset V2 2010-04-06 11:21:11 +10:00
rv770.c drm/radeon/kms: fence cleanup + more reliable GPU lockup detection V4 2010-04-06 10:42:45 +10:00
rv770d.h drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00