Bug 34082

Summary: Incorrect / missing device id in radeon_atombios.c
Product: Drivers Reporter: Sampo Laaksonen (sampo.laaksonen)
Component: Video(DRI - non Intel)Assignee: drivers_video-dri
Status: CLOSED CODE_FIX    
Severity: normal CC: alan, florian
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.38+ Tree: Mainline
Regression: No
Attachments: Oops. Should have attached the patch instead of copy/paste.
just add the new id to the existing quirk

Description Sampo Laaksonen 2011-04-29 09:56:46 UTC
I have an Acer TravelMate 5730, and the scenario described around line 434 in radeon_atombios.c applies to this model as well. The problem is that the 5730 has a different device id than 5730G (at least my machine has). Changing the relevant id from 0x95c4 to 0x9591 fixes everything for me.

Without changing the id, HDMI output works only if I turn it off with xrandr and then use DVI (which this laptop doesn't have) and it doesn't even work that well then, I also get lots of invalid EDID spam in dmesg.

...
Apr 28 23:00:26 localhost kernel: [ 3476.326407] [drm:radeon_dvi_detect] *ERROR* DVI-I-1: probed a monitor but no|invalid EDID
Apr 28 23:02:19 localhost kernel: [ 3589.819736] [drm:radeon_dvi_detect] *ERROR* HDMI-A-1: probed a monitor but no|invalid EDID
Apr 28 23:04:02 localhost kernel: [ 3692.619727] [drm:radeon_dvi_detect] *ERROR* DVI-I-1: probed a monitor but no|invalid EDID
Apr 28 23:05:24 localhost kernel: [ 3774.783055] [drm:radeon_dvi_detect] *ERROR* HDMI-A-1: probed a monitor but no|invalid EDID
...

This patch fixes the problems mentioned above. It just copies the entry for 5730G and changes the device id.


diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c
index f5d12fb..d706df5 100644
--- a/drivers/gpu/drm/radeon/radeon_atombios.c
+++ b/drivers/gpu/drm/radeon/radeon_atombios.c
@@ -451,6 +451,18 @@ static bool radeon_atom_apply_quirks(struct drm_device *dev,
 		}
 	}
 
+  /* Same as above, but for Acer Travelmate 5730 */
+	if ((dev->pdev->device == 0x9591) &&
+	    (dev->pdev->subsystem_vendor == 0x1025) &&
+	    (dev->pdev->subsystem_device == 0x013c)) {
+		if ((*connector_type == DRM_MODE_CONNECTOR_DVII) &&
+		    (supported_device == ATOM_DEVICE_DFP1_SUPPORT)) {
+			/* actually it's a DVI-D port not DVI-I */
+			*connector_type = DRM_MODE_CONNECTOR_DVID;
+			return false;
+		}
+	}
+
 	/* XFX Pine Group device rv730 reports no VGA DDC lines
 	 * even though they are wired up to record 0x93
 	 */
Comment 1 Sampo Laaksonen 2011-04-29 10:02:26 UTC
Created attachment 55892 [details]
Oops. Should have attached the patch instead of copy/paste.
Comment 2 Alex Deucher 2011-04-29 16:20:38 UTC
Created attachment 55902 [details]
just add the new id to the existing quirk

Here's the patch I'll be sending to Dave.  Thanks!
Comment 3 Florian Mickler 2011-05-10 06:34:30 UTC
A patch referencing this bug report has been merged in v2.6.39-rc7:

commit 4f87af46107499415afd238be104587b5a9d7ac3
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Wed May 4 11:41:47 2011 -0400

    drm/radeon/kms: add pci id to acer travelmate quirk for 5730