Hello,
If someone wants to take a look at this bug I'd be glad:
"KMS:RV635:Radeon 3650HD graphics driver broken on a laptop when connected to a docking station and external display": https://bugzilla.redhat.com/show_bug.cgi?id=593429
I'd like to help debugging it.. let me know what to try, if more information is needed.. I'm running Fedora 13.
-- Pasi
On Wed, Jun 2, 2010 at 3:12 PM, Pasi Kärkkäinen pasik@iki.fi wrote:
Hello,
If someone wants to take a look at this bug I'd be glad:
"KMS:RV635:Radeon 3650HD graphics driver broken on a laptop when connected to a docking station and external display": https://bugzilla.redhat.com/show_bug.cgi?id=593429
I'd like to help debugging it.. let me know what to try, if more information is needed.. I'm running Fedora 13.
Does it work if you boot up without the external monitor connected and then enable it after it's booted up? Also, is this specific to F13 or are you seeing similar issues with other kms kernels or distros?
Alex
On Wed, Jun 02, 2010 at 03:28:07PM -0400, Alex Deucher wrote:
On Wed, Jun 2, 2010 at 3:12 PM, Pasi Kärkkäinen pasik@iki.fi wrote:
Hello,
If someone wants to take a look at this bug I'd be glad:
"KMS:RV635:Radeon 3650HD graphics driver broken on a laptop when connected to a docking station and external display": https://bugzilla.redhat.com/show_bug.cgi?id=593429
I'd like to help debugging it.. let me know what to try, if more information is needed.. I'm running Fedora 13.
Does it work if you boot up without the external monitor connected and then enable it after it's booted up?
Ok I just tried this. I booted up the laptop without the dock, and when I was in X using only the laptop internal display I connected the laptop to the docking station (which has external display via DVI).
Now I could go to Gnome Monitors application, see the external DVI display, enable it and I got picture there!
.. just once. After I disabled the external display, and tried re-enabling it, it didn't work anymore.. no picture on the external display anymore.
Also something weird: http://pasik.reaktio.net/fedora/f13-radeon-monitors.jpg
The external display is being shown twice.. for some reason?
Also, is this specific to F13 or are you seeing similar issues with other kms kernels or distros?
I'll try Ubuntu 10.04.
I haven't tried custom/non-distro kernels.
-- Pasi
On Wed, Jun 02, 2010 at 11:15:44PM +0300, Pasi Kärkkäinen wrote:
On Wed, Jun 02, 2010 at 03:28:07PM -0400, Alex Deucher wrote:
On Wed, Jun 2, 2010 at 3:12 PM, Pasi Kärkkäinen pasik@iki.fi wrote:
Hello,
If someone wants to take a look at this bug I'd be glad:
"KMS:RV635:Radeon 3650HD graphics driver broken on a laptop when connected to a docking station and external display": https://bugzilla.redhat.com/show_bug.cgi?id=593429
I'd like to help debugging it.. let me know what to try, if more information is needed.. I'm running Fedora 13.
Does it work if you boot up without the external monitor connected and then enable it after it's booted up?
Ok I just tried this. I booted up the laptop without the dock, and when I was in X using only the laptop internal display I connected the laptop to the docking station (which has external display via DVI).
Now I could go to Gnome Monitors application, see the external DVI display, enable it and I got picture there!
.. just once. After I disabled the external display, and tried re-enabling it, it didn't work anymore.. no picture on the external display anymore.
Also something weird: http://pasik.reaktio.net/fedora/f13-radeon-monitors.jpg
The external display is being shown twice.. for some reason?
Also, is this specific to F13 or are you seeing similar issues with other kms kernels or distros?
I'll try Ubuntu 10.04.
I haven't tried custom/non-distro kernels.
I just tried with Ubuntu 10.04 (kernel 2.6.32) and it fails in a similar way than F13 (kernel 2.6.33) does.
To summarize: - Booting the laptop in the dock, both the internal laptop display and the external DVI display connected, shows the beginning of the boot process on the internal display and then both displays go blank.
- Booting the laptop in the dock, internal display in use and the external display powered *off*, shows the kernel boot process on the internal display but when GDM should show up the internal display goes blank. Nothing on the external display either (if I power it on).
- Booting the laptop without the dock (and without the external display) works OK, I can see kernel boot process and GDM/X just OK.
- Booting the laptop without the dock, and attaching it to the dock after X is running allows me to use (=enable) the external display once. But Gnome Monitor application shows the external display twice (as two devices)..
-- Pasi
On Wed, Jun 2, 2010 at 4:36 PM, Pasi Kärkkäinen pasik@iki.fi wrote:
On Wed, Jun 02, 2010 at 11:15:44PM +0300, Pasi Kärkkäinen wrote:
On Wed, Jun 02, 2010 at 03:28:07PM -0400, Alex Deucher wrote:
On Wed, Jun 2, 2010 at 3:12 PM, Pasi Kärkkäinen pasik@iki.fi wrote:
Hello,
If someone wants to take a look at this bug I'd be glad:
"KMS:RV635:Radeon 3650HD graphics driver broken on a laptop when connected to a docking station and external display": https://bugzilla.redhat.com/show_bug.cgi?id=593429
I'd like to help debugging it.. let me know what to try, if more information is needed.. I'm running Fedora 13.
Does it work if you boot up without the external monitor connected and then enable it after it's booted up?
Ok I just tried this. I booted up the laptop without the dock, and when I was in X using only the laptop internal display I connected the laptop to the docking station (which has external display via DVI).
Now I could go to Gnome Monitors application, see the external DVI display, enable it and I got picture there!
.. just once. After I disabled the external display, and tried re-enabling it, it didn't work anymore.. no picture on the external display anymore.
Also something weird: http://pasik.reaktio.net/fedora/f13-radeon-monitors.jpg
The external display is being shown twice.. for some reason?
Also, is this specific to F13 or are you seeing similar issues with other kms kernels or distros?
I'll try Ubuntu 10.04.
I haven't tried custom/non-distro kernels.
I just tried with Ubuntu 10.04 (kernel 2.6.32) and it fails in a similar way than F13 (kernel 2.6.33) does.
To summarize: - Booting the laptop in the dock, both the internal laptop display and the external DVI display connected, shows the beginning of the boot process on the internal display and then both displays go blank.
- Booting the laptop in the dock, internal display in use and the external display powered *off*, shows the kernel boot process on the internal display but when GDM should show up the internal display goes blank. Nothing on the external display either (if I power it on).
- Booting the laptop without the dock (and without the external display) works OK, I can see kernel boot process and GDM/X just OK.
- Booting the laptop without the dock, and attaching it to the dock after X is running allows me to use (=enable) the external display once. But Gnome Monitor application shows the external display twice (as two devices)..
Does it work if you boot with the laptop in the dock and then after it boots attach the external monitor and enable it? Do things work any better if you use xrandr rather than the gnome displays tool?
Alex
On Wed, Jun 02, 2010 at 05:04:24PM -0400, Alex Deucher wrote:
On Wed, Jun 2, 2010 at 4:36 PM, Pasi Kärkkäinen pasik@iki.fi wrote:
On Wed, Jun 02, 2010 at 11:15:44PM +0300, Pasi Kärkkäinen wrote:
On Wed, Jun 02, 2010 at 03:28:07PM -0400, Alex Deucher wrote:
On Wed, Jun 2, 2010 at 3:12 PM, Pasi Kärkkäinen pasik@iki.fi wrote:
Hello,
If someone wants to take a look at this bug I'd be glad:
"KMS:RV635:Radeon 3650HD graphics driver broken on a laptop when connected to a docking station and external display": https://bugzilla.redhat.com/show_bug.cgi?id=593429
I'd like to help debugging it.. let me know what to try, if more information is needed.. I'm running Fedora 13.
Does it work if you boot up without the external monitor connected and then enable it after it's booted up?
Ok I just tried this. I booted up the laptop without the dock, and when I was in X using only the laptop internal display I connected the laptop to the docking station (which has external display via DVI).
Now I could go to Gnome Monitors application, see the external DVI display, enable it and I got picture there!
.. just once. After I disabled the external display, and tried re-enabling it, it didn't work anymore.. no picture on the external display anymore.
Also something weird: http://pasik.reaktio.net/fedora/f13-radeon-monitors.jpg
The external display is being shown twice.. for some reason?
Also, is this specific to F13 or are you seeing similar issues with other kms kernels or distros?
I'll try Ubuntu 10.04.
I haven't tried custom/non-distro kernels.
I just tried with Ubuntu 10.04 (kernel 2.6.32) and it fails in a similar way than F13 (kernel 2.6.33) does.
To summarize: - Booting the laptop in the dock, both the internal laptop display and the external DVI display connected, shows the beginning of the boot process on the internal display and then both displays go blank.
- Booting the laptop in the dock, internal display in use and the external display powered *off*, shows the kernel boot process on the internal display but when GDM should show up the internal display goes blank. Nothing on the external display either (if I power it on).
- Booting the laptop without the dock (and without the external display) works OK, I can see kernel boot process and GDM/X just OK.
- Booting the laptop without the dock, and attaching it to the dock after X is running allows me to use (=enable) the external display once. But Gnome Monitor application shows the external display twice (as two devices)..
Does it work if you boot with the laptop in the dock and then after it boots attach the external monitor and enable it? Do things work any better if you use xrandr rather than the gnome displays tool?
I just shutdown the laptop, connected it to the dock, disconnected the DVI cable from the dock, and then powered on the laptop. Now the boot process was OK using the laptop internal display.. gdm and X showed up on the internal display OK.
When I was in X I connected the DVI cable to the dock, and went to gnome Monitors application. Same thing - the external display is shown as two separate devices. Although they don't work - no matter which one of the external displays I choose I don't get picture on the external DVI display.
I also tried with xrandr:
$ xrandr Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 8192 x 8192 VGA-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*+ 1400x1050 60.0 60.0 1280x1024 59.9 60.0 1440x900 59.9 1280x960 60.0 59.9 1280x854 59.9 1280x800 59.8 1280x720 59.9 1152x768 59.8 1024x768 60.0 59.9 800x600 60.3 59.9 56.2 848x480 59.7 720x480 59.7 640x480 59.9 59.4 DVI-0 connected (normal left inverted right x axis y axis) 1920x1080 59.9 + 1600x1200 60.0 1680x1050 60.0 1280x1024 60.0 1440x900 59.9 1280x960 60.0 1280x800 59.8 1024x768 60.0 800x600 60.3 56.2 640x480 60.0 HDMI-0 connected (normal left inverted right x axis y axis) 1920x1080 59.9 + 1600x1200 60.0 1680x1050 60.0 1280x1024 60.0 1440x900 59.9 1280x960 60.0 1280x800 59.8 1024x768 60.0 800x600 60.3 56.2 640x480 60.0
$ xrandr --output DVI-0 --right-of LVDS
Didn't make a difference.. no picture on the external DVI display.
I wonder if that HDMI-0 is the key to the problem.. I don't have anything connected to the HDMI connector on the laptop. There's no HDMI connector on the dock, it's only in the laptop.
-- Pasi
On Thu, Jun 3, 2010 at 7:56 AM, Pasi Kärkkäinen pasik@iki.fi wrote:
On Wed, Jun 02, 2010 at 05:04:24PM -0400, Alex Deucher wrote:
On Wed, Jun 2, 2010 at 4:36 PM, Pasi Kärkkäinen pasik@iki.fi wrote:
On Wed, Jun 02, 2010 at 11:15:44PM +0300, Pasi Kärkkäinen wrote:
On Wed, Jun 02, 2010 at 03:28:07PM -0400, Alex Deucher wrote:
On Wed, Jun 2, 2010 at 3:12 PM, Pasi Kärkkäinen pasik@iki.fi wrote:
Hello,
If someone wants to take a look at this bug I'd be glad:
"KMS:RV635:Radeon 3650HD graphics driver broken on a laptop when connected to a docking station and external display": https://bugzilla.redhat.com/show_bug.cgi?id=593429
I'd like to help debugging it.. let me know what to try, if more information is needed.. I'm running Fedora 13.
Does it work if you boot up without the external monitor connected and then enable it after it's booted up?
Ok I just tried this. I booted up the laptop without the dock, and when I was in X using only the laptop internal display I connected the laptop to the docking station (which has external display via DVI).
Now I could go to Gnome Monitors application, see the external DVI display, enable it and I got picture there!
.. just once. After I disabled the external display, and tried re-enabling it, it didn't work anymore.. no picture on the external display anymore.
Also something weird: http://pasik.reaktio.net/fedora/f13-radeon-monitors.jpg
The external display is being shown twice.. for some reason?
Also, is this specific to F13 or are you seeing similar issues with other kms kernels or distros?
I'll try Ubuntu 10.04.
I haven't tried custom/non-distro kernels.
I just tried with Ubuntu 10.04 (kernel 2.6.32) and it fails in a similar way than F13 (kernel 2.6.33) does.
To summarize: - Booting the laptop in the dock, both the internal laptop display and the external DVI display connected, shows the beginning of the boot process on the internal display and then both displays go blank.
- Booting the laptop in the dock, internal display in use and the external display powered *off*, shows the kernel boot process on the internal display but when GDM should show up the internal display goes blank. Nothing on the external display either (if I power it on).
- Booting the laptop without the dock (and without the external display) works OK, I can see kernel boot process and GDM/X just OK.
- Booting the laptop without the dock, and attaching it to the dock after X is running allows me to use (=enable) the external display once. But Gnome Monitor application shows the external display twice (as two devices)..
Does it work if you boot with the laptop in the dock and then after it boots attach the external monitor and enable it? Do things work any better if you use xrandr rather than the gnome displays tool?
I just shutdown the laptop, connected it to the dock, disconnected the DVI cable from the dock, and then powered on the laptop. Now the boot process was OK using the laptop internal display.. gdm and X showed up on the internal display OK.
When I was in X I connected the DVI cable to the dock, and went to gnome Monitors application. Same thing - the external display is shown as two separate devices. Although they don't work - no matter which one of the external displays I choose I don't get picture on the external DVI display.
I also tried with xrandr:
$ xrandr Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 8192 x 8192 VGA-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*+ 1400x1050 60.0 60.0 1280x1024 59.9 60.0 1440x900 59.9 1280x960 60.0 59.9 1280x854 59.9 1280x800 59.8 1280x720 59.9 1152x768 59.8 1024x768 60.0 59.9 800x600 60.3 59.9 56.2 848x480 59.7 720x480 59.7 640x480 59.9 59.4 DVI-0 connected (normal left inverted right x axis y axis) 1920x1080 59.9 + 1600x1200 60.0 1680x1050 60.0 1280x1024 60.0 1440x900 59.9 1280x960 60.0 1280x800 59.8 1024x768 60.0 800x600 60.3 56.2 640x480 60.0 HDMI-0 connected (normal left inverted right x axis y axis) 1920x1080 59.9 + 1600x1200 60.0 1680x1050 60.0 1280x1024 60.0 1440x900 59.9 1280x960 60.0 1280x800 59.8 1024x768 60.0 800x600 60.3 56.2 640x480 60.0
$ xrandr --output DVI-0 --right-of LVDS
Didn't make a difference.. no picture on the external DVI display.
I wonder if that HDMI-0 is the key to the problem.. I don't have anything connected to the HDMI connector on the laptop. There's no HDMI connector on the dock, it's only in the laptop.
Indeed that is the problem. On your system the HDMI and DVI ports share the same encoder and DDC line so they will both come up as connected since the line is shared. The driver used to check the edid when the lines where shared and select HDMI or DVI based on the EDID, but perhaps that got broken at some point.
Alex
On Thu, Jun 03, 2010 at 11:00:44AM -0400, Alex Deucher wrote:
I just tried with Ubuntu 10.04 (kernel 2.6.32) and it fails in a similar way than F13 (kernel 2.6.33) does.
To summarize: - Booting the laptop in the dock, both the internal laptop display and the external DVI display connected, shows the beginning of the boot process on the internal display and then both displays go blank.
- Booting the laptop in the dock, internal display in use and the external display powered *off*, shows the kernel boot process on the internal display but when GDM should show up the internal display goes blank. Nothing on the external display either (if I power it on).
- Booting the laptop without the dock (and without the external display) works OK, I can see kernel boot process and GDM/X just OK.
- Booting the laptop without the dock, and attaching it to the dock after X is running allows me to use (=enable) the external display once. But Gnome Monitor application shows the external display twice (as two devices)..
Does it work if you boot with the laptop in the dock and then after it boots attach the external monitor and enable it? Do things work any better if you use xrandr rather than the gnome displays tool?
I just shutdown the laptop, connected it to the dock, disconnected the DVI cable from the dock, and then powered on the laptop. Now the boot process was OK using the laptop internal display.. gdm and X showed up on the internal display OK.
When I was in X I connected the DVI cable to the dock, and went to gnome Monitors application. Same thing - the external display is shown as two separate devices. Although they don't work - no matter which one of the external displays I choose I don't get picture on the external DVI display.
I also tried with xrandr:
$ xrandr Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 8192 x 8192 VGA-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*+ 1400x1050 60.0 60.0 1280x1024 59.9 60.0 1440x900 59.9 1280x960 60.0 59.9 1280x854 59.9 1280x800 59.8 1280x720 59.9 1152x768 59.8 1024x768 60.0 59.9 800x600 60.3 59.9 56.2 848x480 59.7 720x480 59.7 640x480 59.9 59.4 DVI-0 connected (normal left inverted right x axis y axis) 1920x1080 59.9 + 1600x1200 60.0 1680x1050 60.0 1280x1024 60.0 1440x900 59.9 1280x960 60.0 1280x800 59.8 1024x768 60.0 800x600 60.3 56.2 640x480 60.0 HDMI-0 connected (normal left inverted right x axis y axis) 1920x1080 59.9 + 1600x1200 60.0 1680x1050 60.0 1280x1024 60.0 1440x900 59.9 1280x960 60.0 1280x800 59.8 1024x768 60.0 800x600 60.3 56.2 640x480 60.0
$ xrandr --output DVI-0 --right-of LVDS
Didn't make a difference.. no picture on the external DVI display.
I wonder if that HDMI-0 is the key to the problem.. I don't have anything connected to the HDMI connector on the laptop. There's no HDMI connector on the dock, it's only in the laptop.
Indeed that is the problem. On your system the HDMI and DVI ports share the same encoder and DDC line so they will both come up as connected since the line is shared. The driver used to check the edid when the lines where shared and select HDMI or DVI based on the EDID, but perhaps that got broken at some point.
Makes sense. Does some kernel option/parameter affect that?
-- Pasi
On Thu, Jun 3, 2010 at 11:30 AM, Pasi Kärkkäinen pasik@iki.fi wrote:
On Thu, Jun 03, 2010 at 11:00:44AM -0400, Alex Deucher wrote:
I just tried with Ubuntu 10.04 (kernel 2.6.32) and it fails in a similar way than F13 (kernel 2.6.33) does.
To summarize: - Booting the laptop in the dock, both the internal laptop display and the external DVI display connected, shows the beginning of the boot process on the internal display and then both displays go blank.
- Booting the laptop in the dock, internal display in use and the external display powered *off*, shows the kernel boot process on the internal display but when GDM should show up the internal display goes blank. Nothing on the external display either (if I power it on).
- Booting the laptop without the dock (and without the external display) works OK, I can see kernel boot process and GDM/X just OK.
- Booting the laptop without the dock, and attaching it to the dock after X is running allows me to use (=enable) the external display once. But Gnome Monitor application shows the external display twice (as two devices)..
Does it work if you boot with the laptop in the dock and then after it boots attach the external monitor and enable it? Do things work any better if you use xrandr rather than the gnome displays tool?
I just shutdown the laptop, connected it to the dock, disconnected the DVI cable from the dock, and then powered on the laptop. Now the boot process was OK using the laptop internal display.. gdm and X showed up on the internal display OK.
When I was in X I connected the DVI cable to the dock, and went to gnome Monitors application. Same thing - the external display is shown as two separate devices. Although they don't work - no matter which one of the external displays I choose I don't get picture on the external DVI display.
I also tried with xrandr:
$ xrandr Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 8192 x 8192 VGA-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*+ 1400x1050 60.0 60.0 1280x1024 59.9 60.0 1440x900 59.9 1280x960 60.0 59.9 1280x854 59.9 1280x800 59.8 1280x720 59.9 1152x768 59.8 1024x768 60.0 59.9 800x600 60.3 59.9 56.2 848x480 59.7 720x480 59.7 640x480 59.9 59.4 DVI-0 connected (normal left inverted right x axis y axis) 1920x1080 59.9 + 1600x1200 60.0 1680x1050 60.0 1280x1024 60.0 1440x900 59.9 1280x960 60.0 1280x800 59.8 1024x768 60.0 800x600 60.3 56.2 640x480 60.0 HDMI-0 connected (normal left inverted right x axis y axis) 1920x1080 59.9 + 1600x1200 60.0 1680x1050 60.0 1280x1024 60.0 1440x900 59.9 1280x960 60.0 1280x800 59.8 1024x768 60.0 800x600 60.3 56.2 640x480 60.0
$ xrandr --output DVI-0 --right-of LVDS
Didn't make a difference.. no picture on the external DVI display.
I wonder if that HDMI-0 is the key to the problem.. I don't have anything connected to the HDMI connector on the laptop. There's no HDMI connector on the dock, it's only in the laptop.
Indeed that is the problem. On your system the HDMI and DVI ports share the same encoder and DDC line so they will both come up as connected since the line is shared. The driver used to check the edid when the lines where shared and select HDMI or DVI based on the EDID, but perhaps that got broken at some point.
Makes sense. Does some kernel option/parameter affect that?
No. I'll check the code and see if I can figure out what's going on.
Alex
On Thu, Jun 03, 2010 at 11:33:03AM -0400, Alex Deucher wrote:
On Thu, Jun 3, 2010 at 11:30 AM, Pasi Kärkkäinen pasik@iki.fi wrote:
On Thu, Jun 03, 2010 at 11:00:44AM -0400, Alex Deucher wrote:
>
I just tried with Ubuntu 10.04 (kernel 2.6.32) and it fails in a similar way than F13 (kernel 2.6.33) does.
To summarize: - Booting the laptop in the dock, both the internal laptop display and the external DVI display connected, shows the beginning of the boot process on the internal display and then both displays go blank.
- Booting the laptop in the dock, internal display in use and the external display powered *off*, shows the kernel boot process on the internal display but when GDM should show up the internal display goes blank. Nothing on the external display either (if I power it on).
- Booting the laptop without the dock (and without the external display) works OK, I can see kernel boot process and GDM/X just OK.
- Booting the laptop without the dock, and attaching it to the dock after X is running allows me to use (=enable) the external display once. But Gnome Monitor application shows the external display twice (as two devices)..
Does it work if you boot with the laptop in the dock and then after it boots attach the external monitor and enable it? Do things work any better if you use xrandr rather than the gnome displays tool?
I just shutdown the laptop, connected it to the dock, disconnected the DVI cable from the dock, and then powered on the laptop. Now the boot process was OK using the laptop internal display.. gdm and X showed up on the internal display OK.
When I was in X I connected the DVI cable to the dock, and went to gnome Monitors application. Same thing - the external display is shown as two separate devices. Although they don't work - no matter which one of the external displays I choose I don't get picture on the external DVI display.
I also tried with xrandr:
$ xrandr Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 8192 x 8192 VGA-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*+ 1400x1050 60.0 60.0 1280x1024 59.9 60.0 1440x900 59.9 1280x960 60.0 59.9 1280x854 59.9 1280x800 59.8 1280x720 59.9 1152x768 59.8 1024x768 60.0 59.9 800x600 60.3 59.9 56.2 848x480 59.7 720x480 59.7 640x480 59.9 59.4 DVI-0 connected (normal left inverted right x axis y axis) 1920x1080 59.9 + 1600x1200 60.0 1680x1050 60.0 1280x1024 60.0 1440x900 59.9 1280x960 60.0 1280x800 59.8 1024x768 60.0 800x600 60.3 56.2 640x480 60.0 HDMI-0 connected (normal left inverted right x axis y axis) 1920x1080 59.9 + 1600x1200 60.0 1680x1050 60.0 1280x1024 60.0 1440x900 59.9 1280x960 60.0 1280x800 59.8 1024x768 60.0 800x600 60.3 56.2 640x480 60.0
$ xrandr --output DVI-0 --right-of LVDS
Didn't make a difference.. no picture on the external DVI display.
I wonder if that HDMI-0 is the key to the problem.. I don't have anything connected to the HDMI connector on the laptop. There's no HDMI connector on the dock, it's only in the laptop.
Indeed that is the problem. On your system the HDMI and DVI ports share the same encoder and DDC line so they will both come up as connected since the line is shared. The driver used to check the edid when the lines where shared and select HDMI or DVI based on the EDID, but perhaps that got broken at some point.
Makes sense. Does some kernel option/parameter affect that?
No. I'll check the code and see if I can figure out what's going on.
Ok, thanks!
-- Pasi
On Thu, Jun 03, 2010 at 07:07:06PM +0300, Pasi Kärkkäinen wrote:
On Thu, Jun 03, 2010 at 11:33:03AM -0400, Alex Deucher wrote:
On Thu, Jun 3, 2010 at 11:30 AM, Pasi Kärkkäinen pasik@iki.fi wrote:
On Thu, Jun 03, 2010 at 11:00:44AM -0400, Alex Deucher wrote:
>> > > I just tried with Ubuntu 10.04 (kernel 2.6.32) and it fails in a similar way than F13 (kernel 2.6.33) does. > > To summarize: > - Booting the laptop in the dock, both the internal laptop display and the external DVI display connected, > shows the beginning of the boot process on the internal display and then both displays go blank. > > - Booting the laptop in the dock, internal display in use and the external display powered *off*, > shows the kernel boot process on the internal display but when GDM should show up the internal display goes blank. > Nothing on the external display either (if I power it on). > > - Booting the laptop without the dock (and without the external display) works OK, I can see kernel boot process and GDM/X just OK. > > - Booting the laptop without the dock, and attaching it to the dock after X is running allows me to use (=enable) the external display once. > But Gnome Monitor application shows the external display twice (as two devices).. >
Does it work if you boot with the laptop in the dock and then after it boots attach the external monitor and enable it? Do things work any better if you use xrandr rather than the gnome displays tool?
I just shutdown the laptop, connected it to the dock, disconnected the DVI cable from the dock, and then powered on the laptop. Now the boot process was OK using the laptop internal display.. gdm and X showed up on the internal display OK.
When I was in X I connected the DVI cable to the dock, and went to gnome Monitors application. Same thing - the external display is shown as two separate devices. Although they don't work - no matter which one of the external displays I choose I don't get picture on the external DVI display.
I also tried with xrandr:
$ xrandr Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 8192 x 8192 VGA-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*+ 1400x1050 60.0 60.0 1280x1024 59.9 60.0 1440x900 59.9 1280x960 60.0 59.9 1280x854 59.9 1280x800 59.8 1280x720 59.9 1152x768 59.8 1024x768 60.0 59.9 800x600 60.3 59.9 56.2 848x480 59.7 720x480 59.7 640x480 59.9 59.4 DVI-0 connected (normal left inverted right x axis y axis) 1920x1080 59.9 + 1600x1200 60.0 1680x1050 60.0 1280x1024 60.0 1440x900 59.9 1280x960 60.0 1280x800 59.8 1024x768 60.0 800x600 60.3 56.2 640x480 60.0 HDMI-0 connected (normal left inverted right x axis y axis) 1920x1080 59.9 + 1600x1200 60.0 1680x1050 60.0 1280x1024 60.0 1440x900 59.9 1280x960 60.0 1280x800 59.8 1024x768 60.0 800x600 60.3 56.2 640x480 60.0
$ xrandr --output DVI-0 --right-of LVDS
Didn't make a difference.. no picture on the external DVI display.
I wonder if that HDMI-0 is the key to the problem.. I don't have anything connected to the HDMI connector on the laptop. There's no HDMI connector on the dock, it's only in the laptop.
Indeed that is the problem. On your system the HDMI and DVI ports share the same encoder and DDC line so they will both come up as connected since the line is shared. The driver used to check the edid when the lines where shared and select HDMI or DVI based on the EDID, but perhaps that got broken at some point.
Makes sense. Does some kernel option/parameter affect that?
No. I'll check the code and see if I can figure out what's going on.
Ok, thanks!
Hello,
I'll be near the dock tomorrow.. So if you have a chance of looking at this, and want me to test something, I could do it on thursday/friday.
-- Pasi
On Wed, Jun 09, 2010 at 06:59:56PM +0300, Pasi Kärkkäinen wrote:
On Thu, Jun 03, 2010 at 07:07:06PM +0300, Pasi Kärkkäinen wrote:
On Thu, Jun 03, 2010 at 11:33:03AM -0400, Alex Deucher wrote:
On Thu, Jun 3, 2010 at 11:30 AM, Pasi Kärkkäinen pasik@iki.fi wrote:
On Thu, Jun 03, 2010 at 11:00:44AM -0400, Alex Deucher wrote:
> >> > > > > I just tried with Ubuntu 10.04 (kernel 2.6.32) and it fails in a similar way than F13 (kernel 2.6.33) does. > > > > To summarize: > > - Booting the laptop in the dock, both the internal laptop display and the external DVI display connected, > > shows the beginning of the boot process on the internal display and then both displays go blank. > > > > - Booting the laptop in the dock, internal display in use and the external display powered *off*, > > shows the kernel boot process on the internal display but when GDM should show up the internal display goes blank. > > Nothing on the external display either (if I power it on). > > > > - Booting the laptop without the dock (and without the external display) works OK, I can see kernel boot process and GDM/X just OK. > > > > - Booting the laptop without the dock, and attaching it to the dock after X is running allows me to use (=enable) the external display once. > > But Gnome Monitor application shows the external display twice (as two devices).. > > > > Does it work if you boot with the laptop in the dock and then after it > boots attach the external monitor and enable it? Do things work any > better if you use xrandr rather than the gnome displays tool? >
I just shutdown the laptop, connected it to the dock, disconnected the DVI cable from the dock, and then powered on the laptop. Now the boot process was OK using the laptop internal display.. gdm and X showed up on the internal display OK.
When I was in X I connected the DVI cable to the dock, and went to gnome Monitors application. Same thing - the external display is shown as two separate devices. Although they don't work - no matter which one of the external displays I choose I don't get picture on the external DVI display.
I also tried with xrandr:
$ xrandr Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 8192 x 8192 VGA-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*+ 1400x1050 60.0 60.0 1280x1024 59.9 60.0 1440x900 59.9 1280x960 60.0 59.9 1280x854 59.9 1280x800 59.8 1280x720 59.9 1152x768 59.8 1024x768 60.0 59.9 800x600 60.3 59.9 56.2 848x480 59.7 720x480 59.7 640x480 59.9 59.4 DVI-0 connected (normal left inverted right x axis y axis) 1920x1080 59.9 + 1600x1200 60.0 1680x1050 60.0 1280x1024 60.0 1440x900 59.9 1280x960 60.0 1280x800 59.8 1024x768 60.0 800x600 60.3 56.2 640x480 60.0 HDMI-0 connected (normal left inverted right x axis y axis) 1920x1080 59.9 + 1600x1200 60.0 1680x1050 60.0 1280x1024 60.0 1440x900 59.9 1280x960 60.0 1280x800 59.8 1024x768 60.0 800x600 60.3 56.2 640x480 60.0
$ xrandr --output DVI-0 --right-of LVDS
Didn't make a difference.. no picture on the external DVI display.
I wonder if that HDMI-0 is the key to the problem.. I don't have anything connected to the HDMI connector on the laptop. There's no HDMI connector on the dock, it's only in the laptop.
Indeed that is the problem. On your system the HDMI and DVI ports share the same encoder and DDC line so they will both come up as connected since the line is shared. The driver used to check the edid when the lines where shared and select HDMI or DVI based on the EDID, but perhaps that got broken at some point.
Makes sense. Does some kernel option/parameter affect that?
No. I'll check the code and see if I can figure out what's going on.
Ok, thanks!
Hello,
I'll be near the dock tomorrow.. So if you have a chance of looking at this, and want me to test something, I could do it on thursday/friday.
I just tried the latest Fedora 13 kernel (2.6.33.5-124.fc13.x86_64) and the latest Fedora development (rawhide 2.6.34-43.fc14.x86_64) kernel, but the behaviour was the same.
Connecting display to the DVI connector makes the HDMI connector also show the same display, breaking things..
-- Pasi
On Fri, Jun 18, 2010 at 09:45:22PM +0300, Pasi Kärkkäinen wrote:
> > I wonder if that HDMI-0 is the key to the problem.. I don't have anything connected > to the HDMI connector on the laptop. There's no HDMI connector on the dock, it's only in the laptop.
Indeed that is the problem. On your system the HDMI and DVI ports share the same encoder and DDC line so they will both come up as connected since the line is shared. The driver used to check the edid when the lines where shared and select HDMI or DVI based on the EDID, but perhaps that got broken at some point.
Makes sense. Does some kernel option/parameter affect that?
No. I'll check the code and see if I can figure out what's going on.
Ok, thanks!
Hello,
I'll be near the dock tomorrow.. So if you have a chance of looking at this, and want me to test something, I could do it on thursday/friday.
I just tried the latest Fedora 13 kernel (2.6.33.5-124.fc13.x86_64) and the latest Fedora development (rawhide 2.6.34-43.fc14.x86_64) kernel, but the behaviour was the same.
Connecting display to the DVI connector makes the HDMI connector also show the same display, breaking things..
Here's a new log with drm.debug=4.. that's the biggest debug level that still allows me to grab the whole dmesg log before it's overwritten by huge amount of debug messages.
Full dmesg log: http://pasik.reaktio.net/fedora/bz593429/both-internal-and-external-displays...
drm parts copy&pasted here:
[drm] Initialized drm 1.1.0 20060810 [drm] radeon defaulting to kernel modesetting. [drm] radeon kernel modesetting enabled. radeon 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 radeon 0000:01:00.0: setting latency timer to 64 [drm] radeon: Initializing kernel modesetting. [drm] register mmio base: 0xD8300000 [drm] register mmio size: 65536 ATOM BIOS: HP_Wistron_Vox_M86M [drm] Clocks initialized ! [drm] Detected VRAM RAM=256M, BAR=256M [drm] RAM width 128bits DDR [TTM] Zone kernel: Available graphics memory: 2012172 kiB. [ttm] Initializing pool allocator. [drm] radeon: 256M of VRAM memory ready [drm] radeon: 512M of GTT memory ready. alloc irq_desc for 33 on node -1 alloc kstat_irqs on node -1 radeon 0000:01:00.0: irq 33 for MSI/MSI-X [drm] radeon: using MSI. [drm] radeon: irq initialized. [drm] GART: num cpu pages 131072, num gpu pages 131072 [drm] Loading RV635 Microcode platform radeon_cp.0: firmware: requesting radeon/RV635_pfp.bin platform radeon_cp.0: firmware: requesting radeon/RV635_me.bin platform radeon_cp.0: firmware: requesting radeon/R600_rlc.bin [drm] ring test succeeded in 1 usecs [drm] radeon: ib pool ready. [drm] ib test succeeded in 0 usecs [drm] Enabling audio support [drm] Radeon Display Connectors [drm] Connector 0: [drm] VGA [drm] DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c [drm] Encoders: [drm] CRT1: INTERNAL_KLDSCP_DAC1 [drm] Connector 1: [drm] LVDS [drm] Encoders: [drm] LCD1: INTERNAL_KLDSCP_LVTMA [drm] Connector 2: [drm] DVI-D [drm] HPD1 [drm] DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c [drm] Encoders: [drm] DFP1: INTERNAL_UNIPHY [drm] Connector 3: [drm] HDMI-A [drm] HPD2 [drm] DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c [drm] Encoders: [drm] DFP2: INTERNAL_UNIPHY [drm:drm_helper_probe_single_connector_modes], VGA-1 [drm:drm_helper_probe_single_connector_modes], VGA-1 is disconnected [drm:drm_helper_probe_single_connector_modes], LVDS-1 [drm:drm_helper_probe_single_connector_modes], Probed modes for LVDS-1 [drm:drm_mode_debug_printmodeline], Modeline 16:"1680x1050" 60 121000 1680 1744 1840 1884 1050 1056 1062 1070 0x48 0xa [drm:drm_mode_debug_printmodeline], Modeline 29:"1400x1050" 60 121750 1400 1488 1632 1864 1050 1053 1057 1089 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 27:"1280x1024" 60 109000 1280 1368 1496 1712 1024 1027 1034 1063 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 28:"1440x900" 60 106500 1440 1528 1672 1904 900 903 909 934 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 26:"1280x960" 60 101250 1280 1360 1488 1696 960 963 967 996 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 25:"1280x854" 60 89250 1280 1352 1480 1680 854 857 867 887 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 24:"1280x800" 60 83500 1280 1352 1480 1680 800 803 809 831 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 23:"1280x720" 60 74500 1280 1344 1472 1664 720 723 728 748 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 22:"1152x768" 60 71750 1152 1216 1328 1504 768 771 781 798 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 21:"1024x768" 60 63500 1024 1072 1176 1328 768 771 775 798 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 19:"800x600" 60 38250 800 832 912 1024 600 603 607 624 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 20:"848x480" 60 31500 848 872 952 1056 480 483 493 500 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 18:"720x480" 60 26750 720 744 808 896 480 483 493 500 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 17:"640x480" 59 23750 640 664 720 800 480 483 487 500 0x0 0x6 [drm:drm_helper_probe_single_connector_modes], DVI-D-1 [drm:drm_helper_probe_single_connector_modes], Probed modes for DVI-D-1 [drm:drm_mode_debug_printmodeline], Modeline 31:"1920x1080" 60 138500 1920 1968 2000 2080 1080 1083 1088 1111 0x48 0x9 [drm:drm_mode_debug_printmodeline], Modeline 36:"1600x1200" 60 162000 1600 1664 1856 2160 1200 1201 1204 1250 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 37:"1680x1050" 60 146250 1680 1784 1960 2240 1050 1053 1059 1089 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 34:"1280x1024" 60 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 35:"1440x900" 60 106500 1440 1520 1672 1904 900 903 909 934 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 33:"1280x960" 60 108000 1280 1376 1488 1800 960 961 964 1000 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 32:"1280x800" 60 83500 1280 1352 1480 1680 800 803 809 831 0x40 0x9 [drm:drm_mode_debug_printmodeline], Modeline 41:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa [drm:drm_mode_debug_printmodeline], Modeline 38:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 39:"800x600" 56 36000 800 824 896 1024 600 601 603 625 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 40:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa [drm:drm_helper_probe_single_connector_modes], HDMI Type A-1 [drm:drm_helper_probe_single_connector_modes], Probed modes for HDMI Type A-1 [drm:drm_mode_debug_printmodeline], Modeline 43:"1920x1080" 60 138500 1920 1968 2000 2080 1080 1083 1088 1111 0x48 0x9 [drm:drm_mode_debug_printmodeline], Modeline 48:"1600x1200" 60 162000 1600 1664 1856 2160 1200 1201 1204 1250 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 49:"1680x1050" 60 146250 1680 1784 1960 2240 1050 1053 1059 1089 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 46:"1280x1024" 60 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 47:"1440x900" 60 106500 1440 1520 1672 1904 900 903 909 934 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 45:"1280x960" 60 108000 1280 1376 1488 1800 960 961 964 1000 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 44:"1280x800" 60 83500 1280 1352 1480 1680 800 803 809 831 0x40 0x9 [drm:drm_mode_debug_printmodeline], Modeline 53:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa [drm:drm_mode_debug_printmodeline], Modeline 50:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 51:"800x600" 56 36000 800 824 896 1024 600 601 603 625 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 52:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa [drm:drm_setup_crtcs], [drm:drm_enable_connectors], connector 10 enabled? no [drm:drm_enable_connectors], connector 12 enabled? yes [drm:drm_enable_connectors], connector 14 enabled? yes [drm:drm_enable_connectors], connector 15 enabled? yes [drm:drm_target_preferred], looking for cmdline mode on connector 12 [drm:drm_target_preferred], looking for preferred mode on connector 12 [drm:drm_target_preferred], found mode 1680x1050 [drm:drm_target_preferred], looking for cmdline mode on connector 14 [drm:drm_target_preferred], looking for preferred mode on connector 14 [drm:drm_target_preferred], found mode 1920x1080 [drm:drm_target_preferred], looking for cmdline mode on connector 15 [drm:drm_target_preferred], looking for preferred mode on connector 15 [drm:drm_target_preferred], found mode 1920x1080 [drm:drm_setup_crtcs], picking CRTCs for 8192x8192 config [drm:drm_setup_crtcs], desired mode 1920x1080 set on crtc 7 [drm:drm_setup_crtcs], desired mode 1920x1080 set on crtc 8 [drm] fb mappable at 0xC0141000 [drm] vram apper at 0xC0000000 [drm] size 8294400 [drm] fb depth is 24 [drm] pitch is 7680 fbcon: radeondrmfb (fb0) is primary device [drm:drm_crtc_helper_set_config], [drm:drm_crtc_helper_set_config], crtc: ffff88013382e000 8 fb: ffff880133b27540 connectors: ffff88013262d140 num_connectors: 2 (x, y) (0, 0) [drm:drm_crtc_helper_set_config], crtc has no fb, full mode set [drm:drm_crtc_helper_set_config], modes are different, full mode set [drm:drm_mode_debug_printmodeline], Modeline 0:"" 0 0 0 0 0 0 0 0 0 0 0x0 0x0 [drm:drm_mode_debug_printmodeline], Modeline 56:"1920x1080" 60 138500 1920 1968 2000 2080 1080 1083 1088 1111 0x48 0x9 [drm:drm_crtc_helper_set_config], setting connector 14 crtc to ffff88013382e000 [drm:drm_crtc_helper_set_config], setting connector 15 crtc to ffff88013382e000 [drm:drm_crtc_helper_set_config], attempting to set mode from userspace [drm:drm_mode_debug_printmodeline], Modeline 56:"1920x1080" 60 138500 1920 1968 2000 2080 1080 1083 1088 1111 0x48 0x9 Console: switching to colour frame buffer device 240x67 [drm:drm_crtc_helper_set_config], [drm:drm_crtc_helper_set_config], crtc: ffff88013382e000 8 fb: ffff880133b27540 connectors: ffff88013262d140 num_connectors: 2 (x, y) (0, 0) [drm:drm_crtc_helper_set_config], setting connector 14 crtc to ffff88013382e000 [drm:drm_crtc_helper_set_config], setting connector 15 crtc to ffff88013382e000 fb0: radeondrmfb frame buffer device registered panic notifier [drm] Initialized radeon 2.0.0 20080528 for 0000:01:00.0 on minor 0 [drm:drm_mode_getresources], Counted 2 4 3 [drm:drm_mode_getresources], Counted 2 4 3 [drm:drm_mode_getconnector], connector id 10: [drm:drm_helper_probe_single_connector_modes], VGA-1 [drm:drm_helper_probe_single_connector_modes], VGA-1 is disconnected [drm:drm_mode_getconnector], connector id 10: [drm:drm_helper_probe_single_connector_modes], VGA-1 [drm:drm_helper_probe_single_connector_modes], VGA-1 is disconnected [drm:drm_crtc_helper_set_config], [drm:drm_crtc_helper_set_config], crtc: ffff88013382e000 8 fb: ffff880133b27540 connectors: ffff88013262d140 num_connectors: 2 (x, y) (0, 0) [drm:drm_crtc_helper_set_config], setting connector 14 crtc to ffff88013382e000 [drm:drm_crtc_helper_set_config], setting connector 15 crtc to ffff88013382e000 [drm:drm_mode_getconnector], connector id 12: [drm:drm_helper_probe_single_connector_modes], LVDS-1 [drm:drm_helper_probe_single_connector_modes], Probed modes for LVDS-1 [drm:drm_mode_debug_printmodeline], Modeline 16:"1680x1050" 60 121000 1680 1744 1840 1884 1050 1056 1062 1070 0x48 0xa [drm:drm_mode_debug_printmodeline], Modeline 29:"1400x1050" 60 121750 1400 1488 1632 1864 1050 1053 1057 1089 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 27:"1280x1024" 60 109000 1280 1368 1496 1712 1024 1027 1034 1063 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 28:"1440x900" 60 106500 1440 1528 1672 1904 900 903 909 934 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 26:"1280x960" 60 101250 1280 1360 1488 1696 960 963 967 996 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 25:"1280x854" 60 89250 1280 1352 1480 1680 854 857 867 887 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 24:"1280x800" 60 83500 1280 1352 1480 1680 800 803 809 831 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 23:"1280x720" 60 74500 1280 1344 1472 1664 720 723 728 748 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 22:"1152x768" 60 71750 1152 1216 1328 1504 768 771 781 798 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 21:"1024x768" 60 63500 1024 1072 1176 1328 768 771 775 798 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 19:"800x600" 60 38250 800 832 912 1024 600 603 607 624 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 20:"848x480" 60 31500 848 872 952 1056 480 483 493 500 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 18:"720x480" 60 26750 720 744 808 896 480 483 493 500 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 17:"640x480" 59 23750 640 664 720 800 480 483 487 500 0x0 0x6 [drm:drm_mode_getconnector], connector id 12: [drm:drm_mode_getconnector], connector id 14: [drm:drm_helper_probe_single_connector_modes], DVI-D-1 [drm:drm_helper_probe_single_connector_modes], Probed modes for DVI-D-1 [drm:drm_mode_debug_printmodeline], Modeline 31:"1920x1080" 60 138500 1920 1968 2000 2080 1080 1083 1088 1111 0x48 0x9 [drm:drm_mode_debug_printmodeline], Modeline 36:"1600x1200" 60 162000 1600 1664 1856 2160 1200 1201 1204 1250 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 37:"1680x1050" 60 146250 1680 1784 1960 2240 1050 1053 1059 1089 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 34:"1280x1024" 60 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 35:"1440x900" 60 106500 1440 1520 1672 1904 900 903 909 934 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 33:"1280x960" 60 108000 1280 1376 1488 1800 960 961 964 1000 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 32:"1280x800" 60 83500 1280 1352 1480 1680 800 803 809 831 0x40 0x9 [drm:drm_mode_debug_printmodeline], Modeline 41:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa [drm:drm_mode_debug_printmodeline], Modeline 38:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 39:"800x600" 56 36000 800 824 896 1024 600 601 603 625 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 40:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa [drm:drm_mode_getconnector], connector id 14: [drm:drm_mode_getconnector], connector id 15: [drm:drm_helper_probe_single_connector_modes], HDMI Type A-1 [drm:drm_helper_probe_single_connector_modes], Probed modes for HDMI Type A-1 [drm:drm_mode_debug_printmodeline], Modeline 43:"1920x1080" 60 138500 1920 1968 2000 2080 1080 1083 1088 1111 0x48 0x9 [drm:drm_mode_debug_printmodeline], Modeline 48:"1600x1200" 60 162000 1600 1664 1856 2160 1200 1201 1204 1250 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 49:"1680x1050" 60 146250 1680 1784 1960 2240 1050 1053 1059 1089 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 46:"1280x1024" 60 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 47:"1440x900" 60 106500 1440 1520 1672 1904 900 903 909 934 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 45:"1280x960" 60 108000 1280 1376 1488 1800 960 961 964 1000 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 44:"1280x800" 60 83500 1280 1352 1480 1680 800 803 809 831 0x40 0x9 [drm:drm_mode_debug_printmodeline], Modeline 53:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa [drm:drm_mode_debug_printmodeline], Modeline 50:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 51:"800x600" 56 36000 800 824 896 1024 600 601 603 625 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 52:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa [drm:drm_mode_getconnector], connector id 15: [drm:drm_crtc_helper_set_config], [drm:drm_crtc_helper_set_config], crtc: ffff88013382e000 8 fb: ffff880133b27540 connectors: ffff88013262d140 num_connectors: 2 (x, y) (0, 0) [drm:drm_crtc_helper_set_config], setting connector 14 crtc to ffff88013382e000 [drm:drm_crtc_helper_set_config], setting connector 15 crtc to ffff88013382e000 [drm:drm_crtc_helper_set_config], [drm:drm_crtc_helper_set_config], crtc: ffff88013382e000 8 fb: ffff880133b27540 connectors: ffff88013262d140 num_connectors: 2 (x, y) (0, 0) [drm:drm_crtc_helper_set_config], setting connector 14 crtc to ffff88013382e000 [drm:drm_crtc_helper_set_config], setting connector 15 crtc to ffff88013382e000 [drm:drm_mode_getresources], Counted 2 4 3 [drm:drm_mode_getresources], Counted 2 4 3 [drm:drm_mode_getconnector], connector id 10: [drm:drm_helper_probe_single_connector_modes], VGA-1 [drm:drm_helper_probe_single_connector_modes], VGA-1 is disconnected [drm:drm_mode_getconnector], connector id 10: [drm:drm_helper_probe_single_connector_modes], VGA-1 [drm:drm_helper_probe_single_connector_modes], VGA-1 is disconnected [drm:drm_mode_getconnector], connector id 12: [drm:drm_helper_probe_single_connector_modes], LVDS-1 [drm:drm_helper_probe_single_connector_modes], Probed modes for LVDS-1 [drm:drm_mode_debug_printmodeline], Modeline 16:"1680x1050" 60 121000 1680 1744 1840 1884 1050 1056 1062 1070 0x48 0xa [drm:drm_mode_debug_printmodeline], Modeline 29:"1400x1050" 60 121750 1400 1488 1632 1864 1050 1053 1057 1089 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 27:"1280x1024" 60 109000 1280 1368 1496 1712 1024 1027 1034 1063 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 28:"1440x900" 60 106500 1440 1528 1672 1904 900 903 909 934 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 26:"1280x960" 60 101250 1280 1360 1488 1696 960 963 967 996 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 25:"1280x854" 60 89250 1280 1352 1480 1680 854 857 867 887 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 24:"1280x800" 60 83500 1280 1352 1480 1680 800 803 809 831 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 23:"1280x720" 60 74500 1280 1344 1472 1664 720 723 728 748 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 22:"1152x768" 60 71750 1152 1216 1328 1504 768 771 781 798 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 21:"1024x768" 60 63500 1024 1072 1176 1328 768 771 775 798 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 19:"800x600" 60 38250 800 832 912 1024 600 603 607 624 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 20:"848x480" 60 31500 848 872 952 1056 480 483 493 500 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 18:"720x480" 60 26750 720 744 808 896 480 483 493 500 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 17:"640x480" 59 23750 640 664 720 800 480 483 487 500 0x0 0x6 [drm:drm_mode_getconnector], connector id 12: [drm:drm_mode_getconnector], connector id 14: [drm:drm_helper_probe_single_connector_modes], DVI-D-1 [drm:drm_helper_probe_single_connector_modes], Probed modes for DVI-D-1 [drm:drm_mode_debug_printmodeline], Modeline 31:"1920x1080" 60 138500 1920 1968 2000 2080 1080 1083 1088 1111 0x48 0x9 [drm:drm_mode_debug_printmodeline], Modeline 36:"1600x1200" 60 162000 1600 1664 1856 2160 1200 1201 1204 1250 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 37:"1680x1050" 60 146250 1680 1784 1960 2240 1050 1053 1059 1089 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 34:"1280x1024" 60 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 35:"1440x900" 60 106500 1440 1520 1672 1904 900 903 909 934 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 33:"1280x960" 60 108000 1280 1376 1488 1800 960 961 964 1000 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 32:"1280x800" 60 83500 1280 1352 1480 1680 800 803 809 831 0x40 0x9 [drm:drm_mode_debug_printmodeline], Modeline 41:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa [drm:drm_mode_debug_printmodeline], Modeline 38:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 39:"800x600" 56 36000 800 824 896 1024 600 601 603 625 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 40:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa [drm:drm_mode_getconnector], connector id 14: [drm:drm_mode_getconnector], connector id 15: [drm:drm_helper_probe_single_connector_modes], HDMI Type A-1 [drm:drm_helper_probe_single_connector_modes], Probed modes for HDMI Type A-1 [drm:drm_mode_debug_printmodeline], Modeline 43:"1920x1080" 60 138500 1920 1968 2000 2080 1080 1083 1088 1111 0x48 0x9 [drm:drm_mode_debug_printmodeline], Modeline 48:"1600x1200" 60 162000 1600 1664 1856 2160 1200 1201 1204 1250 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 49:"1680x1050" 60 146250 1680 1784 1960 2240 1050 1053 1059 1089 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 46:"1280x1024" 60 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 47:"1440x900" 60 106500 1440 1520 1672 1904 900 903 909 934 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 45:"1280x960" 60 108000 1280 1376 1488 1800 960 961 964 1000 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 44:"1280x800" 60 83500 1280 1352 1480 1680 800 803 809 831 0x40 0x9 [drm:drm_mode_debug_printmodeline], Modeline 53:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa [drm:drm_mode_debug_printmodeline], Modeline 50:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 51:"800x600" 56 36000 800 824 896 1024 600 601 603 625 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 52:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa [drm:drm_mode_getconnector], connector id 15: [drm:drm_mode_getconnector], connector id 10: [drm:drm_helper_probe_single_connector_modes], VGA-1 [drm:drm_helper_probe_single_connector_modes], VGA-1 is disconnected [drm:drm_mode_getconnector], connector id 10: [drm:drm_helper_probe_single_connector_modes], VGA-1 [drm:drm_helper_probe_single_connector_modes], VGA-1 is disconnected [drm:drm_mode_getconnector], connector id 12: [drm:drm_helper_probe_single_connector_modes], LVDS-1 [drm:drm_helper_probe_single_connector_modes], Probed modes for LVDS-1 [drm:drm_mode_debug_printmodeline], Modeline 16:"1680x1050" 60 121000 1680 1744 1840 1884 1050 1056 1062 1070 0x48 0xa [drm:drm_mode_debug_printmodeline], Modeline 29:"1400x1050" 60 121750 1400 1488 1632 1864 1050 1053 1057 1089 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 27:"1280x1024" 60 109000 1280 1368 1496 1712 1024 1027 1034 1063 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 28:"1440x900" 60 106500 1440 1528 1672 1904 900 903 909 934 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 26:"1280x960" 60 101250 1280 1360 1488 1696 960 963 967 996 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 25:"1280x854" 60 89250 1280 1352 1480 1680 854 857 867 887 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 24:"1280x800" 60 83500 1280 1352 1480 1680 800 803 809 831 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 23:"1280x720" 60 74500 1280 1344 1472 1664 720 723 728 748 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 22:"1152x768" 60 71750 1152 1216 1328 1504 768 771 781 798 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 21:"1024x768" 60 63500 1024 1072 1176 1328 768 771 775 798 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 19:"800x600" 60 38250 800 832 912 1024 600 603 607 624 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 20:"848x480" 60 31500 848 872 952 1056 480 483 493 500 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 18:"720x480" 60 26750 720 744 808 896 480 483 493 500 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 17:"640x480" 59 23750 640 664 720 800 480 483 487 500 0x0 0x6 [drm:drm_mode_getconnector], connector id 12: [drm:drm_mode_getconnector], connector id 14: [drm:drm_helper_probe_single_connector_modes], DVI-D-1 [drm:drm_helper_probe_single_connector_modes], Probed modes for DVI-D-1 [drm:drm_mode_debug_printmodeline], Modeline 31:"1920x1080" 60 138500 1920 1968 2000 2080 1080 1083 1088 1111 0x48 0x9 [drm:drm_mode_debug_printmodeline], Modeline 36:"1600x1200" 60 162000 1600 1664 1856 2160 1200 1201 1204 1250 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 37:"1680x1050" 60 146250 1680 1784 1960 2240 1050 1053 1059 1089 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 34:"1280x1024" 60 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 35:"1440x900" 60 106500 1440 1520 1672 1904 900 903 909 934 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 33:"1280x960" 60 108000 1280 1376 1488 1800 960 961 964 1000 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 32:"1280x800" 60 83500 1280 1352 1480 1680 800 803 809 831 0x40 0x9 [drm:drm_mode_debug_printmodeline], Modeline 41:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa [drm:drm_mode_debug_printmodeline], Modeline 38:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 39:"800x600" 56 36000 800 824 896 1024 600 601 603 625 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 40:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa [drm:drm_mode_getconnector], connector id 14: [drm:drm_mode_getconnector], connector id 15: [drm:drm_helper_probe_single_connector_modes], HDMI Type A-1 [drm:drm_helper_probe_single_connector_modes], Probed modes for HDMI Type A-1 [drm:drm_mode_debug_printmodeline], Modeline 43:"1920x1080" 60 138500 1920 1968 2000 2080 1080 1083 1088 1111 0x48 0x9 [drm:drm_mode_debug_printmodeline], Modeline 48:"1600x1200" 60 162000 1600 1664 1856 2160 1200 1201 1204 1250 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 49:"1680x1050" 60 146250 1680 1784 1960 2240 1050 1053 1059 1089 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 46:"1280x1024" 60 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 47:"1440x900" 60 106500 1440 1520 1672 1904 900 903 909 934 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 45:"1280x960" 60 108000 1280 1376 1488 1800 960 961 964 1000 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 44:"1280x800" 60 83500 1280 1352 1480 1680 800 803 809 831 0x40 0x9 [drm:drm_mode_debug_printmodeline], Modeline 53:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa [drm:drm_mode_debug_printmodeline], Modeline 50:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 51:"800x600" 56 36000 800 824 896 1024 600 601 603 625 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 52:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa [drm:drm_mode_getconnector], connector id 15: [drm:drm_crtc_helper_set_config], [drm:drm_crtc_helper_set_config], crtc: ffff88013382b000 7 fb: ffff880127dc1780 connectors: ffff88012fc71e10 num_connectors: 1 (x, y) (0, 0) [drm:drm_crtc_helper_set_config], crtc has no fb, full mode set [drm:drm_crtc_helper_set_config], modes are different, full mode set [drm:drm_mode_debug_printmodeline], Modeline 0:"" 0 0 0 0 0 0 0 0 0 0 0x0 0x0 [drm:drm_mode_debug_printmodeline], Modeline 59:"1920x1080" 0 138500 1920 1968 2000 2080 1080 1083 1088 1111 0x0 0x9 [drm:drm_crtc_helper_set_config], crtc changed, full mode switch [drm:drm_crtc_helper_set_config], setting connector 14 crtc to ffff88013382b000 [drm:drm_crtc_helper_set_config], crtc changed, full mode switch [drm:drm_crtc_helper_set_config], setting connector 15 crtc to (null) [drm:drm_crtc_helper_set_config], attempting to set mode from userspace [drm:drm_mode_debug_printmodeline], Modeline 59:"1920x1080" 0 138500 1920 1968 2000 2080 1080 1083 1088 1111 0x0 0x9 [drm:drm_crtc_helper_set_config], [drm:drm_crtc_helper_set_config], crtc: ffff88013382e000 8 fb: ffff880133b26b40 connectors: ffff88012fc71e08 num_connectors: 1 (x, y) (0, 0) [drm:drm_crtc_helper_set_config], crtc has no fb, full mode set [drm:drm_crtc_helper_set_config], setting connector 14 crtc to (null) [drm:drm_crtc_helper_set_config], crtc changed, full mode switch [drm:drm_crtc_helper_set_config], setting connector 15 crtc to ffff88013382e000 [drm:drm_crtc_helper_set_config], attempting to set mode from userspace [drm:drm_mode_debug_printmodeline], Modeline 62:"1920x1080" 0 138500 1920 1968 2000 2080 1080 1083 1088 1111 0x0 0x9 [drm:drm_crtc_helper_set_config], [drm:drm_crtc_helper_set_config], crtc: ffff88013382b000 7 fb: ffff880127cdbcc0 connectors: ffff8801304fdea8 num_connectors: 1 (x, y) (1680, 0) [drm:drm_crtc_helper_set_config], crtc has no fb, full mode set [drm:drm_crtc_helper_set_config], modes are different, full mode set [drm:drm_mode_debug_printmodeline], Modeline 0:"" 0 0 0 0 0 0 0 0 0 0 0x0 0x0 [drm:drm_mode_debug_printmodeline], Modeline 58:"1920x1080" 0 138500 1920 1968 2000 2080 1080 1083 1088 1111 0x0 0x9 [drm:drm_crtc_helper_set_config], crtc changed, full mode switch [drm:drm_crtc_helper_set_config], setting connector 14 crtc to ffff88013382b000 [drm:drm_crtc_helper_set_config], crtc changed, full mode switch [drm:drm_crtc_helper_set_config], setting connector 15 crtc to (null) [drm:drm_crtc_helper_set_config], attempting to set mode from userspace [drm:drm_mode_debug_printmodeline], Modeline 58:"1920x1080" 0 138500 1920 1968 2000 2080 1080 1083 1088 1111 0x0 0x9 [drm:drm_crtc_helper_set_config], [drm:drm_crtc_helper_set_config], crtc: ffff88013382e000 8 fb: ffff880127cdbcc0 connectors: ffff88012fc71e08 num_connectors: 1 (x, y) (3600, 0) [drm:drm_crtc_helper_set_config], crtc has no fb, full mode set [drm:drm_crtc_helper_set_config], setting connector 14 crtc to (null) [drm:drm_crtc_helper_set_config], crtc changed, full mode switch [drm:drm_crtc_helper_set_config], setting connector 15 crtc to ffff88013382e000 [drm:drm_crtc_helper_set_config], attempting to set mode from userspace [drm:drm_mode_debug_printmodeline], Modeline 61:"1920x1080" 0 138500 1920 1968 2000 2080 1080 1083 1088 1111 0x0 0x9 [drm:drm_mode_getconnector], connector id 10: [drm:drm_helper_probe_single_connector_modes], VGA-1 [drm:drm_helper_probe_single_connector_modes], VGA-1 is disconnected [drm:drm_mode_getconnector], connector id 10: [drm:drm_helper_probe_single_connector_modes], VGA-1 [drm:drm_helper_probe_single_connector_modes], VGA-1 is disconnected [drm:drm_mode_getconnector], connector id 12: [drm:drm_helper_probe_single_connector_modes], LVDS-1 [drm:drm_helper_probe_single_connector_modes], Probed modes for LVDS-1 [drm:drm_mode_debug_printmodeline], Modeline 16:"1680x1050" 60 121000 1680 1744 1840 1884 1050 1056 1062 1070 0x48 0xa [drm:drm_mode_debug_printmodeline], Modeline 29:"1400x1050" 60 121750 1400 1488 1632 1864 1050 1053 1057 1089 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 27:"1280x1024" 60 109000 1280 1368 1496 1712 1024 1027 1034 1063 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 28:"1440x900" 60 106500 1440 1528 1672 1904 900 903 909 934 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 26:"1280x960" 60 101250 1280 1360 1488 1696 960 963 967 996 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 25:"1280x854" 60 89250 1280 1352 1480 1680 854 857 867 887 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 24:"1280x800" 60 83500 1280 1352 1480 1680 800 803 809 831 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 23:"1280x720" 60 74500 1280 1344 1472 1664 720 723 728 748 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 22:"1152x768" 60 71750 1152 1216 1328 1504 768 771 781 798 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 21:"1024x768" 60 63500 1024 1072 1176 1328 768 771 775 798 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 19:"800x600" 60 38250 800 832 912 1024 600 603 607 624 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 20:"848x480" 60 31500 848 872 952 1056 480 483 493 500 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 18:"720x480" 60 26750 720 744 808 896 480 483 493 500 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 17:"640x480" 59 23750 640 664 720 800 480 483 487 500 0x0 0x6 [drm:drm_mode_getconnector], connector id 12: [drm:drm_mode_getconnector], connector id 14: [drm:drm_helper_probe_single_connector_modes], DVI-D-1 [drm:drm_helper_probe_single_connector_modes], Probed modes for DVI-D-1 [drm:drm_mode_debug_printmodeline], Modeline 31:"1920x1080" 60 138500 1920 1968 2000 2080 1080 1083 1088 1111 0x48 0x9 [drm:drm_mode_debug_printmodeline], Modeline 36:"1600x1200" 60 162000 1600 1664 1856 2160 1200 1201 1204 1250 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 37:"1680x1050" 60 146250 1680 1784 1960 2240 1050 1053 1059 1089 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 34:"1280x1024" 60 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 35:"1440x900" 60 106500 1440 1520 1672 1904 900 903 909 934 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 33:"1280x960" 60 108000 1280 1376 1488 1800 960 961 964 1000 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 32:"1280x800" 60 83500 1280 1352 1480 1680 800 803 809 831 0x40 0x9 [drm:drm_mode_debug_printmodeline], Modeline 41:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa [drm:drm_mode_debug_printmodeline], Modeline 38:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 39:"800x600" 56 36000 800 824 896 1024 600 601 603 625 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 40:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa [drm:drm_mode_getconnector], connector id 14: [drm:drm_mode_getconnector], connector id 15: [drm:drm_helper_probe_single_connector_modes], HDMI Type A-1 [drm:drm_helper_probe_single_connector_modes], Probed modes for HDMI Type A-1 [drm:drm_mode_debug_printmodeline], Modeline 43:"1920x1080" 60 138500 1920 1968 2000 2080 1080 1083 1088 1111 0x48 0x9 [drm:drm_mode_debug_printmodeline], Modeline 48:"1600x1200" 60 162000 1600 1664 1856 2160 1200 1201 1204 1250 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 49:"1680x1050" 60 146250 1680 1784 1960 2240 1050 1053 1059 1089 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 46:"1280x1024" 60 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 47:"1440x900" 60 106500 1440 1520 1672 1904 900 903 909 934 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 45:"1280x960" 60 108000 1280 1376 1488 1800 960 961 964 1000 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 44:"1280x800" 60 83500 1280 1352 1480 1680 800 803 809 831 0x40 0x9 [drm:drm_mode_debug_printmodeline], Modeline 53:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa [drm:drm_mode_debug_printmodeline], Modeline 50:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 51:"800x600" 56 36000 800 824 896 1024 600 601 603 625 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 52:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa [drm:drm_mode_getconnector], connector id 15: [drm:drm_mode_getconnector], connector id 10: [drm:drm_helper_probe_single_connector_modes], VGA-1 [drm:drm_helper_probe_single_connector_modes], VGA-1 is disconnected [drm:drm_mode_getconnector], connector id 10: [drm:drm_helper_probe_single_connector_modes], VGA-1 [drm:drm_helper_probe_single_connector_modes], VGA-1 is disconnected [drm:drm_mode_getconnector], connector id 12: [drm:drm_helper_probe_single_connector_modes], LVDS-1 [drm:drm_helper_probe_single_connector_modes], Probed modes for LVDS-1 [drm:drm_mode_debug_printmodeline], Modeline 16:"1680x1050" 60 121000 1680 1744 1840 1884 1050 1056 1062 1070 0x48 0xa [drm:drm_mode_debug_printmodeline], Modeline 29:"1400x1050" 60 121750 1400 1488 1632 1864 1050 1053 1057 1089 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 27:"1280x1024" 60 109000 1280 1368 1496 1712 1024 1027 1034 1063 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 28:"1440x900" 60 106500 1440 1528 1672 1904 900 903 909 934 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 26:"1280x960" 60 101250 1280 1360 1488 1696 960 963 967 996 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 25:"1280x854" 60 89250 1280 1352 1480 1680 854 857 867 887 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 24:"1280x800" 60 83500 1280 1352 1480 1680 800 803 809 831 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 23:"1280x720" 60 74500 1280 1344 1472 1664 720 723 728 748 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 22:"1152x768" 60 71750 1152 1216 1328 1504 768 771 781 798 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 21:"1024x768" 60 63500 1024 1072 1176 1328 768 771 775 798 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 19:"800x600" 60 38250 800 832 912 1024 600 603 607 624 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 20:"848x480" 60 31500 848 872 952 1056 480 483 493 500 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 18:"720x480" 60 26750 720 744 808 896 480 483 493 500 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 17:"640x480" 59 23750 640 664 720 800 480 483 487 500 0x0 0x6 [drm:drm_mode_getconnector], connector id 12: [drm:drm_mode_getconnector], connector id 14: [drm:drm_helper_probe_single_connector_modes], DVI-D-1 [drm:drm_helper_probe_single_connector_modes], Probed modes for DVI-D-1 [drm:drm_mode_debug_printmodeline], Modeline 31:"1920x1080" 60 138500 1920 1968 2000 2080 1080 1083 1088 1111 0x48 0x9 [drm:drm_mode_debug_printmodeline], Modeline 36:"1600x1200" 60 162000 1600 1664 1856 2160 1200 1201 1204 1250 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 37:"1680x1050" 60 146250 1680 1784 1960 2240 1050 1053 1059 1089 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 34:"1280x1024" 60 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 35:"1440x900" 60 106500 1440 1520 1672 1904 900 903 909 934 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 33:"1280x960" 60 108000 1280 1376 1488 1800 960 961 964 1000 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 32:"1280x800" 60 83500 1280 1352 1480 1680 800 803 809 831 0x40 0x9 [drm:drm_mode_debug_printmodeline], Modeline 41:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa [drm:drm_mode_debug_printmodeline], Modeline 38:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 39:"800x600" 56 36000 800 824 896 1024 600 601 603 625 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 40:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa [drm:drm_mode_getconnector], connector id 14: [drm:drm_mode_getconnector], connector id 15: [drm:drm_helper_probe_single_connector_modes], HDMI Type A-1 [drm:drm_helper_probe_single_connector_modes], Probed modes for HDMI Type A-1 [drm:drm_mode_debug_printmodeline], Modeline 43:"1920x1080" 60 138500 1920 1968 2000 2080 1080 1083 1088 1111 0x48 0x9 [drm:drm_mode_debug_printmodeline], Modeline 48:"1600x1200" 60 162000 1600 1664 1856 2160 1200 1201 1204 1250 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 49:"1680x1050" 60 146250 1680 1784 1960 2240 1050 1053 1059 1089 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 46:"1280x1024" 60 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 47:"1440x900" 60 106500 1440 1520 1672 1904 900 903 909 934 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 45:"1280x960" 60 108000 1280 1376 1488 1800 960 961 964 1000 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 44:"1280x800" 60 83500 1280 1352 1480 1680 800 803 809 831 0x40 0x9 [drm:drm_mode_debug_printmodeline], Modeline 53:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa [drm:drm_mode_debug_printmodeline], Modeline 50:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 51:"800x600" 56 36000 800 824 896 1024 600 601 603 625 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 52:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa [drm:drm_mode_getconnector], connector id 15: [drm:drm_mode_getconnector], connector id 10: [drm:drm_helper_probe_single_connector_modes], VGA-1 [drm:drm_helper_probe_single_connector_modes], VGA-1 is disconnected [drm:drm_mode_getconnector], connector id 10: [drm:drm_helper_probe_single_connector_modes], VGA-1 [drm:drm_helper_probe_single_connector_modes], VGA-1 is disconnected [drm:drm_mode_getconnector], connector id 12: [drm:drm_helper_probe_single_connector_modes], LVDS-1 [drm:drm_helper_probe_single_connector_modes], Probed modes for LVDS-1 [drm:drm_mode_debug_printmodeline], Modeline 16:"1680x1050" 60 121000 1680 1744 1840 1884 1050 1056 1062 1070 0x48 0xa [drm:drm_mode_debug_printmodeline], Modeline 29:"1400x1050" 60 121750 1400 1488 1632 1864 1050 1053 1057 1089 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 27:"1280x1024" 60 109000 1280 1368 1496 1712 1024 1027 1034 1063 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 28:"1440x900" 60 106500 1440 1528 1672 1904 900 903 909 934 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 26:"1280x960" 60 101250 1280 1360 1488 1696 960 963 967 996 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 25:"1280x854" 60 89250 1280 1352 1480 1680 854 857 867 887 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 24:"1280x800" 60 83500 1280 1352 1480 1680 800 803 809 831 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 23:"1280x720" 60 74500 1280 1344 1472 1664 720 723 728 748 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 22:"1152x768" 60 71750 1152 1216 1328 1504 768 771 781 798 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 21:"1024x768" 60 63500 1024 1072 1176 1328 768 771 775 798 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 19:"800x600" 60 38250 800 832 912 1024 600 603 607 624 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 20:"848x480" 60 31500 848 872 952 1056 480 483 493 500 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 18:"720x480" 60 26750 720 744 808 896 480 483 493 500 0x0 0x6 [drm:drm_mode_debug_printmodeline], Modeline 17:"640x480" 59 23750 640 664 720 800 480 483 487 500 0x0 0x6 [drm:drm_mode_getconnector], connector id 12: [drm:drm_mode_getconnector], connector id 14: [drm:drm_helper_probe_single_connector_modes], DVI-D-1 [drm:drm_helper_probe_single_connector_modes], Probed modes for DVI-D-1 [drm:drm_mode_debug_printmodeline], Modeline 31:"1920x1080" 60 138500 1920 1968 2000 2080 1080 1083 1088 1111 0x48 0x9 [drm:drm_mode_debug_printmodeline], Modeline 36:"1600x1200" 60 162000 1600 1664 1856 2160 1200 1201 1204 1250 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 37:"1680x1050" 60 146250 1680 1784 1960 2240 1050 1053 1059 1089 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 34:"1280x1024" 60 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 35:"1440x900" 60 106500 1440 1520 1672 1904 900 903 909 934 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 33:"1280x960" 60 108000 1280 1376 1488 1800 960 961 964 1000 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 32:"1280x800" 60 83500 1280 1352 1480 1680 800 803 809 831 0x40 0x9 [drm:drm_mode_debug_printmodeline], Modeline 41:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa [drm:drm_mode_debug_printmodeline], Modeline 38:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 39:"800x600" 56 36000 800 824 896 1024 600 601 603 625 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 40:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa [drm:drm_mode_getconnector], connector id 14: [drm:drm_mode_getconnector], connector id 15: [drm:drm_helper_probe_single_connector_modes], HDMI Type A-1 [drm:drm_helper_probe_single_connector_modes], Probed modes for HDMI Type A-1 [drm:drm_mode_debug_printmodeline], Modeline 43:"1920x1080" 60 138500 1920 1968 2000 2080 1080 1083 1088 1111 0x48 0x9 [drm:drm_mode_debug_printmodeline], Modeline 48:"1600x1200" 60 162000 1600 1664 1856 2160 1200 1201 1204 1250 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 49:"1680x1050" 60 146250 1680 1784 1960 2240 1050 1053 1059 1089 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 46:"1280x1024" 60 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 47:"1440x900" 60 106500 1440 1520 1672 1904 900 903 909 934 0x40 0x6 [drm:drm_mode_debug_printmodeline], Modeline 45:"1280x960" 60 108000 1280 1376 1488 1800 960 961 964 1000 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 44:"1280x800" 60 83500 1280 1352 1480 1680 800 803 809 831 0x40 0x9 [drm:drm_mode_debug_printmodeline], Modeline 53:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa [drm:drm_mode_debug_printmodeline], Modeline 50:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 51:"800x600" 56 36000 800 824 896 1024 600 601 603 625 0x40 0x5 [drm:drm_mode_debug_printmodeline], Modeline 52:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa [drm:drm_mode_getconnector], connector id 15:
-- Pasi
On Sat, Jun 19, 2010 at 10:24:53PM +0300, Pasi Kärkkäinen wrote:
On Fri, Jun 18, 2010 at 09:45:22PM +0300, Pasi Kärkkäinen wrote:
> > > > I wonder if that HDMI-0 is the key to the problem.. I don't have anything connected > > to the HDMI connector on the laptop. There's no HDMI connector on the dock, it's only in the laptop. > > Indeed that is the problem. On your system the HDMI and DVI ports > share the same encoder and DDC line so they will both come up as > connected since the line is shared. The driver used to check the edid > when the lines where shared and select HDMI or DVI based on the EDID, > but perhaps that got broken at some point. >
Makes sense. Does some kernel option/parameter affect that?
No. I'll check the code and see if I can figure out what's going on.
Ok, thanks!
Hello,
I'll be near the dock tomorrow.. So if you have a chance of looking at this, and want me to test something, I could do it on thursday/friday.
I just tried the latest Fedora 13 kernel (2.6.33.5-124.fc13.x86_64) and the latest Fedora development (rawhide 2.6.34-43.fc14.x86_64) kernel, but the behaviour was the same.
Connecting display to the DVI connector makes the HDMI connector also show the same display, breaking things..
Here's a new log with drm.debug=4.. that's the biggest debug level that still allows me to grab the whole dmesg log before it's overwritten by huge amount of debug messages.
Full dmesg log: http://pasik.reaktio.net/fedora/bz593429/both-internal-and-external-displays...
Ok.. I did some debugging, and figured out how to make it work. Patch attached. I'm not sure if this is the correct method.. someone familiar with the code should review it.
Some debugging information for my system (HP EliteBook 8530p):
[drm] Radeon Display Connectors [drm] Connector 0: [drm] VGA [drm] DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c [drm] Encoders: [drm] CRT1: INTERNAL_KLDSCP_DAC1
connector->devices for VGA is: 1
[drm] Connector 1: [drm] LVDS [drm] Encoders: [drm] LCD1: INTERNAL_KLDSCP_LVTMA
connector->devices for LVDS is: 2
[drm] Connector 2: [drm] DVI-D [drm] HPD1 [drm] DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c [drm] Encoders: [drm] DFP1: INTERNAL_UNIPHY
connector->devices for DVI-D is: 8
[drm] Connector 3: [drm] HDMI-A [drm] HPD2 [drm] DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c [drm] Encoders: [drm] DFP2: INTERNAL_UNIPHY
connector->devices for HDMI-A is: 128
The code in radeon_connectors.c in radeon_dvi_detect():
/* multiple connectors on the same encoder with the same ddc line * This tends to be HDMI and DVI on the same encoder with the * same ddc line. If the edid says HDMI, consider the HDMI port * connected and the DVI port disconnected. If the edid doesn't * say HDMI, vice versa. */ if (radeon_connector->shared_ddc && (ret == connector_status_connected)) { struct drm_device *dev = connector->dev; struct drm_connector *list_connector; struct radeon_connector *list_radeon_connector; list_for_each_entry(list_connector, &dev->mode_config.connector_list, head) { if (connector == list_connector) continue; list_radeon_connector = to_radeon_connector(list_connector); if (radeon_connector->devices == list_radeon_connector->devices) { if (drm_detect_hdmi_monitor(radeon_connector->edid)) { if (connector->connector_type == DRM_MODE_CONNECTOR_DVID) { kfree(radeon_connector->edid); radeon_connector->edid = NULL; ret = connector_status_disconnected; } } else { if ((connector->connector_type == DRM_MODE_CONNECTOR_HDMIA) || (connector->connector_type == DRM_MODE_CONNECTOR_HDMIB)) { kfree(radeon_connector->edid); radeon_connector->edid = NULL; ret = connector_status_disconnected; } } } } }
Ok, so at least on my system the "if (connector == list_connector)" will SKIP the connector that actually would match in "if (radeon_connector->devices == list_radeon_connector->devices)", and thus the drm_detect_hdmi_monitor() is never called.
My patch removes that "if (connector == list_connector)" check and fixes the problem on my system. Is this the correct way to do it?
radeon-fix-shared_ddc-dvi-hdmi-edid-detection.patch: - allow checking against all connectors to be able to properly detect shared_ddc dvi/hdmi displays - patch applies to 2.6.33.5, 2.6.34 and 2.6.35-rc3. Tested with Fedora 13 2.6.33.5-124.fc13.x86_64. - Signed-off-by: Pasi Kärkkäinen pasik@iki.fi
Thanks!
Btw. I still have some other problems related to lid open/closed detection for the LVDS but I'll open another thread about that :)
-- Pasi
On Mon, Jun 21, 2010 at 12:23:10PM +0300, Pasi Kärkkäinen wrote:
On Sat, Jun 19, 2010 at 10:24:53PM +0300, Pasi Kärkkäinen wrote:
On Fri, Jun 18, 2010 at 09:45:22PM +0300, Pasi Kärkkäinen wrote:
>> > >> > I wonder if that HDMI-0 is the key to the problem.. I don't have anything connected >> > to the HDMI connector on the laptop. There's no HDMI connector on the dock, it's only in the laptop. >> >> Indeed that is the problem. On your system the HDMI and DVI ports >> share the same encoder and DDC line so they will both come up as >> connected since the line is shared. The driver used to check the edid >> when the lines where shared and select HDMI or DVI based on the EDID, >> but perhaps that got broken at some point. >> > > Makes sense. Does some kernel option/parameter affect that?
No. I'll check the code and see if I can figure out what's going on.
Ok, thanks!
Hello,
I'll be near the dock tomorrow.. So if you have a chance of looking at this, and want me to test something, I could do it on thursday/friday.
I just tried the latest Fedora 13 kernel (2.6.33.5-124.fc13.x86_64) and the latest Fedora development (rawhide 2.6.34-43.fc14.x86_64) kernel, but the behaviour was the same.
Connecting display to the DVI connector makes the HDMI connector also show the same display, breaking things..
Here's a new log with drm.debug=4.. that's the biggest debug level that still allows me to grab the whole dmesg log before it's overwritten by huge amount of debug messages.
Full dmesg log: http://pasik.reaktio.net/fedora/bz593429/both-internal-and-external-displays...
Ok.. I did some debugging, and figured out how to make it work. Patch attached. I'm not sure if this is the correct method.. someone familiar with the code should review it.
Some debugging information for my system (HP EliteBook 8530p):
[drm] Radeon Display Connectors [drm] Connector 0: [drm] VGA [drm] DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c [drm] Encoders: [drm] CRT1: INTERNAL_KLDSCP_DAC1
connector->devices for VGA is: 1
[drm] Connector 1: [drm] LVDS [drm] Encoders: [drm] LCD1: INTERNAL_KLDSCP_LVTMA
connector->devices for LVDS is: 2
[drm] Connector 2: [drm] DVI-D [drm] HPD1 [drm] DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c [drm] Encoders: [drm] DFP1: INTERNAL_UNIPHY
connector->devices for DVI-D is: 8
[drm] Connector 3: [drm] HDMI-A [drm] HPD2 [drm] DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c [drm] Encoders: [drm] DFP2: INTERNAL_UNIPHY
connector->devices for HDMI-A is: 128
The code in radeon_connectors.c in radeon_dvi_detect():
/* multiple connectors on the same encoder with the same ddc line * This tends to be HDMI and DVI on the same encoder with the * same ddc line. If the edid says HDMI, consider the HDMI port * connected and the DVI port disconnected. If the edid doesn't * say HDMI, vice versa. */ if (radeon_connector->shared_ddc && (ret == connector_status_connected)) { struct drm_device *dev = connector->dev; struct drm_connector *list_connector; struct radeon_connector *list_radeon_connector; list_for_each_entry(list_connector, &dev->mode_config.connector_list, head) { if (connector == list_connector) continue; list_radeon_connector = to_radeon_connector(list_connector); if (radeon_connector->devices == list_radeon_connector->devices) { if (drm_detect_hdmi_monitor(radeon_connector->edid)) { if (connector->connector_type == DRM_MODE_CONNECTOR_DVID) { kfree(radeon_connector->edid); radeon_connector->edid = NULL; ret = connector_status_disconnected; } } else { if ((connector->connector_type == DRM_MODE_CONNECTOR_HDMIA) || (connector->connector_type == DRM_MODE_CONNECTOR_HDMIB)) { kfree(radeon_connector->edid); radeon_connector->edid = NULL; ret = connector_status_disconnected; } } } } }
Ok, so at least on my system the "if (connector == list_connector)" will SKIP the connector that actually would match in "if (radeon_connector->devices == list_radeon_connector->devices)", and thus the drm_detect_hdmi_monitor() is never called.
My patch removes that "if (connector == list_connector)" check and fixes the problem on my system. Is this the correct way to do it?
radeon-fix-shared_ddc-dvi-hdmi-edid-detection.patch:
- allow checking against all connectors to be able to properly detect shared_ddc dvi/hdmi displays
- patch applies to 2.6.33.5, 2.6.34 and 2.6.35-rc3. Tested with Fedora 13 2.6.33.5-124.fc13.x86_64.
- Signed-off-by: Pasi Kärkkäinen pasik@iki.fi
And actually attached now :)
-- Pasi
Thanks!
Btw. I still have some other problems related to lid open/closed detection for the LVDS but I'll open another thread about that :)
-- Pasi
dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
On Mon, Jun 21, 2010 at 12:31:22PM +0300, Pasi Kärkkäinen wrote:
On Mon, Jun 21, 2010 at 12:23:10PM +0300, Pasi Kärkkäinen wrote:
On Sat, Jun 19, 2010 at 10:24:53PM +0300, Pasi Kärkkäinen wrote:
On Fri, Jun 18, 2010 at 09:45:22PM +0300, Pasi Kärkkäinen wrote:
> >> > > >> > I wonder if that HDMI-0 is the key to the problem.. I don't have anything connected > >> > to the HDMI connector on the laptop. There's no HDMI connector on the dock, it's only in the laptop. > >> > >> Indeed that is the problem. On your system the HDMI and DVI ports > >> share the same encoder and DDC line so they will both come up as > >> connected since the line is shared. The driver used to check the edid > >> when the lines where shared and select HDMI or DVI based on the EDID, > >> but perhaps that got broken at some point. > >> > > > > Makes sense. Does some kernel option/parameter affect that? > > No. I'll check the code and see if I can figure out what's going on. >
Ok, thanks!
Hello,
I'll be near the dock tomorrow.. So if you have a chance of looking at this, and want me to test something, I could do it on thursday/friday.
I just tried the latest Fedora 13 kernel (2.6.33.5-124.fc13.x86_64) and the latest Fedora development (rawhide 2.6.34-43.fc14.x86_64) kernel, but the behaviour was the same.
Connecting display to the DVI connector makes the HDMI connector also show the same display, breaking things..
Here's a new log with drm.debug=4.. that's the biggest debug level that still allows me to grab the whole dmesg log before it's overwritten by huge amount of debug messages.
Full dmesg log: http://pasik.reaktio.net/fedora/bz593429/both-internal-and-external-displays...
Ok.. I did some debugging, and figured out how to make it work. Patch attached. I'm not sure if this is the correct method.. someone familiar with the code should review it.
Some debugging information for my system (HP EliteBook 8530p):
[drm] Radeon Display Connectors [drm] Connector 0: [drm] VGA [drm] DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c [drm] Encoders: [drm] CRT1: INTERNAL_KLDSCP_DAC1
connector->devices for VGA is: 1
[drm] Connector 1: [drm] LVDS [drm] Encoders: [drm] LCD1: INTERNAL_KLDSCP_LVTMA
connector->devices for LVDS is: 2
[drm] Connector 2: [drm] DVI-D [drm] HPD1 [drm] DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c [drm] Encoders: [drm] DFP1: INTERNAL_UNIPHY
connector->devices for DVI-D is: 8
[drm] Connector 3: [drm] HDMI-A [drm] HPD2 [drm] DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c [drm] Encoders: [drm] DFP2: INTERNAL_UNIPHY
connector->devices for HDMI-A is: 128
The code in radeon_connectors.c in radeon_dvi_detect():
/* multiple connectors on the same encoder with the same ddc line * This tends to be HDMI and DVI on the same encoder with the * same ddc line. If the edid says HDMI, consider the HDMI port * connected and the DVI port disconnected. If the edid doesn't * say HDMI, vice versa. */ if (radeon_connector->shared_ddc && (ret == connector_status_connected)) { struct drm_device *dev = connector->dev; struct drm_connector *list_connector; struct radeon_connector *list_radeon_connector; list_for_each_entry(list_connector, &dev->mode_config.connector_list, head) { if (connector == list_connector) continue; list_radeon_connector = to_radeon_connector(list_connector); if (radeon_connector->devices == list_radeon_connector->devices) { if (drm_detect_hdmi_monitor(radeon_connector->edid)) { if (connector->connector_type == DRM_MODE_CONNECTOR_DVID) { kfree(radeon_connector->edid); radeon_connector->edid = NULL; ret = connector_status_disconnected; } } else { if ((connector->connector_type == DRM_MODE_CONNECTOR_HDMIA) || (connector->connector_type == DRM_MODE_CONNECTOR_HDMIB)) { kfree(radeon_connector->edid); radeon_connector->edid = NULL; ret = connector_status_disconnected; } } } } }
Ok, so at least on my system the "if (connector == list_connector)" will SKIP the connector that actually would match in "if (radeon_connector->devices == list_radeon_connector->devices)", and thus the drm_detect_hdmi_monitor() is never called.
My patch removes that "if (connector == list_connector)" check and fixes the problem on my system. Is this the correct way to do it?
radeon-fix-shared_ddc-dvi-hdmi-edid-detection.patch:
- allow checking against all connectors to be able to properly detect shared_ddc dvi/hdmi displays
- patch applies to 2.6.33.5, 2.6.34 and 2.6.35-rc3. Tested with Fedora 13 2.6.33.5-124.fc13.x86_64.
- Signed-off-by: Pasi Kärkkäinen pasik@iki.fi
And actually attached now :)
-- Pasi
I am not sure your patch is right, my guess is that devices field of radeon connector structure btw the HDMI & DVI connector are different and thus that drm_detect_hdmi_monitor is not call. I expect it's normal for the device field to be different (my understanding being that HDMI will have one more bit set than the DVI connector). Bottom line is i think we want to discard non hdmi connector just in case we face shared connector.
Alex would have to comment on the device field test, maybe your atombios is broken. Does it works if instead of removing if (connector == list_connector) continue; You remove : if (radeon_connector->devices == list_radeon_connector->devices)
Also can you print the radeon_connector->devices of all your connector so we can compare them.
Cheers, Jerome
On Mon, Jun 21, 2010 at 02:45:44PM +0200, Jerome Glisse wrote:
On Mon, Jun 21, 2010 at 12:31:22PM +0300, Pasi Kärkkäinen wrote:
On Mon, Jun 21, 2010 at 12:23:10PM +0300, Pasi Kärkkäinen wrote:
On Sat, Jun 19, 2010 at 10:24:53PM +0300, Pasi Kärkkäinen wrote:
On Fri, Jun 18, 2010 at 09:45:22PM +0300, Pasi Kärkkäinen wrote:
> > >> > > > >> > I wonder if that HDMI-0 is the key to the problem.. I don't have anything connected > > >> > to the HDMI connector on the laptop. There's no HDMI connector on the dock, it's only in the laptop. > > >> > > >> Indeed that is the problem. On your system the HDMI and DVI ports > > >> share the same encoder and DDC line so they will both come up as > > >> connected since the line is shared. The driver used to check the edid > > >> when the lines where shared and select HDMI or DVI based on the EDID, > > >> but perhaps that got broken at some point. > > >> > > > > > > Makes sense. Does some kernel option/parameter affect that? > > > > No. I'll check the code and see if I can figure out what's going on. > > > > Ok, thanks! >
Hello,
I'll be near the dock tomorrow.. So if you have a chance of looking at this, and want me to test something, I could do it on thursday/friday.
I just tried the latest Fedora 13 kernel (2.6.33.5-124.fc13.x86_64) and the latest Fedora development (rawhide 2.6.34-43.fc14.x86_64) kernel, but the behaviour was the same.
Connecting display to the DVI connector makes the HDMI connector also show the same display, breaking things..
Here's a new log with drm.debug=4.. that's the biggest debug level that still allows me to grab the whole dmesg log before it's overwritten by huge amount of debug messages.
Full dmesg log: http://pasik.reaktio.net/fedora/bz593429/both-internal-and-external-displays...
Ok.. I did some debugging, and figured out how to make it work. Patch attached. I'm not sure if this is the correct method.. someone familiar with the code should review it.
Some debugging information for my system (HP EliteBook 8530p):
[drm] Radeon Display Connectors [drm] Connector 0: [drm] VGA [drm] DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c [drm] Encoders: [drm] CRT1: INTERNAL_KLDSCP_DAC1
connector->devices for VGA is: 1
[drm] Connector 1: [drm] LVDS [drm] Encoders: [drm] LCD1: INTERNAL_KLDSCP_LVTMA
connector->devices for LVDS is: 2
[drm] Connector 2: [drm] DVI-D [drm] HPD1 [drm] DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c [drm] Encoders: [drm] DFP1: INTERNAL_UNIPHY
connector->devices for DVI-D is: 8
[drm] Connector 3: [drm] HDMI-A [drm] HPD2 [drm] DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c [drm] Encoders: [drm] DFP2: INTERNAL_UNIPHY
connector->devices for HDMI-A is: 128
The code in radeon_connectors.c in radeon_dvi_detect():
/* multiple connectors on the same encoder with the same ddc line * This tends to be HDMI and DVI on the same encoder with the * same ddc line. If the edid says HDMI, consider the HDMI port * connected and the DVI port disconnected. If the edid doesn't * say HDMI, vice versa. */ if (radeon_connector->shared_ddc && (ret == connector_status_connected)) { struct drm_device *dev = connector->dev; struct drm_connector *list_connector; struct radeon_connector *list_radeon_connector; list_for_each_entry(list_connector, &dev->mode_config.connector_list, head) { if (connector == list_connector) continue; list_radeon_connector = to_radeon_connector(list_connector); if (radeon_connector->devices == list_radeon_connector->devices) { if (drm_detect_hdmi_monitor(radeon_connector->edid)) { if (connector->connector_type == DRM_MODE_CONNECTOR_DVID) { kfree(radeon_connector->edid); radeon_connector->edid = NULL; ret = connector_status_disconnected; } } else { if ((connector->connector_type == DRM_MODE_CONNECTOR_HDMIA) || (connector->connector_type == DRM_MODE_CONNECTOR_HDMIB)) { kfree(radeon_connector->edid); radeon_connector->edid = NULL; ret = connector_status_disconnected; } } } } }
Ok, so at least on my system the "if (connector == list_connector)" will SKIP the connector that actually would match in "if (radeon_connector->devices == list_radeon_connector->devices)", and thus the drm_detect_hdmi_monitor() is never called.
My patch removes that "if (connector == list_connector)" check and fixes the problem on my system. Is this the correct way to do it?
radeon-fix-shared_ddc-dvi-hdmi-edid-detection.patch:
- allow checking against all connectors to be able to properly detect shared_ddc dvi/hdmi displays
- patch applies to 2.6.33.5, 2.6.34 and 2.6.35-rc3. Tested with Fedora 13 2.6.33.5-124.fc13.x86_64.
- Signed-off-by: Pasi Kärkkäinen pasik@iki.fi
And actually attached now :)
-- Pasi
I am not sure your patch is right, my guess is that devices field of radeon connector structure btw the HDMI & DVI connector are different and thus that drm_detect_hdmi_monitor is not call. I expect it's normal for the device field to be different (my understanding being that HDMI will have one more bit set than the DVI connector). Bottom line is i think we want to discard non hdmi connector just in case we face shared connector.
Alex would have to comment on the device field test, maybe your atombios is broken. Does it works if instead of removing if (connector == list_connector) continue; You remove : if (radeon_connector->devices == list_radeon_connector->devices)
I'll have to try that..
Also can you print the radeon_connector->devices of all your connector so we can compare them.
I already listed the values above, like this:
[drm] Radeon Display Connectors [drm] Connector 0: [drm] VGA [drm] DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c [drm] Encoders: [drm] CRT1: INTERNAL_KLDSCP_DAC1
connector->devices for VGA is: 1
[drm] Connector 1: [drm] LVDS [drm] Encoders: [drm] LCD1: INTERNAL_KLDSCP_LVTMA
connector->devices for LVDS is: 2
[drm] Connector 2: [drm] DVI-D [drm] HPD1 [drm] DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c [drm] Encoders: [drm] DFP1: INTERNAL_UNIPHY
connector->devices for DVI-D is: 8
[drm] Connector 3: [drm] HDMI-A [drm] HPD2 [drm] DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c [drm] Encoders: [drm] DFP2: INTERNAL_UNIPHY
connector->devices for HDMI-A is: 128
Or did you mean something else?
-- Pasi
On Mon, Jun 21, 2010 at 8:45 AM, Jerome Glisse glisse@freedesktop.org wrote:
On Mon, Jun 21, 2010 at 12:31:22PM +0300, Pasi Kärkkäinen wrote:
On Mon, Jun 21, 2010 at 12:23:10PM +0300, Pasi Kärkkäinen wrote:
On Sat, Jun 19, 2010 at 10:24:53PM +0300, Pasi Kärkkäinen wrote:
On Fri, Jun 18, 2010 at 09:45:22PM +0300, Pasi Kärkkäinen wrote:
> > >> > > > >> > I wonder if that HDMI-0 is the key to the problem.. I don't have anything connected > > >> > to the HDMI connector on the laptop. There's no HDMI connector on the dock, it's only in the laptop. > > >> > > >> Indeed that is the problem. On your system the HDMI and DVI ports > > >> share the same encoder and DDC line so they will both come up as > > >> connected since the line is shared. The driver used to check the edid > > >> when the lines where shared and select HDMI or DVI based on the EDID, > > >> but perhaps that got broken at some point. > > >> > > > > > > Makes sense. Does some kernel option/parameter affect that? > > > > No. I'll check the code and see if I can figure out what's going on. > > > > Ok, thanks! >
Hello,
I'll be near the dock tomorrow.. So if you have a chance of looking at this, and want me to test something, I could do it on thursday/friday.
I just tried the latest Fedora 13 kernel (2.6.33.5-124.fc13.x86_64) and the latest Fedora development (rawhide 2.6.34-43.fc14.x86_64) kernel, but the behaviour was the same.
Connecting display to the DVI connector makes the HDMI connector also show the same display, breaking things..
Here's a new log with drm.debug=4.. that's the biggest debug level that still allows me to grab the whole dmesg log before it's overwritten by huge amount of debug messages.
Full dmesg log: http://pasik.reaktio.net/fedora/bz593429/both-internal-and-external-displays...
Ok.. I did some debugging, and figured out how to make it work. Patch attached. I'm not sure if this is the correct method.. someone familiar with the code should review it.
Some debugging information for my system (HP EliteBook 8530p):
[drm] Radeon Display Connectors [drm] Connector 0: [drm] VGA [drm] DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c [drm] Encoders: [drm] CRT1: INTERNAL_KLDSCP_DAC1
connector->devices for VGA is: 1
[drm] Connector 1: [drm] LVDS [drm] Encoders: [drm] LCD1: INTERNAL_KLDSCP_LVTMA
connector->devices for LVDS is: 2
[drm] Connector 2: [drm] DVI-D [drm] HPD1 [drm] DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c [drm] Encoders: [drm] DFP1: INTERNAL_UNIPHY
connector->devices for DVI-D is: 8
[drm] Connector 3: [drm] HDMI-A [drm] HPD2 [drm] DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c [drm] Encoders: [drm] DFP2: INTERNAL_UNIPHY
connector->devices for HDMI-A is: 128
The code in radeon_connectors.c in radeon_dvi_detect():
/* multiple connectors on the same encoder with the same ddc line * This tends to be HDMI and DVI on the same encoder with the * same ddc line. If the edid says HDMI, consider the HDMI port * connected and the DVI port disconnected. If the edid doesn't * say HDMI, vice versa. */ if (radeon_connector->shared_ddc && (ret == connector_status_connected)) { struct drm_device *dev = connector->dev; struct drm_connector *list_connector; struct radeon_connector *list_radeon_connector; list_for_each_entry(list_connector, &dev->mode_config.connector_list, head) { if (connector == list_connector) continue; list_radeon_connector = to_radeon_connector(list_connector); if (radeon_connector->devices == list_radeon_connector->devices) { if (drm_detect_hdmi_monitor(radeon_connector->edid)) { if (connector->connector_type == DRM_MODE_CONNECTOR_DVID) { kfree(radeon_connector->edid); radeon_connector->edid = NULL; ret = connector_status_disconnected; } } else { if ((connector->connector_type == DRM_MODE_CONNECTOR_HDMIA) || (connector->connector_type == DRM_MODE_CONNECTOR_HDMIB)) { kfree(radeon_connector->edid); radeon_connector->edid = NULL; ret = connector_status_disconnected; } } } } }
Ok, so at least on my system the "if (connector == list_connector)" will SKIP the connector that actually would match in "if (radeon_connector->devices == list_radeon_connector->devices)", and thus the drm_detect_hdmi_monitor() is never called.
My patch removes that "if (connector == list_connector)" check and fixes the problem on my system. Is this the correct way to do it?
radeon-fix-shared_ddc-dvi-hdmi-edid-detection.patch: - allow checking against all connectors to be able to properly detect shared_ddc dvi/hdmi displays - patch applies to 2.6.33.5, 2.6.34 and 2.6.35-rc3. Tested with Fedora 13 2.6.33.5-124.fc13.x86_64. - Signed-off-by: Pasi Kärkkäinen pasik@iki.fi
And actually attached now :)
-- Pasi
I am not sure your patch is right, my guess is that devices field of radeon connector structure btw the HDMI & DVI connector are different and thus that drm_detect_hdmi_monitor is not call. I expect it's normal for the device field to be different (my understanding being that HDMI will have one more bit set than the DVI connector). Bottom line is i think we want to discard non hdmi connector just in case we face shared connector.
Alex would have to comment on the device field test, maybe your atombios is broken. Does it works if instead of removing if (connector == list_connector) continue; You remove : if (radeon_connector->devices == list_radeon_connector->devices)
Also can you print the radeon_connector->devices of all your connector so we can compare them.
The code was for systems with shared ddc lines and shared encoders, but it looks like your system may have a shared ddc line and (sort of) non-shared encoders. I suspect the DVI port is using UNIPHY A or A+B (for dual link) and HDMI is using UNIPHY link B. It's probably actually using router objects (gpio toggle to switch gpio routing between physical ports), however support for that is not implemented yet which is why we have the current code. Can you send me a copy of your vbios so I can verify?
To access your vbios (as root): cd /sys/bus/pci/device/<pci bus id> echo 1 > rom cat rom > /tmp/vbios.rom echo 0 > rom
Alex
On Mon, Jun 21, 2010 at 11:03 AM, Alex Deucher alexdeucher@gmail.com wrote:
On Mon, Jun 21, 2010 at 8:45 AM, Jerome Glisse glisse@freedesktop.org wrote:
On Mon, Jun 21, 2010 at 12:31:22PM +0300, Pasi Kärkkäinen wrote:
On Mon, Jun 21, 2010 at 12:23:10PM +0300, Pasi Kärkkäinen wrote:
On Sat, Jun 19, 2010 at 10:24:53PM +0300, Pasi Kärkkäinen wrote:
On Fri, Jun 18, 2010 at 09:45:22PM +0300, Pasi Kärkkäinen wrote:
> > > >> > > > > >> > I wonder if that HDMI-0 is the key to the problem.. I don't have anything connected > > > >> > to the HDMI connector on the laptop. There's no HDMI connector on the dock, it's only in the laptop. > > > >> > > > >> Indeed that is the problem. On your system the HDMI and DVI ports > > > >> share the same encoder and DDC line so they will both come up as > > > >> connected since the line is shared. The driver used to check the edid > > > >> when the lines where shared and select HDMI or DVI based on the EDID, > > > >> but perhaps that got broken at some point. > > > >> > > > > > > > > Makes sense. Does some kernel option/parameter affect that? > > > > > > No. I'll check the code and see if I can figure out what's going on. > > > > > > > Ok, thanks! > > > > Hello, > > I'll be near the dock tomorrow.. So if you have a chance of looking at this, and want me to test something, > I could do it on thursday/friday. >
I just tried the latest Fedora 13 kernel (2.6.33.5-124.fc13.x86_64) and the latest Fedora development (rawhide 2.6.34-43.fc14.x86_64) kernel, but the behaviour was the same.
Connecting display to the DVI connector makes the HDMI connector also show the same display, breaking things..
Here's a new log with drm.debug=4.. that's the biggest debug level that still allows me to grab the whole dmesg log before it's overwritten by huge amount of debug messages.
Full dmesg log: http://pasik.reaktio.net/fedora/bz593429/both-internal-and-external-displays...
Ok.. I did some debugging, and figured out how to make it work. Patch attached. I'm not sure if this is the correct method.. someone familiar with the code should review it.
Some debugging information for my system (HP EliteBook 8530p):
[drm] Radeon Display Connectors [drm] Connector 0: [drm] VGA [drm] DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c [drm] Encoders: [drm] CRT1: INTERNAL_KLDSCP_DAC1
connector->devices for VGA is: 1
[drm] Connector 1: [drm] LVDS [drm] Encoders: [drm] LCD1: INTERNAL_KLDSCP_LVTMA
connector->devices for LVDS is: 2
[drm] Connector 2: [drm] DVI-D [drm] HPD1 [drm] DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c [drm] Encoders: [drm] DFP1: INTERNAL_UNIPHY
connector->devices for DVI-D is: 8
[drm] Connector 3: [drm] HDMI-A [drm] HPD2 [drm] DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c [drm] Encoders: [drm] DFP2: INTERNAL_UNIPHY
connector->devices for HDMI-A is: 128
The code in radeon_connectors.c in radeon_dvi_detect():
/* multiple connectors on the same encoder with the same ddc line * This tends to be HDMI and DVI on the same encoder with the * same ddc line. If the edid says HDMI, consider the HDMI port * connected and the DVI port disconnected. If the edid doesn't * say HDMI, vice versa. */ if (radeon_connector->shared_ddc && (ret == connector_status_connected)) { struct drm_device *dev = connector->dev; struct drm_connector *list_connector; struct radeon_connector *list_radeon_connector; list_for_each_entry(list_connector, &dev->mode_config.connector_list, head) { if (connector == list_connector) continue; list_radeon_connector = to_radeon_connector(list_connector); if (radeon_connector->devices == list_radeon_connector->devices) { if (drm_detect_hdmi_monitor(radeon_connector->edid)) { if (connector->connector_type == DRM_MODE_CONNECTOR_DVID) { kfree(radeon_connector->edid); radeon_connector->edid = NULL; ret = connector_status_disconnected; } } else { if ((connector->connector_type == DRM_MODE_CONNECTOR_HDMIA) || (connector->connector_type == DRM_MODE_CONNECTOR_HDMIB)) { kfree(radeon_connector->edid); radeon_connector->edid = NULL; ret = connector_status_disconnected; } } } } }
Ok, so at least on my system the "if (connector == list_connector)" will SKIP the connector that actually would match in "if (radeon_connector->devices == list_radeon_connector->devices)", and thus the drm_detect_hdmi_monitor() is never called.
My patch removes that "if (connector == list_connector)" check and fixes the problem on my system. Is this the correct way to do it?
radeon-fix-shared_ddc-dvi-hdmi-edid-detection.patch: - allow checking against all connectors to be able to properly detect shared_ddc dvi/hdmi displays - patch applies to 2.6.33.5, 2.6.34 and 2.6.35-rc3. Tested with Fedora 13 2.6.33.5-124.fc13.x86_64. - Signed-off-by: Pasi Kärkkäinen pasik@iki.fi
And actually attached now :)
-- Pasi
I am not sure your patch is right, my guess is that devices field of radeon connector structure btw the HDMI & DVI connector are different and thus that drm_detect_hdmi_monitor is not call. I expect it's normal for the device field to be different (my understanding being that HDMI will have one more bit set than the DVI connector). Bottom line is i think we want to discard non hdmi connector just in case we face shared connector.
Alex would have to comment on the device field test, maybe your atombios is broken. Does it works if instead of removing if (connector == list_connector) continue; You remove : if (radeon_connector->devices == list_radeon_connector->devices)
Also can you print the radeon_connector->devices of all your connector so we can compare them.
The code was for systems with shared ddc lines and shared encoders, but it looks like your system may have a shared ddc line and (sort of) non-shared encoders. I suspect the DVI port is using UNIPHY A or A+B (for dual link) and HDMI is using UNIPHY link B. It's probably actually using router objects (gpio toggle to switch gpio routing between physical ports), however support for that is not implemented yet which is why we have the current code. Can you send me a copy of your vbios so I can verify?
To access your vbios (as root): cd /sys/bus/pci/device/<pci bus id> echo 1 > rom cat rom > /tmp/vbios.rom echo 0 > rom
Does the attached patch fix the issue?
Alex
On Mon, Jun 21, 2010 at 12:11:49PM -0400, Alex Deucher wrote:
On Mon, Jun 21, 2010 at 11:03 AM, Alex Deucher alexdeucher@gmail.com wrote:
On Mon, Jun 21, 2010 at 8:45 AM, Jerome Glisse glisse@freedesktop.org wrote:
On Mon, Jun 21, 2010 at 12:31:22PM +0300, Pasi Kärkkäinen wrote:
On Mon, Jun 21, 2010 at 12:23:10PM +0300, Pasi Kärkkäinen wrote:
On Sat, Jun 19, 2010 at 10:24:53PM +0300, Pasi Kärkkäinen wrote:
On Fri, Jun 18, 2010 at 09:45:22PM +0300, Pasi Kärkkäinen wrote: > > > > >> > > > > > >> > I wonder if that HDMI-0 is the key to the problem.. I don't have anything connected > > > > >> > to the HDMI connector on the laptop. There's no HDMI connector on the dock, it's only in the laptop. > > > > >> > > > > >> Indeed that is the problem. On your system the HDMI and DVI ports > > > > >> share the same encoder and DDC line so they will both come up as > > > > >> connected since the line is shared. The driver used to check the edid > > > > >> when the lines where shared and select HDMI or DVI based on the EDID, > > > > >> but perhaps that got broken at some point. > > > > >> > > > > > > > > > > Makes sense. Does some kernel option/parameter affect that? > > > > > > > > No. I'll check the code and see if I can figure out what's going on. > > > > > > > > > > Ok, thanks! > > > > > > > Hello, > > > > I'll be near the dock tomorrow.. So if you have a chance of looking at this, and want me to test something, > > I could do it on thursday/friday. > > > > I just tried the latest Fedora 13 kernel (2.6.33.5-124.fc13.x86_64) and the latest > Fedora development (rawhide 2.6.34-43.fc14.x86_64) kernel, but the behaviour was the same. > > Connecting display to the DVI connector makes the HDMI connector also show the same display, > breaking things.. >
Here's a new log with drm.debug=4.. that's the biggest debug level that still allows me to grab the whole dmesg log before it's overwritten by huge amount of debug messages.
Full dmesg log: http://pasik.reaktio.net/fedora/bz593429/both-internal-and-external-displays...
Ok.. I did some debugging, and figured out how to make it work. Patch attached. I'm not sure if this is the correct method.. someone familiar with the code should review it.
Some debugging information for my system (HP EliteBook 8530p):
[drm] Radeon Display Connectors [drm] Connector 0: [drm] VGA [drm] DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c [drm] Encoders: [drm] CRT1: INTERNAL_KLDSCP_DAC1
connector->devices for VGA is: 1
[drm] Connector 1: [drm] LVDS [drm] Encoders: [drm] LCD1: INTERNAL_KLDSCP_LVTMA
connector->devices for LVDS is: 2
[drm] Connector 2: [drm] DVI-D [drm] HPD1 [drm] DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c [drm] Encoders: [drm] DFP1: INTERNAL_UNIPHY
connector->devices for DVI-D is: 8
[drm] Connector 3: [drm] HDMI-A [drm] HPD2 [drm] DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c [drm] Encoders: [drm] DFP2: INTERNAL_UNIPHY
connector->devices for HDMI-A is: 128
The code in radeon_connectors.c in radeon_dvi_detect():
/* multiple connectors on the same encoder with the same ddc line * This tends to be HDMI and DVI on the same encoder with the * same ddc line. If the edid says HDMI, consider the HDMI port * connected and the DVI port disconnected. If the edid doesn't * say HDMI, vice versa. */ if (radeon_connector->shared_ddc && (ret == connector_status_connected)) { struct drm_device *dev = connector->dev; struct drm_connector *list_connector; struct radeon_connector *list_radeon_connector; list_for_each_entry(list_connector, &dev->mode_config.connector_list, head) { if (connector == list_connector) continue; list_radeon_connector = to_radeon_connector(list_connector); if (radeon_connector->devices == list_radeon_connector->devices) { if (drm_detect_hdmi_monitor(radeon_connector->edid)) { if (connector->connector_type == DRM_MODE_CONNECTOR_DVID) { kfree(radeon_connector->edid); radeon_connector->edid = NULL; ret = connector_status_disconnected; } } else { if ((connector->connector_type == DRM_MODE_CONNECTOR_HDMIA) || (connector->connector_type == DRM_MODE_CONNECTOR_HDMIB)) { kfree(radeon_connector->edid); radeon_connector->edid = NULL; ret = connector_status_disconnected; } } } } }
Ok, so at least on my system the "if (connector == list_connector)" will SKIP the connector that actually would match in "if (radeon_connector->devices == list_radeon_connector->devices)", and thus the drm_detect_hdmi_monitor() is never called.
My patch removes that "if (connector == list_connector)" check and fixes the problem on my system. Is this the correct way to do it?
radeon-fix-shared_ddc-dvi-hdmi-edid-detection.patch: - allow checking against all connectors to be able to properly detect shared_ddc dvi/hdmi displays - patch applies to 2.6.33.5, 2.6.34 and 2.6.35-rc3. Tested with Fedora 13 2.6.33.5-124.fc13.x86_64. - Signed-off-by: Pasi Kärkkäinen pasik@iki.fi
And actually attached now :)
-- Pasi
I am not sure your patch is right, my guess is that devices field of radeon connector structure btw the HDMI & DVI connector are different and thus that drm_detect_hdmi_monitor is not call. I expect it's normal for the device field to be different (my understanding being that HDMI will have one more bit set than the DVI connector). Bottom line is i think we want to discard non hdmi connector just in case we face shared connector.
Alex would have to comment on the device field test, maybe your atombios is broken. Does it works if instead of removing if (connector == list_connector) continue; You remove : if (radeon_connector->devices == list_radeon_connector->devices)
Also can you print the radeon_connector->devices of all your connector so we can compare them.
The code was for systems with shared ddc lines and shared encoders, but it looks like your system may have a shared ddc line and (sort of) non-shared encoders. I suspect the DVI port is using UNIPHY A or A+B (for dual link) and HDMI is using UNIPHY link B. It's probably actually using router objects (gpio toggle to switch gpio routing between physical ports), however support for that is not implemented yet which is why we have the current code. Can you send me a copy of your vbios so I can verify?
To access your vbios (as root): cd /sys/bus/pci/device/<pci bus id> echo 1 > rom cat rom > /tmp/vbios.rom echo 0 > rom
Does the attached patch fix the issue?
Thanks for the patch. I'll try it when I'm back where the dock is.. will take a couple of days.
-- Pasi
From 557b452536c9390105539a264d342d963d71b087 Mon Sep 17 00:00:00 2001 From: Alex Deucher alexdeucher@gmail.com Date: Mon, 21 Jun 2010 12:07:52 -0400 Subject: [PATCH] drm/radeon/kms: fix shared ddc handling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit
Connectors with a shared ddc line can be connected to different encoders.
Reported by Pasi Kärkkäinen pasik@iki.fi on dri-devel
Signed-off-by: Alex Deucher alexdeucher@gmail.com
drivers/gpu/drm/radeon/radeon_connectors.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c index 0c7ccc6..f58f8bd 100644 --- a/drivers/gpu/drm/radeon/radeon_connectors.c +++ b/drivers/gpu/drm/radeon/radeon_connectors.c @@ -785,7 +785,9 @@ static enum drm_connector_status radeon_dvi_detect(struct drm_connector *connect if (connector == list_connector) continue; list_radeon_connector = to_radeon_connector(list_connector);
if (radeon_connector->devices == list_radeon_connector->devices) {
if (list_radeon_connector->shared_ddc &&
(list_radeon_connector->ddc_bus->rec.i2c_id ==
radeon_connector->ddc_bus->rec.i2c_id)) { if (drm_detect_hdmi_monitor(radeon_connector->edid)) { if (connector->connector_type == DRM_MODE_CONNECTOR_DVID) { kfree(radeon_connector->edid);
-- 1.7.0.1
On Mon, Jun 21, 2010 at 09:18:01PM +0300, Pasi Kärkkäinen wrote:
I am not sure your patch is right, my guess is that devices field of radeon connector structure btw the HDMI & DVI connector are different and thus that drm_detect_hdmi_monitor is not call. I expect it's normal for the device field to be different (my understanding being that HDMI will have one more bit set than the DVI connector). Bottom line is i think we want to discard non hdmi connector just in case we face shared connector.
Alex would have to comment on the device field test, maybe your atombios is broken. Does it works if instead of removing if (connector == list_connector) continue; You remove : if (radeon_connector->devices == list_radeon_connector->devices)
Also can you print the radeon_connector->devices of all your connector so we can compare them.
The code was for systems with shared ddc lines and shared encoders, but it looks like your system may have a shared ddc line and (sort of) non-shared encoders. I suspect the DVI port is using UNIPHY A or A+B (for dual link) and HDMI is using UNIPHY link B. It's probably actually using router objects (gpio toggle to switch gpio routing between physical ports), however support for that is not implemented yet which is why we have the current code. Can you send me a copy of your vbios so I can verify?
To access your vbios (as root): cd /sys/bus/pci/device/<pci bus id> echo 1 > rom cat rom > /tmp/vbios.rom echo 0 > rom
Does the attached patch fix the issue?
Thanks for the patch. I'll try it when I'm back where the dock is.. will take a couple of days.
Sorry it took a while.. I tried your patch now. It seems to fix the problem!
When you send it upstream please also CC it for 2.6.33/2.6.34 stable branches? Just hoping to get the fix into Fedora 13..
-- Pasi
From 557b452536c9390105539a264d342d963d71b087 Mon Sep 17 00:00:00 2001 From: Alex Deucher alexdeucher@gmail.com Date: Mon, 21 Jun 2010 12:07:52 -0400 Subject: [PATCH] drm/radeon/kms: fix shared ddc handling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit
Connectors with a shared ddc line can be connected to different encoders.
Reported by Pasi Kärkkäinen pasik@iki.fi on dri-devel
Signed-off-by: Alex Deucher alexdeucher@gmail.com
drivers/gpu/drm/radeon/radeon_connectors.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c index 0c7ccc6..f58f8bd 100644 --- a/drivers/gpu/drm/radeon/radeon_connectors.c +++ b/drivers/gpu/drm/radeon/radeon_connectors.c @@ -785,7 +785,9 @@ static enum drm_connector_status radeon_dvi_detect(struct drm_connector *connect if (connector == list_connector) continue; list_radeon_connector = to_radeon_connector(list_connector);
if (radeon_connector->devices == list_radeon_connector->devices) {
if (list_radeon_connector->shared_ddc &&
(list_radeon_connector->ddc_bus->rec.i2c_id ==
radeon_connector->ddc_bus->rec.i2c_id)) { if (drm_detect_hdmi_monitor(radeon_connector->edid)) { if (connector->connector_type == DRM_MODE_CONNECTOR_DVID) { kfree(radeon_connector->edid);
-- 1.7.0.1
On Thu, Jul 1, 2010 at 10:07 AM, Pasi Kärkkäinen pasik@iki.fi wrote:
On Mon, Jun 21, 2010 at 09:18:01PM +0300, Pasi Kärkkäinen wrote:
I am not sure your patch is right, my guess is that devices field of radeon connector structure btw the HDMI & DVI connector are different and thus that drm_detect_hdmi_monitor is not call. I expect it's normal for the device field to be different (my understanding being that HDMI will have one more bit set than the DVI connector). Bottom line is i think we want to discard non hdmi connector just in case we face shared connector.
Alex would have to comment on the device field test, maybe your atombios is broken. Does it works if instead of removing if (connector == list_connector) continue; You remove : if (radeon_connector->devices == list_radeon_connector->devices)
Also can you print the radeon_connector->devices of all your connector so we can compare them.
The code was for systems with shared ddc lines and shared encoders, but it looks like your system may have a shared ddc line and (sort of) non-shared encoders. I suspect the DVI port is using UNIPHY A or A+B (for dual link) and HDMI is using UNIPHY link B. It's probably actually using router objects (gpio toggle to switch gpio routing between physical ports), however support for that is not implemented yet which is why we have the current code. Can you send me a copy of your vbios so I can verify?
To access your vbios (as root): cd /sys/bus/pci/device/<pci bus id> echo 1 > rom cat rom > /tmp/vbios.rom echo 0 > rom
Does the attached patch fix the issue?
Thanks for the patch. I'll try it when I'm back where the dock is.. will take a couple of days.
Sorry it took a while.. I tried your patch now. It seems to fix the problem!
When you send it upstream please also CC it for 2.6.33/2.6.34 stable branches? Just hoping to get the fix into Fedora 13..
I've sent the patch to Dave and cc'ed stable.
Alex
-- Pasi
From 557b452536c9390105539a264d342d963d71b087 Mon Sep 17 00:00:00 2001 From: Alex Deucher alexdeucher@gmail.com Date: Mon, 21 Jun 2010 12:07:52 -0400 Subject: [PATCH] drm/radeon/kms: fix shared ddc handling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit
Connectors with a shared ddc line can be connected to different encoders.
Reported by Pasi Kärkkäinen pasik@iki.fi on dri-devel
Signed-off-by: Alex Deucher alexdeucher@gmail.com
drivers/gpu/drm/radeon/radeon_connectors.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c index 0c7ccc6..f58f8bd 100644 --- a/drivers/gpu/drm/radeon/radeon_connectors.c +++ b/drivers/gpu/drm/radeon/radeon_connectors.c @@ -785,7 +785,9 @@ static enum drm_connector_status radeon_dvi_detect(struct drm_connector *connect if (connector == list_connector) continue; list_radeon_connector = to_radeon_connector(list_connector);
- if (radeon_connector->devices == list_radeon_connector->devices) {
- if (list_radeon_connector->shared_ddc &&
- (list_radeon_connector->ddc_bus->rec.i2c_id ==
- radeon_connector->ddc_bus->rec.i2c_id)) {
if (drm_detect_hdmi_monitor(radeon_connector->edid)) { if (connector->connector_type == DRM_MODE_CONNECTOR_DVID) { kfree(radeon_connector->edid); -- 1.7.0.1
On Thu, Jul 01, 2010 at 10:35:34AM -0400, Alex Deucher wrote:
On Thu, Jul 1, 2010 at 10:07 AM, Pasi Kärkkäinen pasik@iki.fi wrote:
On Mon, Jun 21, 2010 at 09:18:01PM +0300, Pasi Kärkkäinen wrote:
I am not sure your patch is right, my guess is that devices field of radeon connector structure btw the HDMI & DVI connector are different and thus that drm_detect_hdmi_monitor is not call. I expect it's normal for the device field to be different (my understanding being that HDMI will have one more bit set than the DVI connector). Bottom line is i think we want to discard non hdmi connector just in case we face shared connector.
Alex would have to comment on the device field test, maybe your atombios is broken. Does it works if instead of removing if (connector == list_connector) continue; You remove : if (radeon_connector->devices == list_radeon_connector->devices)
Also can you print the radeon_connector->devices of all your connector so we can compare them.
The code was for systems with shared ddc lines and shared encoders, but it looks like your system may have a shared ddc line and (sort of) non-shared encoders. I suspect the DVI port is using UNIPHY A or A+B (for dual link) and HDMI is using UNIPHY link B. It's probably actually using router objects (gpio toggle to switch gpio routing between physical ports), however support for that is not implemented yet which is why we have the current code. Can you send me a copy of your vbios so I can verify?
To access your vbios (as root): cd /sys/bus/pci/device/<pci bus id> echo 1 > rom cat rom > /tmp/vbios.rom echo 0 > rom
Does the attached patch fix the issue?
Thanks for the patch. I'll try it when I'm back where the dock is.. will take a couple of days.
Sorry it took a while.. I tried your patch now. It seems to fix the problem!
When you send it upstream please also CC it for 2.6.33/2.6.34 stable branches? Just hoping to get the fix into Fedora 13..
I've sent the patch to Dave and cc'ed stable.
Great, thanks!
-- Pasi
Alex
-- Pasi
From 557b452536c9390105539a264d342d963d71b087 Mon Sep 17 00:00:00 2001 From: Alex Deucher alexdeucher@gmail.com Date: Mon, 21 Jun 2010 12:07:52 -0400 Subject: [PATCH] drm/radeon/kms: fix shared ddc handling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit
Connectors with a shared ddc line can be connected to different encoders.
Reported by Pasi Kärkkäinen pasik@iki.fi on dri-devel
Signed-off-by: Alex Deucher alexdeucher@gmail.com
drivers/gpu/drm/radeon/radeon_connectors.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c index 0c7ccc6..f58f8bd 100644 --- a/drivers/gpu/drm/radeon/radeon_connectors.c +++ b/drivers/gpu/drm/radeon/radeon_connectors.c @@ -785,7 +785,9 @@ static enum drm_connector_status radeon_dvi_detect(struct drm_connector *connect if (connector == list_connector) continue; list_radeon_connector = to_radeon_connector(list_connector);
- if (radeon_connector->devices == list_radeon_connector->devices) {
- if (list_radeon_connector->shared_ddc &&
- (list_radeon_connector->ddc_bus->rec.i2c_id ==
- radeon_connector->ddc_bus->rec.i2c_id)) {
if (drm_detect_hdmi_monitor(radeon_connector->edid)) { if (connector->connector_type == DRM_MODE_CONNECTOR_DVID) { kfree(radeon_connector->edid); -- 1.7.0.1
On Mon, Jun 21, 2010 at 11:03:08AM -0400, Alex Deucher wrote:
On Mon, Jun 21, 2010 at 8:45 AM, Jerome Glisse glisse@freedesktop.org wrote:
On Mon, Jun 21, 2010 at 12:31:22PM +0300, Pasi Kärkkäinen wrote:
On Mon, Jun 21, 2010 at 12:23:10PM +0300, Pasi Kärkkäinen wrote:
On Sat, Jun 19, 2010 at 10:24:53PM +0300, Pasi Kärkkäinen wrote:
On Fri, Jun 18, 2010 at 09:45:22PM +0300, Pasi Kärkkäinen wrote:
> > > >> > > > > >> > I wonder if that HDMI-0 is the key to the problem.. I don't have anything connected > > > >> > to the HDMI connector on the laptop. There's no HDMI connector on the dock, it's only in the laptop. > > > >> > > > >> Indeed that is the problem. On your system the HDMI and DVI ports > > > >> share the same encoder and DDC line so they will both come up as > > > >> connected since the line is shared. The driver used to check the edid > > > >> when the lines where shared and select HDMI or DVI based on the EDID, > > > >> but perhaps that got broken at some point. > > > >> > > > > > > > > Makes sense. Does some kernel option/parameter affect that? > > > > > > No. I'll check the code and see if I can figure out what's going on. > > > > > > > Ok, thanks! > > > > Hello, > > I'll be near the dock tomorrow.. So if you have a chance of looking at this, and want me to test something, > I could do it on thursday/friday. >
I just tried the latest Fedora 13 kernel (2.6.33.5-124.fc13.x86_64) and the latest Fedora development (rawhide 2.6.34-43.fc14.x86_64) kernel, but the behaviour was the same.
Connecting display to the DVI connector makes the HDMI connector also show the same display, breaking things..
Here's a new log with drm.debug=4.. that's the biggest debug level that still allows me to grab the whole dmesg log before it's overwritten by huge amount of debug messages.
Full dmesg log: http://pasik.reaktio.net/fedora/bz593429/both-internal-and-external-displays...
Ok.. I did some debugging, and figured out how to make it work. Patch attached. I'm not sure if this is the correct method.. someone familiar with the code should review it.
Some debugging information for my system (HP EliteBook 8530p):
[drm] Radeon Display Connectors [drm] Connector 0: [drm] VGA [drm] DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c [drm] Encoders: [drm] CRT1: INTERNAL_KLDSCP_DAC1
connector->devices for VGA is: 1
[drm] Connector 1: [drm] LVDS [drm] Encoders: [drm] LCD1: INTERNAL_KLDSCP_LVTMA
connector->devices for LVDS is: 2
[drm] Connector 2: [drm] DVI-D [drm] HPD1 [drm] DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c [drm] Encoders: [drm] DFP1: INTERNAL_UNIPHY
connector->devices for DVI-D is: 8
[drm] Connector 3: [drm] HDMI-A [drm] HPD2 [drm] DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c [drm] Encoders: [drm] DFP2: INTERNAL_UNIPHY
connector->devices for HDMI-A is: 128
The code in radeon_connectors.c in radeon_dvi_detect():
/* multiple connectors on the same encoder with the same ddc line * This tends to be HDMI and DVI on the same encoder with the * same ddc line. If the edid says HDMI, consider the HDMI port * connected and the DVI port disconnected. If the edid doesn't * say HDMI, vice versa. */ if (radeon_connector->shared_ddc && (ret == connector_status_connected)) { struct drm_device *dev = connector->dev; struct drm_connector *list_connector; struct radeon_connector *list_radeon_connector; list_for_each_entry(list_connector, &dev->mode_config.connector_list, head) { if (connector == list_connector) continue; list_radeon_connector = to_radeon_connector(list_connector); if (radeon_connector->devices == list_radeon_connector->devices) { if (drm_detect_hdmi_monitor(radeon_connector->edid)) { if (connector->connector_type == DRM_MODE_CONNECTOR_DVID) { kfree(radeon_connector->edid); radeon_connector->edid = NULL; ret = connector_status_disconnected; } } else { if ((connector->connector_type == DRM_MODE_CONNECTOR_HDMIA) || (connector->connector_type == DRM_MODE_CONNECTOR_HDMIB)) { kfree(radeon_connector->edid); radeon_connector->edid = NULL; ret = connector_status_disconnected; } } } } }
Ok, so at least on my system the "if (connector == list_connector)" will SKIP the connector that actually would match in "if (radeon_connector->devices == list_radeon_connector->devices)", and thus the drm_detect_hdmi_monitor() is never called.
My patch removes that "if (connector == list_connector)" check and fixes the problem on my system. Is this the correct way to do it?
radeon-fix-shared_ddc-dvi-hdmi-edid-detection.patch: - allow checking against all connectors to be able to properly detect shared_ddc dvi/hdmi displays - patch applies to 2.6.33.5, 2.6.34 and 2.6.35-rc3. Tested with Fedora 13 2.6.33.5-124.fc13.x86_64. - Signed-off-by: Pasi Kärkkäinen pasik@iki.fi
And actually attached now :)
-- Pasi
I am not sure your patch is right, my guess is that devices field of radeon connector structure btw the HDMI & DVI connector are different and thus that drm_detect_hdmi_monitor is not call. I expect it's normal for the device field to be different (my understanding being that HDMI will have one more bit set than the DVI connector). Bottom line is i think we want to discard non hdmi connector just in case we face shared connector.
Alex would have to comment on the device field test, maybe your atombios is broken. Does it works if instead of removing if (connector == list_connector) continue; You remove : if (radeon_connector->devices == list_radeon_connector->devices)
Also can you print the radeon_connector->devices of all your connector so we can compare them.
The code was for systems with shared ddc lines and shared encoders, but it looks like your system may have a shared ddc line and (sort of) non-shared encoders. I suspect the DVI port is using UNIPHY A or A+B (for dual link) and HDMI is using UNIPHY link B. It's probably actually using router objects (gpio toggle to switch gpio routing between physical ports), however support for that is not implemented yet which is why we have the current code. Can you send me a copy of your vbios so I can verify?
To access your vbios (as root): cd /sys/bus/pci/device/<pci bus id> echo 1 > rom cat rom > /tmp/vbios.rom echo 0 > rom
Here you are: http://pasik.reaktio.net/fedora/bz593429/vbios-hp-elitebook-8530p-ati-radeon...
# lspci -vv
01:00.0 VGA compatible controller: ATI Technologies Inc Mobility Radeon HD 3650 (prog-if 00 [VGA controller]) Subsystem: Hewlett-Packard Company Device 30e7 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 33 Region 0: Memory at c0000000 (32-bit, prefetchable) [size=256M] Region 1: I/O ports at 7000 [size=256] Region 2: Memory at d8300000 (32-bit, non-prefetchable) [size=64K] Expansion ROM at d8320000 [disabled] [size=128K] Capabilities: [50] Power Management version 3 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Latency L0 <64ns, L1 <1us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM L0s L1 Enabled; RCB 64 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Not Supported, TimeoutDis- DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -3.5dB Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+ Address: 00000000fee0200c Data: 41d1 Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?> Kernel driver in use: radeon Kernel modules: radeon
01:00.1 Audio device: ATI Technologies Inc RV635 Audio device [Radeon HD 3600 Series] Subsystem: ATI Technologies Inc RV635 Audio device [Radeon HD 3600 Series] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin B routed to IRQ 37 Region 0: Memory at d8310000 (32-bit, non-prefetchable) [size=16K] Capabilities: [50] Power Management version 3 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Latency L0 <64ns, L1 <1us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM L0s L1 Enabled; RCB 64 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Not Supported, TimeoutDis- DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -3.5dB Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+ Address: 00000000fee0100c Data: 4142 Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?> Kernel driver in use: HDA Intel Kernel modules: snd-hda-intel
-- Pasi
On Mon, Jun 21, 2010 at 09:17:14PM +0300, Pasi Kärkkäinen wrote:
I am not sure your patch is right, my guess is that devices field of radeon connector structure btw the HDMI & DVI connector are different and thus that drm_detect_hdmi_monitor is not call. I expect it's normal for the device field to be different (my understanding being that HDMI will have one more bit set than the DVI connector). Bottom line is i think we want to discard non hdmi connector just in case we face shared connector.
Alex would have to comment on the device field test, maybe your atombios is broken. Does it works if instead of removing if (connector == list_connector) continue; You remove : if (radeon_connector->devices == list_radeon_connector->devices)
Also can you print the radeon_connector->devices of all your connector so we can compare them.
The code was for systems with shared ddc lines and shared encoders, but it looks like your system may have a shared ddc line and (sort of) non-shared encoders. I suspect the DVI port is using UNIPHY A or A+B (for dual link) and HDMI is using UNIPHY link B. It's probably actually using router objects (gpio toggle to switch gpio routing between physical ports), however support for that is not implemented yet which is why we have the current code. Can you send me a copy of your vbios so I can verify?
To access your vbios (as root): cd /sys/bus/pci/device/<pci bus id> echo 1 > rom cat rom > /tmp/vbios.rom echo 0 > rom
Here you are: http://pasik.reaktio.net/fedora/bz593429/vbios-hp-elitebook-8530p-ati-radeon...
Did you have a chance to take a look at that rom?
dmesg says this btw: ATOM BIOS: HP_Wistron_Vox_M86M
-- Pasi
# lspci -vv
01:00.0 VGA compatible controller: ATI Technologies Inc Mobility Radeon HD 3650 (prog-if 00 [VGA controller]) Subsystem: Hewlett-Packard Company Device 30e7 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 33 Region 0: Memory at c0000000 (32-bit, prefetchable) [size=256M] Region 1: I/O ports at 7000 [size=256] Region 2: Memory at d8300000 (32-bit, non-prefetchable) [size=64K] Expansion ROM at d8320000 [disabled] [size=128K] Capabilities: [50] Power Management version 3 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Latency L0 <64ns, L1 <1us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM L0s L1 Enabled; RCB 64 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Not Supported, TimeoutDis- DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -3.5dB Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+ Address: 00000000fee0200c Data: 41d1 Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?> Kernel driver in use: radeon Kernel modules: radeon
01:00.1 Audio device: ATI Technologies Inc RV635 Audio device [Radeon HD 3600 Series] Subsystem: ATI Technologies Inc RV635 Audio device [Radeon HD 3600 Series] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin B routed to IRQ 37 Region 0: Memory at d8310000 (32-bit, non-prefetchable) [size=16K] Capabilities: [50] Power Management version 3 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Latency L0 <64ns, L1 <1us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM L0s L1 Enabled; RCB 64 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Not Supported, TimeoutDis- DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -3.5dB Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+ Address: 00000000fee0100c Data: 4142 Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?> Kernel driver in use: HDA Intel Kernel modules: snd-hda-intel
-- Pasi
dri-devel@lists.freedesktop.org