Bug 798308

Summary: [radeon, M93] Displayport on laptop does not display an image
Product: [openSUSE] openSUSE 13.1 Reporter: Koenraad Lelong <k.lelong>
Component: X.OrgAssignee: E-mail List <xorg-maintainer-bugs>
Status: RESOLVED WONTFIX QA Contact: E-mail List <xorg-maintainer-bugs>
Severity: Major    
Priority: P3 - Medium CC: alexander.deucher, eich, k.lelong
Version: FinalFlags: eich: needinfo? (k.lelong)
eich: needinfo? (alexander.deucher)
Target Milestone: ---   
Hardware: x86-64   
OS: openSUSE 42.1   
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: dmesg result after drm.debug=0x6, with displayport monitor attached
xrandr with dp-monitor attached
xrandr with DP- and VGA cables attached

Description Koenraad Lelong 2013-01-14 08:46:58 UTC
User-Agent:       Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0

I have a laptop with a displayport. When I connect an extra monitor to that port, I don't get any image on the monitor. The display-setting does detect its presence, but no image appears. I even have to move the settings-form from the monitor to the laptop-screen. So the system thinks the screen is there, but there is no image, the monitor's screen is black.
When I mount my laptop on it's docking-station the same thing happens with the monitor connected to the docking-station's displayport. 
When I connect a VGA-monitor to the docking-station I do have an image on the monitor, that's working OK.
Ubuntu 10.04 (installed) and Ubuntu 12.04 (live CD) have no problems with the displayport-setup, there I do have an image, although I have to manually modify the resolution.
See also my questions on the mailinglist opensuse.org :
 oct 8 2012  : Laptop & dockingstation with second monitor
 oct 24 2012 : Manual Xorg configuration help on 12.2

Another thing : saving settings in the display-configuration seems not to work. When I disable the display-port output and save it, the next time I boot and login, I have to disable the display-port again. 
Also I have to modify the resolution of the laptop's screen to it's native resolution every time I reboot.

Reproducible: Always

Steps to Reproduce:
1. Connect the monitor to the displayport
2. Boot the system
3. Login to the system
4. In display-settings configure the external monitor to show it's native resolution and save the configuration.

Actual Results:  
The external monitor is black, 

Expected Results:  
The monitor should display an image of the desktop.

lspci of display controller (made on ubuntu 10.04) :
01:00.0 VGA compatible controller: ATI Technologies Inc M93 [Mobility Radeon HD 4500 Series]
	Subsystem: Hewlett-Packard Company Device 1471
	Flags: bus master, fast devsel, latency 0, IRQ 31
	Memory at c0000000 (32-bit, prefetchable) [size=256M]
	I/O ports at 4000 [size=256]
	Memory at d4400000 (32-bit, non-prefetchable) [size=64K]
	Expansion ROM at d4420000 [disabled] [size=128K]
	Capabilities: [50] Power Management version 3
	Capabilities: [58] Express Legacy Endpoint, MSI 00
	Capabilities: [a0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable+
	Capabilities: [100] Vendor Specific Information <?>
	Kernel driver in use: fglrx_pci
	Kernel modules: fglrx, radeon
Comment 1 Stefan Dirsch 2013-01-14 09:42:22 UTC
Seems you've installed AMD's proprietary "fglrx" driver. Is this issue still reproducable after uninstalling this driver, i.e. does it remain when using radeon driver?
Comment 2 Koenraad Lelong 2013-01-14 10:25:46 UTC
This is the lspci -v on Opensuse 12.2 :

01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI RV710 [Mobility Radeon HD 4300/4500 Series] (prog-if 00 [VGA controller])
        Subsystem: Hewlett-Packard Company Device 1471
        Flags: bus master, fast devsel, latency 0, IRQ 46
        Memory at c0000000 (32-bit, prefetchable) [size=256M]
        I/O ports at 4000 [size=256]
        Memory at d4400000 (32-bit, non-prefetchable) [size=64K]
        Expansion ROM at d4420000 [disabled] [size=128K]
        Capabilities: [50] Power Management version 3
        Capabilities: [58] Express Legacy Endpoint, MSI 00
        Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
        Kernel driver in use: radeon

On Ubuntu I seem to have installed the fglrx driver. Maybe that's why it works ?

I was working in Ubuntu and I rebooted into Opensuse. This time, I didn't have to disable the displayport and restore my settings.
Comment 3 Stefan Dirsch 2013-01-14 10:36:44 UTC
> lspci of display controller (made on ubuntu 10.04) :

I didn't read this the first time. So apparently the fglrx driver does support DP, whereas the radeon driver does not.
Comment 4 Stefan Dirsch 2014-05-22 12:38:05 UTC
openSUSE 12.2 is no longer supported. Hence the issue won't be fixed for this product. In case the issue still is reproducable with a supported product (openSUSE 12.3/13.1 at the moment) or with openSUSE:Factory, please feel free to reopen. Thanks.
Comment 5 Koenraad Lelong 2014-05-22 13:37:33 UTC
Since then I moved on to Opensuse 13.1. There I have the same problem. I need to use the DVI-port of my docking-station to have an image on the screen. As far as I remember, VGA also worked. Display port does not work.
Comment 6 Egbert Eich 2015-11-09 07:02:36 UTC
- Does this issue still occur on Leap/Tumbleweed?
- Can you do an lsmod on the configuration that exhibits this issue and post it here?
Comment 7 Koenraad Lelong 2015-11-27 09:38:24 UTC
I had no immediate intension to install Leap, but I installed it on a spare disk.
I just tested it and I still don't have an image on the displayport monitor.
xrandr shows the second monitor, and the display settings also shows it.
This is the result of lsmod :
> lsmod
Module                  Size  Used by
fuse                  106496  3 
ctr                    16384  2 
ccm                    20480  2 
rfcomm                 73728  14 
af_packet              40960  8 
nf_log_ipv6            16384  6 
xt_pkttype             16384  3 
nf_log_ipv4            16384  6 
nf_log_common          16384  2 nf_log_ipv4,nf_log_ipv6
xt_LOG                 16384  12 
xt_limit               16384  12 
ip6t_REJECT            16384  3 
xt_tcpudp              16384  7 
nf_conntrack_ipv6      20480  3 
nf_defrag_ipv6         36864  1 nf_conntrack_ipv6
ip6table_raw           16384  1 
ipt_REJECT             16384  3 
iptable_raw            16384  1 
xt_CT                  16384  4 
iptable_filter         16384  1 
ip6table_mangle        16384  0 
nf_conntrack_ipv4      16384  3 
nf_defrag_ipv4         16384  1 nf_conntrack_ipv4
ip_tables              28672  2 iptable_filter,iptable_raw
xt_conntrack           16384  6 
nf_conntrack          114688  4 xt_CT,xt_conntrack,nf_conntrack_ipv4,nf_conntrack_ipv6
ip6table_filter        16384  1 
ip6_tables             28672  3 ip6table_filter,ip6table_mangle,ip6table_raw
x_tables               36864  15 xt_pkttype,ip6table_filter,xt_CT,ip6table_mangle,ip_tables,xt_tcpudp,xt_limit,xt_conntrack,xt_LOG,iptable_filter,ip6table_raw,ipt_REJECT,ip6_tables,iptable_raw,ip6t_REJECT
bnep                   20480  2 
snd_hda_codec_idt      65536  1 
snd_hda_codec_generic    81920  1 snd_hda_codec_idt
snd_hda_codec_hdmi     57344  2 
iTCO_wdt               16384  0 
iTCO_vendor_support    16384  1 iTCO_wdt
tpm_infineon           20480  0 
arc4                   16384  2 
brcmsmac              573440  0 
cordic                 16384  1 brcmsmac                                                                                                                           
brcmutil               16384  1 brcmsmac                                                                                                                           
b43                   454656  0                                                                                                                                    
mac80211              806912  2 b43,brcmsmac                                                                                                                       
snd_hda_intel          36864  5                                                                                                                                    
uvcvideo               98304  0                                                                                                                                    
snd_hda_controller     36864  1 snd_hda_intel                                                                                                                      
videobuf2_vmalloc      16384  1 uvcvideo                                                                                                                           
videobuf2_memops       16384  1 videobuf2_vmalloc                                                                                                                  
snd_hda_codec         131072  5 snd_hda_codec_hdmi,snd_hda_codec_idt,snd_hda_codec_generic,snd_hda_intel,snd_hda_controller                                                                                                      
videobuf2_core         57344  1 uvcvideo                                                                                                                                                                                         
v4l2_common            16384  1 videobuf2_core                                                                                                                                                                                   
snd_hda_core           36864  5 snd_hda_codec_hdmi,snd_hda_codec_idt,snd_hda_codec_generic,snd_hda_codec,snd_hda_controller                                                                                                      
snd_hwdep              16384  1 snd_hda_codec                                                                                                                                                                                    
videodev              176128  3 uvcvideo,v4l2_common,videobuf2_core                                                                                                                                                              
cfg80211              618496  3 b43,brcmsmac,mac80211                                                                                                                                                                            
snd_pcm               135168  4 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel,snd_hda_controller                                                                                                                                
ssb                    77824  1 b43                                                                                                                                                                                              
pcmcia                 73728  2 b43,ssb                                                                                                                                                                                          
pcmcia_core            28672  1 pcmcia                                                                                                                                                                                           
btusb                  53248  0                                                                                                                                                                                                  
btbcm                  16384  1 btusb                                                                                                                                                                                            
btintel                16384  1 btusb                                                                                                                                                                                            
intel_powerclamp       16384  0                                                                                                                                                                                                  
hp_wmi                 16384  0                                                                                                                                                                                                  
sparse_keymap          16384  1 hp_wmi
bluetooth             532480  38 bnep,btbcm,btusb,rfcomm,btintel
coretemp               16384  0 
kvm_intel             163840  0 
ppdev                  20480  0 
snd_timer              36864  1 snd_pcm
kvm                   552960  1 kvm_intel
rfkill                 28672  7 cfg80211,hp_wmi,bluetooth
bcma                   57344  3 b43,brcmsmac
crc32c_intel           24576  0 
snd                    94208  18 snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_hda_codec_idt,snd_pcm,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel
joydev                 20480  0 
pcspkr                 16384  0 
mei_me                 28672  0 
lpc_ich                24576  0 
mfd_core               16384  1 lpc_ich
e1000e                258048  0 
serio_raw              16384  0 
soundcore              16384  1 snd
intel_ips              24576  0 
ptp                    20480  1 e1000e
mei                    94208  1 mei_me
pps_core               20480  1 ptp
shpchp                 36864  0 
8250_fintek            16384  0 
parport_pc             49152  0 
parport                49152  2 ppdev,parport_pc
tpm_tis                20480  0 
thermal                24576  0 
tpm                    45056  2 tpm_tis,tpm_infineon
wmi                    20480  1 hp_wmi
hp_accel               28672  0 
lis3lv02d              20480  1 hp_accel
input_polldev          16384  1 lis3lv02d
video                  32768  0 
acpi_cpufreq           20480  1 
battery                16384  0 
ac                     16384  0 
button                 16384  0 
processor              40960  1 acpi_cpufreq
sr_mod                 24576  0 
cdrom                  61440  1 sr_mod
firewire_ohci          45056  0 
firewire_core          73728  1 firewire_ohci
crc_itu_t              16384  1 firewire_core
sdhci_pci              24576  0 
sdhci                  49152  1 sdhci_pci
mmc_core              139264  4 b43,ssb,sdhci,sdhci_pci
ehci_pci               16384  0 
radeon               1699840  12 
ehci_hcd               81920  1 ehci_pci
i2c_algo_bit           16384  1 radeon
usbcore               262144  4 btusb,uvcvideo,ehci_hcd,ehci_pci
usb_common             16384  1 usbcore
drm_kms_helper        139264  1 radeon
ttm                   106496  1 radeon
drm                   385024  15 ttm,drm_kms_helper,radeon
sg                     40960  0 
I also tried to install the fglrx drivers, but then I don't have a usefull image at all.
Comment 8 Egbert Eich 2015-11-27 10:02:38 UTC
Ok, thanks!

Please don't cut-n-paste lengthy output but use the attachment feature (and make sure the mime type is set to text/plain as the auto detection feature is broken).

What I need from you (using the Leap system) is that you add drm.debug=0x6 to the kernel command line (in the grub shell), boot, and collect the output of 'dmesg'
(please attach this output).
Comment 9 Koenraad Lelong 2015-11-27 10:55:43 UTC
Created attachment 657534 [details]
dmesg result after drm.debug=0x6, with displayport monitor attached
Comment 10 Egbert Eich 2015-11-27 13:01:39 UTC
Thanks for the log! 
The external monitor connected thru DP should be set to 1920x1080.
This is what xrandr should say as well. 

Ok, this is an issue that existed for several kernel versions and seemed to work with fglrx once (at least on Ubuntu). This rules out a monitor or cable problem.

@Alex - Alex, do you have an idea?
Comment 11 Alex Deucher 2015-11-30 22:31:32 UTC
Is it just not lighting up?  Which displays are you trying to enable?  Can you attach your `xrandr --verbose` output?  I don't see any DP link training problems in the kernel log.
Comment 12 Egbert Eich 2015-12-01 06:43:20 UTC
Maybe to word Alex' question a little more for a non-developer:
The monitor that doesn't light up is an external one connected thru DP.
Now the external monitor has different power states, the 'on' state is usually signalled by a green light. Any suspended state is signalled by an amber light. Also, when the display comes on, the backlight needs to come on. Even with a fully black screen you usually see the backlight - especially when the ambient light is dimmed.

- can you check which color the monitor power light has when the monitor is 
  expected to be on?
- can you check if the backlight is on (although the screen appears to be blank)?
- In this state, please run 'xrandr --verbose' and attach the output.

Comment 13 Koenraad Lelong 2015-12-01 08:17:45 UTC
Created attachment 657843 [details]
xrandr with dp-monitor attached

This is the output of xrandr --verbose, with a DP-monitor attached.
The monitor is a multi-input monitor : DP, DVI and VGA. I can let it scan for active sources and it finds no active source, although in "Systemsettings/Display & monitor" the DP screen is active.
Since the monitor can scan for sources, it's on, or maybe I am missing something. Also the power LED is blue, indicating it's active. When it's not active/sleeping the LED is orange.
When I attach a VGA monitor and set this active in "Systemsettings/Display & monitor" I do get an image on the monitor.
If you like I can send an output of xrandr --verbose when both cables are attached to the monitor.

Unfortunately, after some testing, at the moment I can't get at the "taskbar". It seems to be on a display that's not active any more. I will try attaching the VGA again.
Comment 14 Egbert Eich 2015-12-01 09:44:59 UTC
Please don't focus "Systemsettings/Display & monitor", this is desktop specific and may be wrong. If the problem is there the ticket needs to be reassigned to the respective desktop maintainer, neither Alex nor me can help you.
Let's focus on what we can gather from and set with xrandr.

- What's the color of the LED when the VGA is on and shows a picture?
- Yes, please also provide the 'xrandr --verbose' output when both monitors are
- Any chance to get information on the state of the backlight when connected to 
  DP only? (It should be on when the LED is blue).
Comment 15 Koenraad Lelong 2015-12-01 11:50:13 UTC
Created attachment 657910 [details]
xrandr with DP- and VGA cables attached

This is the xrandr-output when cables from the same laptop are connected to the DP- and VGA-port of the SAME monitor.

When I connect only the VGA-cable and boot,I have a image via the VGA-port, the LED of the monitor is blue.

When I connect only the DP-cable and boot, I don't have an image on the monitor. There is no backlight, the LED is orange.
When I force the monitor to scan it's ports, the LED turns blue, the backlight goes on (because there is text on the monitor, saying it's scanning the inputs). Since the monitor does not find input, the LED goes orange after a while (after 5 to 10 seconds scanning). xrandr does find the monitor though.

Disconnecting and connecting the DP-cable triggers something so xrandr shows different output, according to the connected state of the cable.

I hope all is still clear.
Unfortunately, I don't have anything that has a DP so I could try the monitor with that.
Comment 16 Egbert Eich 2015-12-01 13:02:36 UTC
Yeah, thank you!
The output you've sent shows both monitors to be connected, the DP is supposed to be on (VGA is off).
Please try and see what happens if you run 'xrandr --auto' or 'xrandr --output VGA-0 --auto' and xrandr --output DisplayPort-0 --auto'.
Comment 17 Koenraad Lelong 2015-12-01 14:29:28 UTC
I let the machine boot to the graphical login.
No LVDS, when I select the VGA of the monitor I have the login-screen on it.
I log in.
LVDS appears, VGA disappears. Selecting DP-input gives no image.
xrandr --output DisplayPort-0 --auto does nothing I can see.
xrandr --output VGA-0 --auto gives :
xrandr: cannot find crtc for output VGA-0
I tried this several times.

After using System Settings ... and enabling VGA I get the following :
I let the machine boot to the graphical login.
No LVDS, when I select the VGA of the monitor I have the login-screen on it.
I log in.
LVDS appears, VGA remains. Selecting DP gives no image.
xrandr --output VGA-0 --auto does nothing I can see.
xrandr --output DisplayPort-0 --auto gives this :
xrandr: cannot find crtc for output DisplayPort-0

Every time I get three displays when I run xrandr.
Comment 18 Koenraad Lelong 2015-12-01 14:35:30 UTC
Forgot to mention :
xrandr --auto gives an error depending on the active display (System Settings ...).
If DP is active then
xrandr: cannot find crtc for output VGA-0

If VGA is active then
xrandr: cannot find crtc for output Displayport-0
Comment 19 Egbert Eich 2015-12-01 16:41:57 UTC
Right, you only have 2 crtcs but 3 outputs. Sharing CRTCs for any of these won't work, therefore you need to shut off one of the outputs.
Still, from your tests I gather that DisplayPort-0 comes on but doesn't display anything.

This seems to be a persistent problem - persistent across several versions - which doesn't get resolved by 'accident'.
It would be instructive to see if another display with a different cable will light up.
Not sure where to go from here...
Comment 20 Egbert Eich 2016-02-07 20:23:48 UTC
I don't see any indication in the logs or output of xrandr which indicates a problem. There is nothing tangible here - other than that the DP has never lit up on Linux when using the free radeon driver while it once worked using Fglrx.

 - is this basically correct?
 - could you install and boot the openSUSE KOTD to see if a later kernel helps 
   resolving the issue?
   Please check: https://en.opensuse.org/openSUSE:Kernel_of_the_day
   (I do have my doubts, though as we've had this problem for a long time and the 
   Leap 42.1 kernel is rather new).

  - Do you have any idea how to proceed here? 
    I don't have the hardware, so I cannot play myself either.
Comment 21 Stefan Dirsch 2016-08-08 09:16:17 UTC
I'm afraid the reporter has lost interest into this (which I can understand). AMD apparently can't help here either. We're lacking the hardware for testing as well. Therefore I close this bug now.