On Mon, Jul 29, 2013 at 3:51 AM, Markus Trippelsdorf
<mar...@trippelsdorf.de> wrote:
> On my test machine Xorg doesn't start anymore when I kexec into a
> 3.11.0-rc3 kernel.

With kexec, dpm doesn't get torn down properly which can result in a
bad hardware state when the driver loads again.  Does the attached
patch help?  It attempts to disable dpm at startup in case it wasn't
torn down properly previously.

Alex
From 8a39fdbfd4002c79ba9ab4eeb778c751fb20e173 Mon Sep 17 00:00:00 2001
From: Alex Deucher <alexander.deuc...@amd.com>
Date: Mon, 29 Jul 2013 09:50:37 -0400
Subject: [PATCH] drm/radeon/dpm: disable dpm before enabling it to deal with
 kexec

Hopefully deal with kexec properly by disabling dpm prior to
enabling it in case dpm has not been torn down properly
previously.

Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
Cc: Markus Trippelsdorf <mar...@trippelsdorf.de>
---
 drivers/gpu/drm/radeon/radeon_pm.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_pm.c b/drivers/gpu/drm/radeon/radeon_pm.c
index 76ffb91..c8e697e 100644
--- a/drivers/gpu/drm/radeon/radeon_pm.c
+++ b/drivers/gpu/drm/radeon/radeon_pm.c
@@ -1193,6 +1193,8 @@ static int radeon_pm_init_dpm(struct radeon_device *rdev)
 	radeon_dpm_init(rdev);
 	rdev->pm.dpm.current_ps = rdev->pm.dpm.requested_ps = rdev->pm.dpm.boot_ps;
 	radeon_dpm_print_power_states(rdev);
+	/* for cases like kexec, disable dpm just in case */
+	radeon_dpm_disable(rdev);
 	radeon_dpm_setup_asic(rdev);
 	ret = radeon_dpm_enable(rdev);
 	mutex_unlock(&rdev->pm.mutex);
-- 
1.7.7.5

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to