HDMI shows disconnected when in fact it is connected

When I plug in an external monitor to the HDMI port, or when already connected and the laptop wakes up from sleeping, the external monitor is blank (no signal) and xrandr reports the HDMI display as disconnected.

No amount of fiddling with xrandr parameters wakes up the port. The only solution I have found is to switch to a tty (ctrl-alt-fn), then back to X (ctrl-alt-f7). I assume this somehow wakes up the video driver.

This is very annoying. Is there a better solution?

Do you have to switch to TTY then back to X EVERY TIME you plug in an external monitor? Or it just sometimes happens?

I also seem to have this issue but I have no idea what can cause it. It happened once on Windows and a couple times now on Linux.

On Linux (daily driver) after I wake the laptop from sleep, it would not detect my monitor. The only thing I could do is take out the HDMI Expansion Card and put it back in. Then it would work.

I did not test putting Windows to sleep and seeing if the problem comes back. I’ve contacted support as well. I genuinely have no idea if it’s a hardware issue or software issue.

EDIT: I just tried putting Windows to sleep and as soon as I wake it back up, the external monitor is not detected, yet the HDMI Expansion Card shows up in Device Manager.
For some other strange reason, the laptop will not stay in sleep. It turns back on after 20 seconds or so. This self-waking up only happens on Windows.