https://bugs.freedesktop.org/show_bug.cgi?id=108139
Bug ID: 108139 Summary: My HDMI stopped working at Linux 4.18.8 Product: DRI Version: unspecified Hardware: Other OS: All Status: NEW Severity: normal Priority: medium Component: DRM/AMDgpu Assignee: dri-devel@lists.freedesktop.org Reporter: duncan_roe@optusnet.com.au
At Linux 4.18.8 the HDMI monitor started to report "No Signal" although Xorg can see a screen when it's started.(There's no signal with or without X). Using bisection, I found the change that caused this is commit to be 691f2d763d0731224439686ecf2d440df8fe910e:
+++ b/drivers/gpu/drm/amd/display/dc/bios/command_table.c @@ -808,6 +808,24 @@ static enum bp_result transmitter_control_v1_5( * (=1: 8bpp, =1.25: 10bpp, =1.5:12bpp, =2: 16bpp) * LVDS mode: usPixelClock = pixel clock */ + if (cntl->signal == SIGNAL_TYPE_HDMI_TYPE_A) { + switch (cntl->color_depth) { + case COLOR_DEPTH_101010: + params.usSymClock = + cpu_to_le16((le16_to_cpu(params.usSymClock) * 30) / 24); + break; + case COLOR_DEPTH_121212: + params.usSymClock = + cpu_to_le16((le16_to_cpu(params.usSymClock) * 36) / 24); + break; + case COLOR_DEPTH_161616: + params.usSymClock = + cpu_to_le16((le16_to_cpu(params.usSymClock) * 48) / 24); + break; + default: + break; + } + }
if (EXEC_BIOS_CMD_TABLE(UNIPHYTransmitterControl, params)) result = BP_RESULT_OK;
Inserted printk stmts showed my monitor reports COLOR_DEPTH_121212. I suspect the clock speed is too high for the video card, so the code needs to check the card model before bumping the speed, but I don't know how to do that. Here are all the details I an think of: Video card (from lspci): VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Radeon R2 Graphics (rev ea) Monitor (from /var/log/Xorg.0.log): Monitor name: DELL U2711 Ranges: V min: 49 V max: 86 Hz, H min: 29 H max: 113 kHz, PixClock max 285 MHz Hardware name (from /var/log/debug): HP HP Laptop 15-bw0xx/8330, BIOS F.11 07/05/2017