Bug 14860

Summary: No DP-DVI output when laptop is docked
Product: Drivers Reporter: Pär Lindfors (paran)
Component: Video(DRI - Intel)Assignee: ykzhao (yakui.zhao)
Status: CLOSED CODE_FIX    
Severity: normal CC: rjw, yakui.zhao
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.33-rc1 Subsystem:
Regression: Yes Bisected commit-id:
Bug Depends on:    
Bug Blocks: 14885    
Attachments: boot with dock
boot without dock
Try the patch which deletes the code of using child device array parsed from VBT to setup HDMI/DP
requested info

Description Pär Lindfors 2009-12-21 21:02:21 UTC
I have a Lenovo x200s with integrated Intel Graphics:

00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)

The "Ultrabase" docking station have a DisplayPort, where I have
connected a DVI-D monitor using a DP-DVI cable. The dock also have a
VGA monitor connected to the VGA port.

The following commit causes a regression:

commit fc816655236cd9da162356e96e74c7cfb0834d92
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Tue Nov 24 09:48:45 2009 +0800

    drm/i915: Don't set up HDMI ports that aren't in the BIOS device table.
    
    Use the child device array to decide whether the given HDMI output should be
    initialized. If the given HDMI port can't be found in child device array,
    it is not present and won't be initialized.
    
    Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>


After this the DVI-monitor is not recognized as connected when I put
the laptop into the dock. LVDS and VGA still works.

If I reboot the laptop while still docked the output works, and is
named "HDMI1".

Reverting commit fc816655236cd9da162356e96e74c7cfb0834d92 makes the
output work ok again. After booting undocked LVDS1 is connected and
VGA1,HDMI1,HDMI2,DP1 unconnected. Docking results in VGA1 and HDMI2
beeing connected and working, so now the DP-port is now HDMI2.


xrandr outputs:
# Booting undocked. output after putting laptop in the dock:

paran@faran:~$ xrandr 
Screen 0: minimum 320 x 200, current 2720 x 1024, maximum 8192 x 8192
VGA1 connected 1280x1024+1440+0 (normal left inverted right x axis y axis) 376mm x 301mm
   1280x1024      60.0*+   75.0  
   1152x864       75.0  
   1024x768       75.1     60.0  
   800x600        75.0     60.3  
   640x480        75.0     60.0  
   720x400        70.1  
LVDS1 connected 1440x900+0+0 (normal left inverted right x axis y axis) 261mm x 163mm
   1440x900       50.0*+   59.9  
   1360x768       59.8  
   1152x864      100.0     85.1     85.0     75.0     75.0     70.0     60.0  
   1024x768       85.0     75.0     70.1     60.0  
   832x624        74.6  
   800x600        85.1     72.2     75.0     60.3     56.2  
   640x480        85.0     72.8     75.0     59.9  
   720x400        85.0  
   640x400        85.1  
   640x350        85.1  
DP1 disconnected (normal left inverted right x axis y axis)


# After booting with laptop in the dock:

paran@faran:~$ xrandr 
Screen 0: minimum 320 x 200, current 1152 x 864, maximum 8192 x 8192
VGA1 connected (normal left inverted right x axis y axis)
   1280x1024      60.0 +   75.0  
   1152x864       75.0  
   1024x768       75.1     60.0  
   800x600        75.0     60.3  
   640x480        75.0     60.0  
   720x400        70.1  
LVDS1 connected 1152x864+0+0 (normal left inverted right x axis y axis) 261mm x 163mm
   1440x900       50.0 +   59.9  
   1360x768       59.8  
   1152x864      100.0     85.1     85.0     75.0*    75.0     70.0     60.0  
   1024x768       85.0     75.0     70.1     60.0  
   832x624        74.6  
   800x600        85.1     72.2     75.0     60.3     56.2  
   640x480        85.0     72.8     75.0     59.9  
   720x400        85.0  
   640x400        85.1  
   640x350        85.1  
HDMI1 connected 1152x864+0+0 (normal left inverted right x axis y axis) 367mm x 275mm
   1600x1200      60.0 +
   1280x1024      75.0     60.0  
   1152x864       75.0* 
   1024x768       75.1     60.0  
   800x600        75.0     60.3  
   640x480        75.0     60.0  
   720x400        70.1  
paran@faran:~$ 


# Commit fc816655236cd9da162356e96e74c7cfb0834d92 reverted, after
  booting undocked:

paran@faran:~$ xrandr 
Screen 0: minimum 320 x 200, current 1440 x 900, maximum 8192 x 8192
VGA1 disconnected (normal left inverted right x axis y axis)
LVDS1 connected 1440x900+0+0 (normal left inverted right x axis y axis) 261mm x 163mm
   1440x900       50.0*+   59.9  
   1360x768       59.8  
   1152x864      100.0     85.1     85.0     75.0     75.0     70.0     60.0  
   1024x768       85.0     75.0     70.1     60.0  
   832x624        74.6  
   800x600        85.1     72.2     75.0     60.3     56.2  
   640x480        85.0     72.8     75.0     59.9  
   720x400        85.0  
   640x400        85.1  
   640x350        85.1  
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)


# Commit fc816655236cd9da162356e96e74c7cfb0834d92 reverted, after
  booting undocked and then putting the laptop into the dock:

paran@faran:~$ xrandr
Screen 0: minimum 320 x 200, current 1600 x 1200, maximum 8192 x 8192
VGA1 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm x 301mm
   1280x1024      60.0*+   75.0  
   1152x864       75.0  
   1024x768       75.1     60.0  
   800x600        75.0     60.3  
   640x480        75.0     60.0  
   720x400        70.1  
LVDS1 connected (normal left inverted right x axis y axis)
   1440x900       50.0 +   59.9  
   1360x768       59.8  
   1152x864      100.0     85.1     85.0     75.0     75.0     70.0     60.0  
   1024x768       85.0     75.0     70.1     60.0  
   832x624        74.6  
   800x600        85.1     72.2     75.0     60.3     56.2  
   640x480        85.0     72.8     75.0     59.9  
   720x400        85.0  
   640x400        85.1  
   640x350        85.1  
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 connected 1600x1200+0+0 (normal left inverted right x axis y axis) 367mm x 275mm
   1600x1200      60.0*+
   1280x1024      75.0     60.0  
   1152x864       75.0  
   1024x768       75.1     60.0  
   800x600        75.0     60.3  
   640x480        75.0     60.0  
   720x400        70.1  
DP1 disconnected (normal left inverted right x axis y axis)
Comment 1 ykzhao 2009-12-28 03:52:33 UTC
Will you please attach the output of vbios.dump when the system is booted with/without dock? the vbios.dump can be obtained by using the following commands:
   1. echo 1 > /sys/devices/pci0000:00/0000:00:02.0/rom
   2. cat /sys/devices/pci0000:00/0000:00:02.0/rom >vbios.dump
   3. echo 0 > /sys/devices/pci0000:00/0000:00:02.0/rom

Thanks.
Comment 2 Pär Lindfors 2009-12-29 08:59:15 UTC
Created attachment 24337 [details]
boot with dock
Comment 3 Pär Lindfors 2009-12-29 09:00:26 UTC
Created attachment 24338 [details]
boot without dock

Here are the requested attachments.

Regards,
Pär
Comment 4 ykzhao 2009-12-29 09:25:47 UTC
Created attachment 24340 [details]
Try the patch which deletes the code of using child device array parsed from VBT to setup HDMI/DP

Will you please try the debug patch and see whether the issue still exists?

Thanks.
Comment 5 ykzhao 2009-12-29 09:48:34 UTC
Please add the boot option of "drm.debug=0x06" and attach the output of dmesg.
(Please test it with/without the dock).

thanks.
Comment 6 Pär Lindfors 2009-12-29 10:05:43 UTC
(In reply to comment #5)
> Please add the boot option of "drm.debug=0x06" and attach the output of
> dmesg.
> (Please test it with/without the dock).

I will try your patch and then send the dmesg output. However I probably will not have time to do this until the end of next week.

/Pär
Comment 7 ykzhao 2009-12-29 15:42:49 UTC
Please also add the boot option of "nomodset" and attach the output of intel_reg_dumper with/without dock.
    It will be better that you can do the above test with/without the DVI monitor when the dock is used.   

Generally speaking, the intel_reg_dumper tool is already shipped in most distribution. If you can't find it, please download it from: http://xorg.freedesktop.org/archive/individual/app/ or the latest code at git://anongit.freedesktop.org/git/xorg/app/intel-gpu-tools.
Install it by standard procedure: autogen.sh, configure, make, and make install

Thanks.
Comment 8 ykzhao 2009-12-29 15:46:12 UTC
It will be great if you can attach the output of "xrandr -q " when the patch in comment #4 is applied.

Thanks.
Comment 9 ykzhao 2009-12-29 15:57:55 UTC
Will you please confirm whether the DP-to-DVI cable is packaged with the dock or the DVI-D monitor?That is to say where you get the DP-to-DVI cable.
Do you try to connector monitor directly by using DP cable? 

Thanks.
Comment 10 ykzhao 2009-12-29 15:59:58 UTC
Please also attach the output of vbios.dump with the monitor connected/disconnected when the dock is used.

Thanks.
Comment 11 Rafael J. Wysocki 2009-12-30 22:27:10 UTC
*** Bug 14947 has been marked as a duplicate of this bug. ***
Comment 12 Rafael J. Wysocki 2009-12-30 22:28:08 UTC
Handled-By : ykzhao <yakui.zhao@intel.com>
Comment 13 Pär Lindfors 2009-12-31 10:19:39 UTC
(In reply to comment #9)
> Will you please confirm whether the DP-to-DVI cable is packaged with the dock
> or the DVI-D monitor?That is to say where you get the DP-to-DVI cable.

No monitor cables were packaged with the laptop or dock.

The DP-to-DVI cable is unbranded and was purchased separately, not
from Lenovo.

> Do you try to connector monitor directly by using DP cable?

No, I don't have access to any monitors with DP input.

The rest of your questions have to wait until next week, when I am
back from vacation and have physical access to the dock.

/Pär
Comment 14 Rafael J. Wysocki 2010-01-12 22:02:47 UTC
On Tuesday 12 January 2010, Pär Andersson wrote:
> "Rafael J. Wysocki" <rjw@sisk.pl> writes:
> 
> > The following bug entry is on the current list of known regressions
> > from 2.6.32.  Please verify if it still should be listed and let me know
> > (either way).
> 
> It should still be listed.
Comment 15 ykzhao 2010-01-14 06:48:11 UTC
Now the following commit is already shipped in Eric's for-linus tree and soon it will hit the Linus's mater tree. 
   >commit 6207937d4feea000913e8ca23fe20c7744be7847
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Wed Jan 6 09:49:31 2010 +0800

    drm/i915: Don't use the child device parsed from VBT to setup HDMI/DP

So this bug will be marked as resolved.

thanks.
Comment 16 Pär Lindfors 2010-01-14 14:24:23 UTC
Created attachment 24559 [details]
requested info

Hi,

Sorry for the delay in running these tests. As I wrote to Rafael I
have had problems with my ISP.

You have marked this as resolved, but I am attaching the requested
information anyway as it might still be interesting to you.

I have tested six different combinations. First 3 tests are using
vanilla v2.6.33-rc4:

* v2.6.33-rc4_dock
  - booted in the dock
* v2.6.33-rc4_dock-without-monitor
  - booted in the dock, no external monitors connected
* v2.6.33-rc4_nodock
  - booted undocked

Next three are the same tests, but the kernel is v2.6.33-rc4 plus
cherry-pick of 362928df3d96cab10afa4f048196d7340b708ca8 "drm/i915:
Don't use the child device parsed from VBT to setup HDMI/DP". With
this patch the problem I reported is fixed.

* v2.6.33-rc4+patch_dock
* v2.6.33-rc4+patch_dock-without-monitor
* v2.6.33-rc4+patch_nodock

For all 6 tests the following files is included:
dmesg.out
intel_reg_dumper.out
vbios.dump
xrandr-q.out

Regards,
Pär Andersson
Comment 17 Rafael J. Wysocki 2010-01-24 21:53:46 UTC
Fixed by commit 6207937d4feea000913e8ca23fe20c7744be7847.