Bug 19943 - HD3650: Output defaults to HDMI, can't switch to DVI
Summary: HD3650: Output defaults to HDMI, can't switch to DVI
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/Radeon (show other bugs)
Version: 7.4 (2008.09)
Hardware: Other All
: medium normal
Assignee: xf86-video-ati maintainers
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-02-03 23:32 UTC by Scott Bronson
Modified: 2009-09-11 14:35 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments
When HDMI-0 is ignored, DVI-0 disappears entirely (19.22 KB, application/x-trash)
2009-02-03 23:32 UTC, Scott Bronson
no flags Details
When HDMI-0 is NOT ignored, DVI-0 is present but unused (43.43 KB, patch)
2009-02-03 23:36 UTC, Scott Bronson
no flags Details | Splinter Review
fix connector type (762 bytes, patch)
2009-02-04 00:12 UTC, Alex Deucher
no flags Details | Splinter Review
Xorg.0.log of HD2400Pro (38.09 KB, text/plain)
2009-05-18 11:40 UTC, Ancoron
no flags Details
HD2400Pro xorg.conf (2.57 KB, text/plain)
2009-05-18 11:42 UTC, Ancoron
no flags Details
Radeon HD2400Pro "lspci -vvnn" (22.21 KB, text/plain)
2009-05-18 11:42 UTC, Ancoron
no flags Details
BIOS of the Radeon HD2400Pro (60.00 KB, application/octet-stream)
2009-05-19 03:51 UTC, Ancoron
no flags Details
fix connector type (1.48 KB, patch)
2009-05-27 12:34 UTC, Alex Deucher
no flags Details | Splinter Review
Xorg.0.log with patch applied (58.24 KB, text/plain)
2009-06-04 08:37 UTC, Ancoron
no flags Details
Current xorg.conf for dual-head (2.59 KB, text/plain)
2009-06-06 05:33 UTC, Ancoron
no flags Details
re-add quirks for asus boards that report dvi as hdmi (1.06 KB, patch)
2009-08-03 15:26 UTC, Alex Deucher
no flags Details | Splinter Review

Description Scott Bronson 2009-02-03 23:32:29 UTC
Created attachment 22561 [details]
When HDMI-0 is ignored, DVI-0 disappears entirely

The radeon driver selects the HDMI-0 output instead of DVI-0 and I can't figure out how to correct it!  My video card (Asus EAH3650 512MB PCI-E) is connected to my monitor via Dual-Link DVI.

This happens in Ubuntu Intrepid and Jaunty, and Fedora 10.

When in 1280x800 mode, the card's HDMI-0 displays on DVI connector just fine.  But when in 2560x1600 mode, presumably because of the dual link, it's completely garbled.

  bronson@eva-jaunty:~$ xrandr -q
  Screen 0: minimum 320 x 200, current 1280 x 800, maximum 2560 x 1600
  HDMI-0 connected 1280x800+0+0 (normal left inverted right x axis y axis) 646mm x 406mm
     2560x1600      59.9  
     1280x800       59.9* 
  DVI-0 disconnected (normal left inverted right x axis y axis)

How can I tell Radeon to ignore the HDMI-0 output and only use DVI-0?

I tried using the following xorg.conf:

    Section "Device"
        Identifier      "Video Card"
        Driver          "radeon"
        Option          "Monitor-DVI-0" "Good DVI"
        Option          "Monitor-HDMI-0" "Bogus HDMI"
    EndSection

    Section "Monitor"
        Identifier      "Bogus HDMI"
        Option          "Ignore"        "true"
    EndSection

    Section "Monitor"
        Identifier      "Good DVI"
        Option          "Enable"        "true"
        Modeline        "2560x1600_60"  268.00 2560 2608 2640 2720 1600 1603 1609 1646 +hsync +vsync
        Option          "PreferredMode" "2560x1600_60"
    EndSection

    Section "Screen"
        Identifier      "Default Screen"
        Device          "Video Card"
    EndSection

But, apparently when the HDMI output is ignored, the DVI output disappears altogether!  (see attached log file)

Is there any way to tell the radeon driver to use the DVI output?
Comment 1 Scott Bronson 2009-02-03 23:35:40 UTC
When I comment out HDMI-0's "Ingore" "true" but mark the DVI monitor preferred, DVI shows up but the card still uses HDMI:

(II) RADEON(0): Output HDMI-0 using initial mode 2560x1600

I've attached the HDMI-0 not ignored logfile.
Comment 2 Scott Bronson 2009-02-03 23:36:35 UTC
Created attachment 22562 [details] [review]
When HDMI-0 is NOT ignored, DVI-0 is present but unused
Comment 3 Alex Deucher 2009-02-04 00:12:11 UTC
Created attachment 22564 [details] [review]
fix connector type

This patch should fix the connector type.
Comment 4 Alex Deucher 2009-02-04 00:15:09 UTC
Please try radeon git master and see if what works any better.
Comment 5 Ancoron 2009-05-18 11:38:34 UTC
^^ to which release version does this fix apply?

I have a similar effect on my Radeon HD2400Pro:

Connected a Dell 3007WFP at the Dual-Link-DVI connector and a Iiyama Vision Master Pro 510 (22" CRT) to the VGA connector. During boot of Kubuntu Jaunty both monitors show the loading screen and also both monitors are used when in text mode (I guess it is cloned automatically by the card itself). But as soon as the KDM comes up only the big Dell with 2560x1600 comes up, the CRT goes off.

In the Xorg.0.log I read:

...
  XRANDR name: HDMI-0
  Connector: HDMI-B
  DFP1: INTERNAL_KLDSCP_TMDS1
  DDC reg: 0x7e50
...
(II) RADEON(0): Output: HDMI-0, Detected Monitor Type: 0
invalid output device for dac detection
finished output detect: 0
...

So I guess here (as the card has a real HDMI connector between the DVI-I and the VGA) the driver doesn't recognize the VGA connector at all and invalidates the CRT monitor before all other things.

I also tried the FGLRX driver and with that I can display something on the second monitor, but the configuration is a mess and requires various xrandr calls (unable to create a working correct layout using xorg.conf) and it is not able to exceed 60Hz refresh rate on the CRT which is really bad.
Comment 6 Ancoron 2009-05-18 11:40:35 UTC
Created attachment 25971 [details]
Xorg.0.log of HD2400Pro
Comment 7 Ancoron 2009-05-18 11:42:15 UTC
Created attachment 25972 [details]
HD2400Pro xorg.conf

In addition to the non-working connector the big virtual line slows down rendering performance dramatically.
Comment 8 Ancoron 2009-05-18 11:42:49 UTC
Created attachment 25973 [details]
Radeon HD2400Pro "lspci -vvnn"
Comment 9 Alex Deucher 2009-05-18 11:43:56 UTC
(In reply to comment #5)
> I have a similar effect on my Radeon HD2400Pro:

Please attach your video bios.

To get your video bios:
(as root)
cd /sys/bus/pci/devices/<pci bus id of card>/
echo 1 > rom
cat rom > /tmp/vbios.rom
echo 0 > rom
Comment 10 Ancoron 2009-05-19 03:51:13 UTC
Created attachment 25996 [details]
BIOS of the Radeon HD2400Pro

This is the BIOS of my Radeon HD2400Pro.
Comment 11 Ancoron 2009-05-25 08:45:24 UTC
Just updated the radeon driver from 6.12.1 (ubuntu jaunty repo) to 6.12.2.99 (xorg-edgers ubuntu ppa repo) and noticed a slight change.

The Xorg.0.log no longer says "invalid output device for dac detection". It just says nothing:

...
(II) RADEON(0): Output HDMI-0 using monitor section secondary
(**) RADEON(0): Option "PreferredMode" "1600x1200@85"
(**) RADEON(0): Option "RightOf" "primary"
(II) RADEON(0): I2C bus "HDMI-0" initialized.
(II) RADEON(0): Output DVI-0 using monitor section primary
(**) RADEON(0): Option "PreferredMode" "2560x1600@60"
(II) RADEON(0): I2C bus "DVI-0" initialized.
(II) RADEON(0): Port0:
  XRANDR name: HDMI-0
  Connector: HDMI-B
  DFP1: INTERNAL_KLDSCP_TMDS1
  DDC reg: 0x7e50
(II) RADEON(0): Port1:
  XRANDR name: DVI-0
  Connector: DVI-I
  CRT1: INTERNAL_KLDSCP_DAC1
  DFP2: INTERNAL_LVTM1
  DDC reg: 0x7e40
(II) RADEON(0): I2C device "HDMI-0:E-EDID segment register" registered at address 0x60.
(II) RADEON(0): I2C device "HDMI-0:ddc2" registered at address 0xA0.
(II) RADEON(0): Output: HDMI-0, Detected Monitor Type: 0
finished output detect: 0
(II) RADEON(0): I2C device "DVI-0:E-EDID segment register" registered at address 0x60.
(II) RADEON(0): I2C device "DVI-0:ddc2" registered at address 0xA0.
(II) RADEON(0): Output: DVI-0, Detected Monitor Type: 3
(II) RADEON(0): EDID data from the display on output: DVI-0 ----------------------
(II) RADEON(0): Manufacturer: DEL  Model: 4016  Serial#: 1194471476
(II) RADEON(0): Year: 2007  Week: 7
(II) RADEON(0): EDID Version: 1.3
(II) RADEON(0): Digital Display Input
...


Still the additional "Sub-D" connector is missing from the outputs completely.
Comment 12 Alex Deucher 2009-05-27 12:34:16 UTC
Created attachment 26262 [details] [review]
fix connector type

This patch (against xf86-video-ati git master) should fix your board.
Comment 13 Ancoron 2009-06-04 02:47:58 UTC
(In reply to comment #12)
> This patch (against xf86-video-ati git master) should fix your board.

I finally got back to work and just tested your patch and it works straight forward. The display comes up properly and exactly the way I have configured in xorg.conf.

The only thing that disturbs me a bit is that caused by the huge virtual screen (4160x1600) the rendering (even if it is completely software until now) is degraded a lot. It is still usable but it even interferes mouse movement when the system is under fire.


Comment 14 Alex Deucher 2009-06-04 07:05:57 UTC
(In reply to comment #13)
> (In reply to comment #12)
> > This patch (against xf86-video-ati git master) should fix your board.
> 
> I finally got back to work and just tested your patch and it works straight
> forward. The display comes up properly and exactly the way I have configured in
> xorg.conf.

Excellent.  I've pushed the patch.

> 
> The only thing that disturbs me a bit is that caused by the huge virtual screen
> (4160x1600) the rendering (even if it is completely software until now) is
> degraded a lot. It is still usable but it even interferes mouse movement when
> the system is under fire.
> 

Is acceleration still enabled?  Can you attach an updated log?
Comment 15 Ancoron 2009-06-04 08:37:51 UTC
Created attachment 26436 [details]
Xorg.0.log with patch applied

(In reply to comment #14)
> Is acceleration still enabled?  Can you attach an updated log?

All messages seem to be the same as before.

Some additional thoughts that came to mind by reading some of the log messages:

Why is it that EDID information is not available for the VGA port?
--------------------------------------------------------------------------------
...
(II) RADEON(0): I2C device "VGA-0:E-EDID segment register" registered at address 0x60.
(II) RADEON(0): I2C device "VGA-0:ddc2" registered at address 0xA0.
(II) RADEON(0): Output: VGA-0, Detected Monitor Type: 0
Dac detection success
finished output detect: 1
...
--------------------------------------------------------------------------------

Somehow the messages about the connectors are messed up (HDMI-0 should be related to VGA-0 and not to DVI-0):
--------------------------------------------------------------------------------
...
(II) RADEON(0): Output HDMI-0 using monitor section primary
(**) RADEON(0): Option "PreferredMode" "2560x1600@60"
(**) RADEON(0): Option "Position" "1600 0"
(II) RADEON(0): I2C bus "HDMI-0" initialized.
(II) RADEON(0): Output VGA-0 using monitor section secondary
(**) RADEON(0): Option "PreferredMode" "1600x1200@85"
(**) RADEON(0): Option "Position" "0 400"
(**) RADEON(0): Option "LeftOf" "primary"
(II) RADEON(0): I2C bus "VGA-0" initialized.
(II) RADEON(0): Output DVI-0 using monitor section primary
(II) RADEON(0): I2C bus "DVI-0" initialized.
...
--------------------------------------------------------------------------------

Thanx
Comment 16 Alex Deucher 2009-06-04 10:12:18 UTC
(In reply to comment #15)

> Why is it that EDID information is not available for the VGA port?
> 

Not sure.  Does the monitor provide an edid?  Is the driver able to get an edid from that monitor on the DVI port?  

> Somehow the messages about the connectors are messed up (HDMI-0 should be
> related to VGA-0 and not to DVI-0):

Probably something in your config file.  Can you attach your current one?
Comment 17 Ancoron 2009-06-06 05:33:32 UTC
Created attachment 26489 [details]
Current xorg.conf for dual-head

(In reply to comment #16)
> Not sure.  Does the monitor provide an edid?  Is the driver able to get an edid
> from that monitor on the DVI port?  

Well, I tried and it doesn't. So the missing EDID dump is conpletely correct here. :) Sorry, had thought about that option myself.

> Probably something in your config file.  Can you attach your current one?

As attached the current working xorg.conf where I don't specify HDMI-0 any longer. The issue in the log where it says that HDMI-0 uses the "primary" monitor section confuses me a bit as the card is supposed to either provide output on HDMI or on the VGA not both at the same time and so the DVI connector is the one that doesn't "share" with another connector. The port listing lists the connectors correctly attached to their resources:

(II) RADEON(0): Port0:
  XRANDR name: HDMI-0
  Connector: HDMI-B
  DFP1: INTERNAL_KLDSCP_TMDS1
  DDC reg: 0x7e50
(II) RADEON(0): Port1:
  XRANDR name: VGA-0
  Connector: VGA
  CRT2: INTERNAL_KLDSCP_DAC2
  DDC reg: 0x7e50              <-- same as Port0 (HDMI-0)
(II) RADEON(0): Port2:
  XRANDR name: DVI-0
  Connector: DVI-I
  CRT1: INTERNAL_KLDSCP_DAC1
  DFP2: INTERNAL_LVTM1
  DDC reg: 0x7e40


Or is it just a mistake in my interpretion of the driver output? I don't some HDMI-capable display to test that issue here so I can't verify if the HDMI-0 output is working correctly.
Comment 18 Ancoron 2009-06-26 04:54:22 UTC
With commit 96581746eea2f4e29a04f9266ec9649f25480424 of 'src/radeon_atombios.c' in git master my problem reintroduced, as my card gets identified with a HDMI type B connector and so doesn't get into the appropriate if-clause to enable the VGA output.

I think we need a special hook for cards like mine. However it seems to be not very easy to reliably determine which cards do have what connectors exactly (e.g. here we have another one like mine that from a completely different vendor: http://www.gecube.com/products-detail.php?prod_cat=22&prod_id=66443).

my PCI-IDs:
- sub-vendor: 18bc
- sub-device: 3550

Regards,

Ancoron
Comment 19 Ancoron 2009-06-26 06:03:03 UTC
After reading a lot about different versions of the HD2400 PRO from many different vendors I came to the conclusion that all those cards, whether PCI-e or AGP, Low-Profile or not, have one DVI-D (DualLink), one HDMI, one VGA and one S-Video connector on their boards. E.g. there is no version with two DVI ports (or I couldn't find any).

The only difference is which of the on-board connectors are provided on the back panel. So a possible solution could be to enable all 4 connectors.

The PCI-IDs for the HD2400 PRO are:
- vendor: 1002
- device: 94c3
Comment 20 Alex Deucher 2009-07-29 00:35:15 UTC
This should be fixed now in git:
2b9a5be3bb22fad1d52ec9eea7733c5e956250b7
Comment 21 Jerome Glisse 2009-08-02 09:20:20 UTC
Closing the bug, reopen if the lastest git with the aforementioned commit doesn't help.
Comment 22 Kevin DeKorte 2009-08-03 07:46:40 UTC
commit 2b9a5be3bb22fad1d52ec9eea7733c5e956250b7 breaks the connector table on my card.

Without this patch, I get DVI-0 and DVI-1, which is correct. With the patch I get HDMI-0, VGA-0, and DVI-0. Which is weird. 

I can attach a Xorg.0.log if needed.
Comment 23 Kevin DeKorte 2009-08-03 07:48:13 UTC
Oh, I have a

01:00.0 VGA compatible controller: ATI Technologies Inc Mobility Radeon HD 3600 Series (prog-if 00 [VGA controller])
	Subsystem: ASUSTeK Computer Inc. Device 01da
	Flags: bus master, fast devsel, latency 0, IRQ 16
	Memory at d0000000 (64-bit, prefetchable) [size=256M]
	Memory at fe9e0000 (64-bit, non-prefetchable) [size=64K]
	I/O ports at c000 [size=256]
	[virtual] Expansion ROM at fe900000 [disabled] [size=128K]
	Capabilities: [50] Power Management version 3
	Capabilities: [58] Express Legacy Endpoint, MSI 00
	Capabilities: [a0] MSI: Mask- 64bit+ Count=1/1 Enable-
	Capabilities: [100] Vendor Specific Information <?>
	Kernel driver in use: radeon
Comment 24 Ancoron 2009-08-03 14:35:29 UTC
Well, commit 2b9a5be3bb22fad1d52ec9eea7733c5e956250b7 fixed the connectors on my card, before I had DVI-0 and DVI-1 and no HDMI-0 (found that out lately).

So it is the complete reverse of the behavior that Kevin describes on his HD36xx.
Comment 25 Alex Deucher 2009-08-03 14:55:07 UTC
The issue is that some vendors do HMDI + VGA while others do DVI-I.  Unfortunately, they use the same connector tables, so we don't know which configuration applies to which boards.  As it currently stands, the both boards will be fully functional, the outputs just won't match up to the physical connectors, e.g., if your board has a DVI-I connector, the digital part will show up as HDMI-0 and the analog part will show up as VGA-0.  I suppose we should just start adding quirks since this seems to be more widespread than I thought.
Comment 26 Ancoron 2009-08-03 15:03:00 UTC
Yes, that's my understanding too.

The connectors table internally is the same on all boards, but in the end it is up to the actual manufacturer what interfaces get connected to the specified pins.

That's one of the reasons why I sometimes miss my Matrox. :|

So if you start to add more quirks there should be some common place or some infrastructure in the code to easily add one (even for those stupid Java devs like me). :)
Comment 27 Alex Deucher 2009-08-03 15:12:49 UTC
(In reply to comment #26)
> Yes, that's my understanding too.
> 
> The connectors table internally is the same on all boards, but in the end it is
> up to the actual manufacturer what interfaces get connected to the specified
> pins.

The connector tables are not the same on every board, they are specific to each oem board.  The tables for most boards are correct, it's just a few boards that have an unclear mapping.
Comment 28 Ancoron 2009-08-03 15:20:29 UTC
OK, that explains why there aren't much more bug reports as this one. :)
Comment 29 Alex Deucher 2009-08-03 15:26:47 UTC
Created attachment 28323 [details] [review]
re-add quirks for asus boards that report dvi as hdmi

(In reply to comment #22)
> commit 2b9a5be3bb22fad1d52ec9eea7733c5e956250b7 breaks the connector table on
> my card.

Does this patch fix it?
Comment 30 Kevin DeKorte 2009-08-04 12:13:23 UTC
Alex, yes the quirks correct my connector problem.
Comment 31 Kevin DeKorte 2009-09-09 07:09:28 UTC
Can we add the ASUS quirk to the drm-next tree. It seems to be missing from there as I get HDMI-0 and DVI-0 as my connectors when using KMS.
Comment 32 Alex Deucher 2009-09-11 14:35:56 UTC
(In reply to comment #31)
> Can we add the ASUS quirk to the drm-next tree. It seems to be missing from
> there as I get HDMI-0 and DVI-0 as my connectors when using KMS.
> 

Done.


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.