[amdgpu] all displays reconnect after failed EDID read
Submitted by Matthias
Assigned to Default DRI bug account
Created attachment 139861
I am on ubuntu 18.04 LTS on gnome3 with X.org. I am using amdgpu with a Raden RX 580.
$ lspci -k | grep -EA3 'VGA|3D|Display'
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480] (rev e7)
Subsystem: ASUSTeK Computer Inc. Ellesmere [Radeon RX 470/480/570/580]
Kernel driver in use: amdgpu
Kernel modules: amdgpu
> $ uname -r
> $ lsb_release -a
> No LSB modules are available.
> Distributor ID: Ubuntu
> Description: Ubuntu 18.04 LTS
> Release: 18.04
> Codename: bionic
Two screens for working are connected via DVI and HDMI.
One HDMI output is connected to a PlayStation VR Headset. The Headset redirects all input to the TV but it is mostly turned off.
When turned off but connected to the HDMI output, frequent EDID read fails are reported to syslog:
> [drm:log_to_debug_console [amdgpu]] *ERROR* No EDID read.
When un-plugging the PSVR Headset from HDMI the errors vanish. After the EDID read there is the HMD related messages like
> [ 3.066968] [drm:log_to_debug_console [amdgpu]] *ERROR* No EDID read.
> [ 3.091884] [drm] SIE HMD *08: [Block 0]
> [ 3.091886] [drm] SIE HMD *08: [Block 1]
> [ 3.091890] [drm] dc_link_detect: manufacturer_id = D94D, product_id = B403, > serial_number = 1010101, manufacture_week = 38, manufacture_year = 27, display_name = SIE HMD *08, speaker_flag = 15, audio_mode_count = 4
> [ 3.091896] [drm] dc_link_detect: mode number = 0, format_code = 1, channel_count = 6, sample_rate = 87, sample_size = 7
> [ 3.091899] [drm] dc_link_detect: mode number = 1, format_code = 2, channel_count = 6, sample_rate = 7, sample_size = 80
> [ 3.091902] [drm] dc_link_detect: mode number = 2, format_code = 7, channel_count = 6, sample_rate = 7, sample_size = 188
> [ 3.091905] [drm] dc_link_detect: mode number = 3, format_code = 10, channel_count = 8, sample_rate = 4, sample_size = 0
All connected Screens then reconnect: They turn black and the position of the screens (which is left and which is right screen) is sometimes also reset. This is annoying during productive work.
My point is that I don't mind if there is no EDID from the PSVR HeadSet or any of the connected devices. The headset is turned off and As I see it, it should only check for the EDID when I turn it on.
The only quick solution here is to unplug the Headset while on Linux.
**Attachment 139861**, "dmesg":