drm/radeon/kms: balance asic_reset functions
authorAlex Deucher <alexdeucher@gmail.com>
Tue, 11 Jan 2011 18:36:55 +0000 (13:36 -0500)
committerDave Airlie <airlied@redhat.com>
Mon, 17 Jan 2011 02:21:57 +0000 (12:21 +1000)
commit25b2ec5b643c9ea784e5a51e5e9602cd536965f2
treea6a7f9f7423f2957819d362cadad37a53da5ee0f
parentfd909c3718da3fb8c5c0530f93ae21d85dc31471
drm/radeon/kms: balance asic_reset functions

First, we were calling mc_stop() at the top of the function
which turns off all MC (memory controller) clients,
then checking if the GPU is idle.  If it was idle we
returned without re-enabling the MC clients which would
lead to a blank screen, etc.  This patch checks if the
GPU is idle before calling mc_stop().

Second, if the reset failed, we were returning without
re-enabling the MC clients.  This patch re-enables
the MC clients before returning regardless of whether
the reset was successful or not.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Cc: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/r100.c
drivers/gpu/drm/radeon/r300.c
drivers/gpu/drm/radeon/rs600.c