[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#667799: [3.0 -> 3.2.13 regression] Radeon KMS fails on Radeon X850XT (R480) graphics card



tags 667799 + upstream patch moreinfo
found 667799 linux-2.6/3.3-1~experimental.1
quit

Mike Brodbelt wrote:

>                             Boot continues until a subsequent switch - I think
> this is when the kernel attempts to modeswitch the card. One a 3.0 kernel the
> font visibly changes at this point and boot continues, but on 3.2, all video
> output ceases. The machine completes its boot cycle and is reachable over SSH,
> but console/X display is unreachable
[...]
> 01:00.0 VGA compatible controller [0300]: Advanced Micro Devices [AMD] nee ATI R480 [Radeon X850XT (PCIE)] (Primary) [1002:5d52] (prog-if 00 [VGA controller])

Alex provided a pointer to a patch[1] which I have attached.  If you'd
like to test it, the following instructions should work.

 0. prerequisites

	apt-get install git build-essential

 1. get the kernel history, if you don't already have it

	git clone \
	  git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

 2. fetch point releases

	cd linux
	git remote add stable \
	  git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
	git fetch stable

 3. configure and build

	cp /boot/config-$(uname -r) .config; # current configuration
	lsmod; # make sure the radeon driver is loaded before the next step

	# optional: minimize configuration (only modules that are in use)
	make localmodconfig

	make deb-pkg; # optionally with -j<num> for parallel build
	dpkg -i ../<name of package>; # as root
	reboot
	... test test test ...

   Hopefully it reproduces the problem.  So:

 4. try the patch

	cd linux
	git am -3sc <path to patch>
	make deb-pkg; # maybe with -j4
	dpkg -i ../<name of package>; # as root
	reboot
	... test test test ...

An alternative set of instructions is at [2].

If you get a chance to try it, please report the result to the
upstream bugtracker.  This information can be used to help decide
whether and how quickly to apply the patch to mainline and the stable
trees.

Many thanks,
Jonathan

[1] http://thread.gmane.org/gmane.comp.video.dri.devel/67171
[2] http://kernel-handbook.alioth.debian.org/ch-common-tasks.html#s-common-official
or the corresponding page in the debian-kernel-handbook package
From: Alex Deucher <alexander.deucher@amd.com>
Date: Tue, 3 Apr 2012 17:05:41 -0400
Subject: drm/radeon/kms: fix DVO setup on some r4xx chips

Some r4xx chips have the wrong frev in the
DVOEncoderControl table.  It should always be 1
on r4xx.  Fixes modesetting on DVO on r4xx chips
with the bad frev.

Reported by twied on #radeon.

Addresses https://bugs.freedesktop.org/48422

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
 drivers/gpu/drm/radeon/atombios_encoders.c |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
index 0f8eb4808b40..5351ee12d8f2 100644
--- a/drivers/gpu/drm/radeon/atombios_encoders.c
+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
@@ -246,6 +246,10 @@ atombios_dvo_setup(struct drm_encoder *encoder, int action)
 	if (!atom_parse_cmd_header(rdev->mode_info.atom_context, index, &frev, &crev))
 		return;
 
+	/* some R4xx chips have the wrong frev */
+	if (rdev->family <= CHIP_RV410)
+		frev = 1;
+
 	switch (frev) {
 	case 1:
 		switch (crev) {
-- 
1.7.10


Reply to: