Bug 13990 - DVI port on port replicator not probed
Summary: DVI port on port replicator not probed
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/radeonhd (show other bugs)
Version: git
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: Luc Verhaegen
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-01-09 08:04 UTC by Alec Habig
Modified: 2008-01-16 09:55 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments
/var/log/Xorg.0.log in the failed case of a dvi connection (39.35 KB, text/plain)
2008-01-09 08:05 UTC, Alec Habig
no flags Details
/var/log/Xorg.0.log for the same monitor using the VGA connector (works) (55.33 KB, text/plain)
2008-01-09 08:06 UTC, Alec Habig
no flags Details
Xorg.0.log using HPD off (241.70 KB, text/plain)
2008-01-14 07:46 UTC, Alec Habig
no flags Details
tarball containing rhd_conntest output (118.27 KB, application/octet-stream)
2008-01-14 08:08 UTC, Alec Habig
no flags Details
verbose Xorg.0.log with the default HPD behavior (58.21 KB, text/x-log)
2008-01-16 07:26 UTC, Alec Habig
no flags Details
verbose Xorg.0.log with HPD swap set (58.43 KB, text/x-log)
2008-01-16 07:27 UTC, Alec Habig
no flags Details
verbose Xorg.0.log with HPD off set (84.88 KB, text/x-log)
2008-01-16 07:29 UTC, Alec Habig
no flags Details

Description Alec Habig 2008-01-09 08:04:12 UTC
Just trying out the radeonhd driver on Fedora 8, using xorg-x11-drv-radeonhd-1.1.0-0.3.20080103git.fc8

It's a Thinkpad T60p in a docking station.  The Doublesight DS-240WB external monitor is detected OK if I use the VGA port, it flickers on X start but is not detected using the DVI port.  (and the image quality is indeed much nicer with dvi!).

The monitor on dvi worked just fine with yesterday's F-7/fglrx installation, and still does in console mode and windows XP.  Something about radeonhd's EDID query  is failing, and trying the suggested HPD swap does not help.  Will attach logfiles in both cases.  Can knowing the EDID block from the VGA case somehow let me force the dvi case?

The T60p's built in panel works great though, and in VGA mode all the dual screen fun I wish to try works just fine.
Comment 1 Alec Habig 2008-01-09 08:05:39 UTC
Created attachment 13615 [details]
/var/log/Xorg.0.log in the failed case of a dvi connection
Comment 2 Alec Habig 2008-01-09 08:06:21 UTC
Created attachment 13616 [details]
/var/log/Xorg.0.log for the same monitor using the VGA connector (works)
Comment 3 Alec Habig 2008-01-14 07:45:01 UTC
Update - using Option "HPD" "off" does allow the external monitor to be detected using the DVI port.  It comes up in the wrong resolution, but I can manually force the 1920x1200 afterwards using xrandr.  

Doing this produces one new error, 

(EE) RADEONHD(0): TMDSAVoltageControl: unhandled chipset: 0x71C4.

which might be expected with HPD off.  Will attach the new logfile, and go read about attaching BIOS dumps to facilitate correcting whatever table is odd for this card (a FireGL 5200 in a T60p).
Comment 4 Alec Habig 2008-01-14 07:46:49 UTC
Created attachment 13710 [details]
Xorg.0.log using HPD off

This option allows detection of the monitor on the DVI port, although it has to be told manually to use the native resolution.
Comment 5 Alec Habig 2008-01-14 08:08:40 UTC
Created attachment 13711 [details]
tarball containing rhd_conntest output

A tarball containing the dumps from rhd_contest (and the stdout's) for the three cases of no external monitor, connected via dvi, and connected via vga outputs.

All done as root from console mode.

The thinkpad is in it's "advanced port replicator", the mini-dock that provides a dvi port (there's not one on the laptop itself).

Please let me know if there's any more information I can provide.
Comment 6 Alec Habig 2008-01-15 11:08:52 UTC
So finally had a chance to sit down and read the source.  In rhd_id.c the chip ID is mapped correctly to a plain T60p and it's mobility FireGL 5200,

  { 0x71C4, 0x17AA, 0x2007, "Lenovo Thinkpad T60p", RHD_CARD_FLAG_NONE, PANEL_B2_VGA_A0 }

The PANEL_B2_VGA_A0 macro sets up the LCD panel and the VGA port, but does not set up the DVI port.  This is consistent with the behavior noted above, and explains why I have to turn HPD off to see the DVI port at all, since the driver is told not to expect one.

The thinkpad port replicator I am using is a fairly dumb unit, I suspect that the knowledge of the DVI port is all in the laptop itself, with only the physical connection hardware on the docking station.  In fact, when not docked, the DVI port is happily detected (just not connected of course).

So changing the macro to PANEL_B2_VGA_A0_DVI_A10 might be appropriate.  This is the only similar option with DVI already in the code, although someone more knowledgeable should look at the logs and dumps above to determine what the actual connection shuold be.

Thus, I think this bug is easy to resolve, simply by adding the appropriate DVI connection to the rhd_id.c file in all cases for the T60p (perhaps also all units in the Lenovo T6* line, all of which can use this dock, but of course the video chips do vary).

(I am also trying to change the bug name from "Doublesight DS-240WB not detected on DVI port" to the more accurate "DVI port on port replicator not probed")
Comment 7 Matthias Hopf 2008-01-16 02:58:35 UTC
Apparently we had the connector information from someone who had not access to all outputs (no DVI capable monitor or so, or - more probably - no docking station), or didn't care to provide the correct information. 
Also, we only understood the major problems with BIOSes much later than the quirks table was introduced.

Can you comment the entry for your T60p out, and run the Xserver with -logverbose 7 again (and attach the logfile)?

After commenting out the entry you can also check whether using
  Option "HPD" "swap"
would just work with your setting.
Comment 8 Alec Habig 2008-01-16 07:25:05 UTC
Not sure what you mean about commenting the entry for my T60p out - I have read the source, but not recompiled it to see if tweaking rhd_id.c will really work.

However, I re-ran X with -logverbose 7 for the three cases of the default HPD on,  HPD swap, and HPD off.  Of the three only HPD off detects the DVI monitor.

I did not re-run with the monitor in the VGA port, as we know that works and is independent of the problem.

Will post the new, more verbose logfiles here as attachments.
Comment 9 Alec Habig 2008-01-16 07:26:20 UTC
Created attachment 13749 [details]
verbose Xorg.0.log with the default HPD behavior

The verbose Xorg.0.log with the default HPD behavior, which does not detect the DVI monitor.
Comment 10 Alec Habig 2008-01-16 07:27:21 UTC
Created attachment 13750 [details]
verbose Xorg.0.log with HPD swap set

The verbose Xorg.0.log with HPD swap set, which also does not detect the DVI monitor
Comment 11 Alec Habig 2008-01-16 07:29:11 UTC
Created attachment 13751 [details]
verbose Xorg.0.log with HPD off set

The verbose Xorg.0.log with HPD off set, which does enable the DVI monitor, although it does not come up in the native resolution, even though I've set it as PreferredMode in xorg.conf.  I can xrandr from the command line to select the proper mode, however.
Comment 12 Matthias Hopf 2008-01-16 07:57:31 UTC
(In reply to comment #8)
> Not sure what you mean about commenting the entry for my T60p out - I have read
> the source, but not recompiled it to see if tweaking rhd_id.c will really work.

Ok, the logverbose 7 was enough in this case. Your BIOS table is actually good, except for the HPD, which isn't supported at all.

We don't have 100% support for that now, I'll come up with something.

In the meantime, I'd like you to test whether DVI actually works (w/o HPD off) if you boot the system with the dvi monitor attached (so that the bios messages are printed there). Nobody really knows how these HPD pin descriptions in the BIOS actually work, and maybe we can get something useful from your BIOS if this works.
Comment 13 Matthias Hopf 2008-01-16 08:13:43 UTC
I just pushed a fix for your problem, please verify that this fixes your issues (no HPD off should be necessary any more).

Luc, the
(EE) RADEONHD(0): TMDSAVoltageControl: unhandled chipset: 0x71C4.
bears exctracting the BIOS values, still. Attachment #13711 [details] includes the rom.
Comment 14 Alec Habig 2008-01-16 08:28:41 UTC
Thanks, will go build and try your fix.

The BIOS always has displayed on the external monitor during boot.  I went into setup and checked the settings, and there is one for "boot display device", which was set to VGA+LCD.  Odd, that it still boot displayed on the DVI output despite this setting.  I changed this to DVI+LCD, but there was no change in either the boot behavior or the lack of response to HPD upon X start.  No real changes to the kernel logs during boot, either (which don't have a lot to say about the video), here's the most relevant bits (aside from the PCI bus exploration to find the card in the first place):

  input: Video Bus as /class/input/input12
  ACPI: Video Device [VID] (multi-head: yes  rom: no  post: no)
  input: Video Bus as /class/input/input13
  ACPI: Video Device [VID1] (multi-head: yes  rom: no  post: no)

Am off to build X and see what happens with your fix, thanks!
Comment 15 Luc Verhaegen 2008-01-16 09:24:20 UTC
TMDSA control value fix pushed. Please close bug when this is verified.
Comment 16 Alec Habig 2008-01-16 09:55:02 UTC
Both commits work great.  I now no longer need HPD off, the DVI port is detected by default, and the TMDSASet no longer throws an error.

Thanks!  Closing the bug.


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.