Bug 35934

Summary: xrandr doesn't show resolutions provided by EDID
Product: xorg Reporter: Rune K. Svendsen <runesvend>
Component: Driver/RadeonAssignee: xf86-video-ati maintainers <xorg-driver-ati>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium CC: hramrach, runesvend
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Xorg.0.log
none
Outpuf of 'dmesg' with kernel option "drm.debug=0xe" added
none
tv section of xorg log + xrandr
none
Output of 'xrandr --verbose'
none
Xorg.0.log without xorg.conf none

Description Rune K. Svendsen 2011-04-03 11:47:36 UTC
Created attachment 45192 [details]
Xorg.0.log

I have a primary CRT monitor connected to the DVI-0 port of a Radeon HD 3870 graphics card. To this card's DVI-1 port I have connected a flat screen TV using a HDMI adapter. According to its manual, this TV is capable of running 1080i and 720p but xrandr doesn't show these resolutions:

	Screen 0: minimum 320 x 200, current 2624 x 1200, maximum 8192 x 8192
	DVI-0 connected 1600x1200+0+0 (normal left inverted right x axis y axis) 400mm x 300mm
	   1600x1200      85.0*+
	   1920x1440      75.0  
	   1856x1392      75.0  
	   1792x1344      75.0  
	   1280x1024      85.0     75.0  
	   1152x864       75.0  
	   1024x768       85.0     75.1     70.1     60.0  
	   832x624        74.6  
	   800x600        72.2     75.0     60.3     56.2  
	   640x480        72.8     75.0     66.7     60.0  
	   720x400        87.8     70.1  
	DIN disconnected (normal left inverted right x axis y axis)
	DVI-1 connected 1024x768+1600+432 (normal left inverted right x axis y axis) 640mm x 360mm
	   1024x768       60.0* 
	   800x600        60.3  
	   640x480        60.0 

When I run the xrandr command, a list of modes (from EDID) is printed to Xorg.0.log. When, for example, the 1080i mode that is printed to the xorg log is added manually with xrandr, it works fine. But these modes aren't listed by default by xrandr.

I'm using xserver-xorg-video-radeon compiled from git version 20110307.

I am attaching Xorg.0.log and the output of dmesg with the kernel option "drm.debug=0xe" added.
Comment 1 Rune K. Svendsen 2011-04-03 11:54:56 UTC
Created attachment 45193 [details]
Outpuf of 'dmesg' with kernel option "drm.debug=0xe" added

It should be noted that the flat screen TV is made by Philips (as shown in Xorg.0.log: "Monitor name: Philips FTV") and that the EDID vendor ID is "PHL".

The strange thing is that drm doesn't seem to detect the EDID modes, all it prints to dmesg are the modes that xrandr also claims to only have: "1024x768", "800x600" and "640x480". But X gets the correct modes fine - they are added to the Xorg log file each time I run xrandr.
Comment 2 Andy Furniss 2011-04-03 12:27:54 UTC
> When I run the xrandr command, a list of modes (from EDID) is printed to
> Xorg.0.log. When, for example, the 1080i mode that is printed to the xorg log
> is added manually with xrandr, it works fine. But these modes aren't listed by
> default by xrandr.

I also have this problem with my TV - it's only KMS that doesn't add all the modes, with UMS they are shown OK.
Comment 3 Alex Deucher 2011-04-03 16:51:28 UTC
Make sure your kernel has this commit otherwise interlaced modes won't get added:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=c49948f4bd39e27dd06a1cdb0c3743ca2a734f5e

Also check sysfs to see if the kernel is sees the modes or if X is rejecting them:
cat /sys/class/drm/<connector>/modes
Comment 4 Rune K. Svendsen 2011-04-04 02:27:36 UTC
I just installed a 2.6.38-kernel and now the 1080i mode at 25 Hz is auto detected:

rune@runescomp:~$ xrandr
[...cut ...]
DVI-1 connected (normal left inverted right x axis y axis)
   1920x1080i     25.0 +
   1024x768       60.0  
   800x600        60.3  
   640x480        60.0  

rune@runescomp:~$ cat /sys/class/drm/card0-DVI-I-2/modes
1920x1080i
1024x768
800x600
640x480

So we're seeing progress!
Comment 5 Andy Furniss 2011-04-04 09:57:19 UTC
(In reply to comment #0)

>When, for example, the 1080i mode that is printed to the xorg log
> is added manually with xrandr, it works fine. But these modes aren't listed by
> default by xrandr.

Your modes look similar to my TV - I thought that 1080i was OK at first glance, but then I noticed that parts of bottom line are displayed at the top X3.

I am going to file a bug (lower res i modes also have colour problems).

Assuming you have overscan off on the tv, could you test please, by moving a window around over the bottom of the screen to see if you also see this.
Comment 6 Andy Furniss 2011-04-04 15:03:25 UTC
Created attachment 45243 [details]
tv section of xorg log + xrandr

(In reply to comment #3)

> Also check sysfs to see if the kernel is sees the modes or if X is rejecting
> them:
> cat /sys/class/drm/<connector>/modes

For me the kernel sees the same few modes as xrandr.

These are referred to as probed modes in xorg log, the others as DDC gathered.
Comment 7 Rune K. Svendsen 2011-04-08 11:43:38 UTC
Created attachment 45429 [details]
Output of 'xrandr --verbose'

(In reply to comment #5)
> Assuming you have overscan off on the tv, could you test please, by moving a
> window around over the bottom of the screen to see if you also see this.
Overscan seems to be on for the TV, and I'm not sure how to turn it off. The manual doesn't mention anything about overscan. I have tried adjusting the "underscan"/"underscan vborder"/"underscan hborder" properties using xrandr but they seem to have no effect.

I'm including the verbose output of xrandr in case this is helpful.
Comment 8 Rune K. Svendsen 2011-04-09 13:00:31 UTC
Created attachment 45447 [details]
Xorg.0.log without xorg.conf

I'm attaching an Xorg.0.log of the system starting up with both the CRT and the TV connected but without any xorg.conf file.
Comment 9 Andy Furniss 2011-04-16 04:17:58 UTC
(In reply to comment #7)
> Created an attachment (id=45429) [details]
> Output of 'xrandr --verbose'
> 
> (In reply to comment #5)
> > Assuming you have overscan off on the tv, could you test please, by moving a
> > window around over the bottom of the screen to see if you also see this.
> Overscan seems to be on for the TV, and I'm not sure how to turn it off. The
> manual doesn't mention anything about overscan. I have tried adjusting the
> "underscan"/"underscan vborder"/"underscan hborder" properties using xrandr but
> they seem to have no effect.

Sorry for the delayed response.

It's possible I suppose there may be a setting hidden away somewhere - but then I don't know what TV you have.

If you can't see the edge of your screen then you won't be able to see what I mean - I filed a bug for it.

https://bugs.freedesktop.org/show_bug.cgi?id=35970

I can confirm, that turning on underscan with xrandr does not work for interlaced modes, it does work for progressive modes.
Comment 10 Alex Deucher 2011-04-16 12:56:05 UTC
It looks like the kernel edid parser doesn't parse edid extension blocks while X does.
Comment 11 Rune K. Svendsen 2011-04-17 11:27:00 UTC
(In reply to comment #10)
> It looks like the kernel edid parser doesn't parse edid extension blocks while
> X does.

Ah, I see. Well good that you seem to know what the issue is. So this bug is more of a feature request than a bug? I'm guessing this parsing isn't exactly trivial to implement...
Comment 12 Alex Deucher 2012-04-25 06:07:15 UTC
Is this still an issue with a newer driver/kernel?  Recent kernels should now pull additional hdmi modes from the edid.  Please re-open if you are still having an issue.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.