Created attachment 110656 [details]
Xorg.0.log showing monitor EDID and modeline info
I recently purchased a Monoprice UHD 4K display (3840x2160) which uses DisplayPort 1.2 and supports 60Hz operation. Unfortunately, I found out after getting it that my Radeon 5870 (Eyefinity x6 edition) does not, in fact, support DisplayPort 1.2. In Windows 7 with the latest Catalyst, I receive a message upon connecting the display that the port is not DisplayPort 1.2 capable and the monitor initializes to 3840x2160 at 30Hz. When I boot up Linux, however, the screen goes to sleep and then partially wakes up with a blank white screen (possibly a bug in the monitor's firmware). No amount of CTRL+ALT+Fn or CTRL+ALT+Backspace fixes the problem.
I connected a secondary display (1920x1080, DVI via passive mini-DisplayPort to DVI adapter) and when booting Linux it seems to initialize both displays. Looking at the Displays settings it shows both displays at their full resolutions and both at 60Hz. This cued me in on the potential bug here. If the card doesn't support DP1.2, it cannot run UHD resolution at 60Hz. I selected 30Hz from the settings and applied, and now my UHD monitor is working fine.
So the bug appears to be that UHD displays are being detected as 3840x2160@60 on GPUs with display controllers that do not support the required DP1.2 bandwidth to handle this update rate. It may be kernel-space (KMS) or otherwise as well, as the monitor goes white on the GRUB screen as well as the early boot screen before Xorg starts.
I'm using Ubuntu 14.10 with Oibaf's mesa git PPA as well as commendsarnex's mesa DRI3 PPA. I'm using kernel 3.16 from official Ubuntu repos, though the same issue occurs on 3.17 from Ubuntu's Kernel PPA site.
Created attachment 110680 [details] [review]
This patch should fix it.
Same issue on Ubuntu 17.10 AMD RX480 and an UHD tv
(In reply to Paolo Devoti from comment #2)
> Same issue on Ubuntu 17.10 AMD RX480 and an UHD tv
> see also
Your chip is supported by a different driver (radeon vs amdgpu) please open your own bug.
Closing due to no feedback.