Hide Forgot
When using a hdmi to vga adapter on a laptop with the hdmi connector connected to the nvidia gpu; and with the nvida gpu being runtime suspended normally, everything work fine on the first plug-in of the adapter (with the monitor already plugged into the adapter). The monitor gets properly recognized and automatically setup as a second screen by gnome-settings daemon. If I then unplug the hdmi connector, and re-plug it _before_ the nvidia gpu run-time suspends again, then the monitor does not get properly recognized and for some reason gnome-settings-daemon brings it up in 1280x1024 or 1600x1200 (which it does not support) depending on the laptop screen resolution (I'm seeing this on multiple laptops). This does not happen when using a hdmi connector which is directly connected to an intel integrated GPU, so I believe this is an issue with how the nouveau driver gets the edid info. When run-time suspend, the vga<->hdmi adapter has more time to "boot up" and get the actual monitor EDID (which it modifies to add HDMI audio bits to the EDID). It seems that on the re-plug the nouveau driver signals that it has a new monitor to userspace before it has valid EDID info. This also happens after a suspend/resume with a monitor attached through the vga<->hdmi adapter which is quite annoying. Note I'm seeing similar behavior with display-port monitors, where they come up in mirror-mode at an unsupported (by the monitor) resolution rather in their native mode after a suspend/resume (on a Lenovo P50).
This turns out to not have anything to-do with gnome getting the wrong EDID, this has the same root cause as the g-s-d loop from bug 1390297, marking this one as a duplicate. *** This bug has been marked as a duplicate of bug 1390297 ***