Bug 12546 - Problems with xrandr dualhead and docking station
Summary: Problems with xrandr dualhead and docking station
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/Radeon (show other bugs)
Version: 7.3 (2007.09)
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: xf86-video-ati maintainers
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-09-24 05:52 UTC by Alexander Weber
Modified: 2007-12-13 02:36 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments
DDC and EDID activated (52.22 KB, text/x-log)
2007-09-24 05:53 UTC, Alexander Weber
no flags Details
EDID dectivated (79.05 KB, text/x-log)
2007-09-24 05:54 UTC, Alexander Weber
no flags Details
NoDDC (45.62 KB, text/x-log)
2007-09-24 05:54 UTC, Alexander Weber
no flags Details
the xorg.conf (5.59 KB, application/octet-stream)
2007-09-24 05:55 UTC, Alexander Weber
no flags Details
lot of redrawing errors (72.85 KB, image/png)
2007-09-24 06:36 UTC, Alexander Weber
no flags Details

Description Alexander Weber 2007-09-24 05:52:40 UTC
All is done with driver 1:6.7.194-1, but behavior is (almost) the same for 1:6.7.193-1. xorg.conf an (hopefully) all needed logs are attached.

The laptop (DELL latitude d810) is started inside its docking station (with the lid closed). At docking station two Dell UltraSharp 2000FP (20,1" Active Matrix TFT LCD) are connected. One via DVI-port, the other on the VGA-port.

1. distortion with lid closed
=============================
The (for kdm) login screen is disorted - the monitor shows 1600x1200 and the displayed elements are arranged for (laptops LVDS size) 1680x1050. The lid state is reported correctly
cat /proc/acpi/button/lid/LID/state
state:      closed
but the driver seems not to take care of that.

xrandr
Screen 0: minimum 320 x 200, current 1680 x 1200, maximum 3200 x 1200
VGA-0 connected (normal left inverted right x axis y axis)
   1600x1200      60.0 +   59.9
   1280x1024      75.0     59.9
   1152x864       74.8
   1024x768       75.1     60.0
   800x600        75.0     60.3
   640x480        75.0     60.0
   720x400        70.1
DVI-0 connected 1600x1200+0+0 (normal left inverted right x axis y axis) 367mm x 275mm
   1600x1200      60.0*+   59.9
   1280x1024      75.0     59.9
   1152x864       74.8
   1024x768       75.1     60.0
   800x600        75.0     60.3
   640x480        75.0     60.0
   720x400        70.1
LVDS connected 1680x1050+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1680x1050      60.0*+
   1280x800       60.0
   1280x768       60.0
   1024x768       60.0
   800x600        60.3
   640x480        59.9
S-video disconnected (normal left inverted right x axis y axis)

The screen looks like an overlayed (repeating) desktop
A "xrandr --output LVDS --off" corrects the disortion for the current session.


2. getting both monitors to work (as it was with mergedFB)
==========================================================
I have tried various combinations how to get them (both) to work at the same time. With DDC activated I get following result:
xrandr
Screen 0: minimum 320 x 200, current 1600 x 1200, maximum 3200 x 1200
VGA-0 connected (normal left inverted right x axis y axis)
   1600x1200      60.0 +   59.9
   1280x1024      75.0     59.9
   1152x864       74.8
   1024x768       75.1     60.0
   800x600        75.0     60.3
   640x480        75.0     60.0
   720x400        70.1
DVI-0 connected 1600x1200+0+0 (normal left inverted right x axis y axis) 367mm x 275mm
   1600x1200      60.0*+   59.9
   1280x1024      75.0     59.9
   1152x864       74.8
   1024x768       75.1     60.0
   800x600        75.0     60.3
   640x480        75.0     60.0
   720x400        70.1
LVDS connected (normal left inverted right x axis y axis)
   1680x1050      60.0 +
   1280x800       60.0
   1280x768       60.0
   1024x768       60.0
   800x600        60.3
   640x480        59.9
S-video disconnected (normal left inverted right x axis y axis)

Which seems to be quite normal. But I cannot start the VGA-connected monitor:

xrandr --output VGA-0 --left-of DVI-0 --mode 1600x1200

...
(WW) EDID preferred timing clock 162.00MHz exceeds claimed max 160MHz, fixing
(II) RADEON(0): DDC Type: 3, Detected Monitor Type: 1
(II) RADEON(0): EDID data from the display on connector: VGA ----------------------
...
(WW) RADEON(0): DDC2/I2C is not properly initialized
(II) RADEON(0): DDC Type: 0, Detected Monitor Type: 0
(II) RADEON(0): Detected Monitor Type: 2
in RADEONProbeOutputModes
(II) RADEON(0): No valid mode specified, force to native mode
(II) RADEON(0): Total number of valid FP mode(s) found: 1

the VGA-0 stays black  with some flickering.


Maybe the EDID information is causing that - so i added
   Option          "IgnoreEDID"            "On"
to xorg.conf.

(II) RADEON(0): DDC Type: 0, Detected Monitor Type: 0
(II) RADEON(0): Detected Monitor Type: 2
in RADEONProbeOutputModes
(II) RADEON(0): Added native panel mode: 1680x1050
init memmap
init common
init crtc1
init pll1
restore memmap
(II) RADEON(0): RADEONRestoreMemMapRegisters() :
(II) RADEON(0):   MC_FB_LOCATION   : 0xd7ffd000
(II) RADEON(0):   MC_AGP_LOCATION  : 0xffffffc0
restore common
restore crtc1
restore pll1
finished PLL1
restore dac

and VGA-0 looks like old crt's with wrong Hz values (some horizontal stripes, but mainly black)

So step #3 is NoDDC to let me have control which modeline is used for monitor setting. Now DVI-0 stays black, but VGA-0 becomes to life (with same disortion problem in #1).
switching to vt-1 and back to X now I can get both monitors to work (VGA-0 @ 1600x1200 and DVI-0 @ 1680x1050).

xrandr
Screen 0: minimum 320 x 200, current 1680 x 1200, maximum 3200 x 1200
VGA-0 connected 1600x1200+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1600x1200      60.0*
   1280x800       60.0
   1280x768       60.0
   1024x768       60.0
   800x600        60.3
   640x480        59.9
DVI-0 disconnected (normal left inverted right x axis y axis)
LVDS connected 1680x1050+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1680x1050      60.0*+
   1280x800       60.0
   1280x768       60.0
   1024x768       60.0
   800x600        60.3
   640x480        59.9
S-video disconnected (normal left inverted right x axis y axis)

Whooh - strange. DVI-0 is disconnected but shows what is on LVDS.

ok, lets switch off LVDS
xrandr --output LVDS --off
and DVI-0 is entering darkness.
xrandr
Screen 0: minimum 320 x 200, current 1600 x 1200, maximum 3200 x 1200
VGA-0 connected 1600x1200+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1600x1200      60.0*
   1280x800       60.0
   1280x768       60.0
   1024x768       60.0
   800x600        60.3
   640x480        59.9
DVI-0 disconnected (normal left inverted right x axis y axis)
LVDS connected (normal left inverted right x axis y axis)
   1680x1050      60.0 +
   1280x800       60.0
   1280x768       60.0
   1024x768       60.0
   800x600        60.3
   640x480        59.9
S-video disconnected (normal left inverted right x axis y axis)

now i want to have DVI-0 @ 1600x1200
xrandr --output DVI-0 --right-of VGA-0 --mode 1600x1200
xrandr: cannot find mode 1600x1200

ok, no ddc so it does not have the mode (but the modeline is configured in xorg.conf)

xrandr --addmode DVI-0 1600x1200
and it shows
DVI-0 disconnected (normal left inverted right x axis y axis)
   1600x1200      60.0

ok, now lets activate it:
xrandr --output DVI-0 --right-of VGA-0 --mode 1600x1200
and
xrandr
Screen 0: minimum 320 x 200, current 3200 x 1200, maximum 3200 x 1200
VGA-0 connected 1600x1200+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1600x1200      60.0*
   1280x800       60.0
   1280x768       60.0
   1024x768       60.0
   800x600        60.3
   640x480        59.9
DVI-0 disconnected 1600x1200+1600+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1600x1200      60.0*LVDS connected (normal left inverted right x axis y axis)
   1680x1050      60.0 +
   1280x800       60.0
   1280x768       60.0
   1024x768       60.0
   800x600        60.3
   640x480        59.9
S-video disconnected (normal left inverted right x axis y axis)
LVDS connected (normal left inverted right x axis y axis)
   1680x1050      60.0 +
   1280x800       60.0
   1280x768       60.0
   1024x768       60.0
   800x600        60.3
   640x480        59.9
S-video disconnected (normal left inverted right x axis y axis)

but however: both monitors are doing what it is expected.
With driver 1:6.7.193-1 the DVI-0 will remain at black.

xrandr is reporting I would see the desktop on LVDS, but it is on DVI-0. It's quite hard to have a script with this misleading reporting what devices are used.

Also: is there a way to have DDC activated and xrandr to use the provided modeline in xorg.conf, so i could benefit from "monitor is plugged"?

3. thanks!
==========
6.7.x series gives me about +900 fps with glxgears. Thats almost what flgrx gave me (just 150 fps missing). Great work!! Thank you very much!

Alex

PS: for quick contact i am on your IRC channel
Comment 1 Alexander Weber 2007-09-24 05:53:48 UTC
Created attachment 11717 [details]
DDC and EDID activated
Comment 2 Alexander Weber 2007-09-24 05:54:19 UTC
Created attachment 11718 [details]
EDID dectivated
Comment 3 Alexander Weber 2007-09-24 05:54:38 UTC
Created attachment 11719 [details]
NoDDC
Comment 4 Alexander Weber 2007-09-24 05:55:58 UTC
Created attachment 11720 [details]
the xorg.conf
Comment 5 Alexander Weber 2007-09-24 06:35:30 UTC
after that i started inside docking station, but with lid opened.

At X runtime i switched from LVDS to DVI-0. Now there are a lot of redrawing errors on DVI-0 (see attached .png)

.xsession-errors has a lot of 
X Error: BadMatch (invalid parameter attributes) 8
  Major opcode:  157
  Minor opcode:  6
  Resource id:  0x5b
X Error: BadPixmap (invalid Pixmap parameter) 4
  Major opcode:  54
  Minor opcode:  0
  Resource id:  0x18017a3

messages
Comment 6 Alexander Weber 2007-09-24 06:36:40 UTC
Created attachment 11722 [details]
lot of redrawing errors
Comment 7 Alex Deucher 2007-10-10 21:36:16 UTC
Please try again with the ati driver from git.  I think these issues should be fixed.
Comment 8 Alexander Weber 2007-10-15 00:39:11 UTC
i've tried it, but unfortunatly almost nothing changed.

The LID-state is still not detected as it should, so the overlaying desktop sizes persist:

[...]
(II) RADEON(0): Output LVDS using monitor section LVDS Monitor
(II) RADEON(0): Panel ID string: H4700.154P1

(II) RADEON(0): Panel Size from BIOS: 1680x1050
(II) RADEON(0): BIOS provided dividers will be used.
(WW) RADEON(0): LVDS Info:
XRes: 1680, YRes: 1050, DotClock: 119230
HBlank: 160, HOverPlus: 48, HSyncWidth: 32
VBlank: 30, VOverPlus: 2, VSyncWidth: 6
[...]

the DDC info now shows the extra video modes from both external monitors (1600x1200), but in log its still:

[...]
(WW) RADEON(0): DDC2/I2C is not properly initialized
[...]

and the VGA-0 jumps in a mode: 1920x1080@44 which does not provide any readable output.

Alex
Comment 9 Alex Deucher 2007-12-11 09:12:11 UTC
There was a PLL issue on crtc 0 which should be fixed now.  Can you try again with ati git master?
Comment 10 Alexander Weber 2007-12-12 03:03:01 UTC
Hi,

i tried with git master and .... it's working! Thanks a lot!

Screen 0: minimum 320 x 200, current 3200 x 1200, maximum 3200 x 1200
VGA-0 connected 1600x1200+0+0 (normal left inverted right x axis y axis) 367mm x 275mm
   1600x1200      60.0*+   59.9
   1280x1024      75.0     59.9
   1152x864       74.8
   1024x768       75.1     60.0
   800x600        75.0     60.3
   640x480        75.0     60.0
   720x400        70.1
DVI-0 connected 1600x1200+1600+0 (normal left inverted right x axis y axis) 367mm x 275mm
   1600x1200      60.0*+   59.9
   1280x1024      75.0     59.9
   1152x864       74.8
   1024x768       75.1     60.0
   800x600        75.0     60.3
   640x480        75.0     60.0
   720x400        70.1
LVDS connected (normal left inverted right x axis y axis)
   1680x1050      60.0 +
   1280x800       60.0
   1280x768       60.0
   1024x768       60.0
   800x600        60.3
   640x480        59.9
S-video disconnected (normal left inverted right x axis y axis)


so it's possible to use both monitors without disabling DDC.

The only issue left is, that inside docking station the LVDS is still "active" (and causes that overlay-issue on DVI-0 with the lid closed). So i have to
xrandr --output LVDS --off
xrandr --output VGA-0 --left-of DVI-0 --mode 1600x1200

to get my "working" setup.

Should I create a new bug ticket for the docking-station/LVDS/lid issue?

Alex
Comment 11 Alex Deucher 2007-12-12 07:22:35 UTC
(In reply to comment #10)
> Hi,
> 
> i tried with git master and .... it's working! Thanks a lot!

Good.

> 
> The only issue left is, that inside docking station the LVDS is still "active"
> (and causes that overlay-issue on DVI-0 with the lid closed). So i have to
> xrandr --output LVDS --off
> xrandr --output VGA-0 --left-of DVI-0 --mode 1600x1200

does this happen when you boot the laptop with the lid closed?  Unfortunately, at the moment, we are only able to detect the lid status via the scratch regs if the laptop lid was closed when the machine was initially booted.  After that we probably have to tie into the kernel acpi stuff assuming that gives good lid status info.

> 
> Should I create a new bug ticket for the docking-station/LVDS/lid issue?

possibly.
Comment 12 Alexander Weber 2007-12-12 13:32:34 UTC
>does this happen when you boot the laptop with the lid closed?
Yes, that the combination.

what about the information /proc provides?

Alex
Comment 13 Alex Deucher 2007-12-12 16:01:41 UTC
(In reply to comment #12)
> >does this happen when you boot the laptop with the lid closed?
> Yes, that the combination.
> 

ok.

> what about the information /proc provides?

either that or the sysfs stuff.

Comment 14 Alex Deucher 2007-12-12 16:41:05 UTC
fixed in commit: 1668f2056f56370f1b5681c13f1e14904e301216
Comment 15 Alexander Weber 2007-12-13 02:36:03 UTC
confirmed - working fine here.

Alex


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.