efi/gop: do we need to check ConOut any more?

From: Arvind Sankar
Date: Thu Dec 12 2019 - 17:23:11 EST


Since commit 38cb5ef4473c ("X86: Improve GOP detection in the EFI boot
stub") we check for a GOP device that implements ConOut protocol to find
our primary output device. The commit log says that this was done to
avoid problems with the ConSplitter device, which exports a virtual GOP
interface. The original version by Matt Fleming checked for PCIIO
protocol, with a note that says there are some Apple machines have GOPs
without hardware, I assume that that was the same case, GOPs from
ConSplitter.

However, since commit 540f4c0e894f ("efi/libstub: Skip GOP with
PIXEL_BLT_ONLY format") we skip GOP's that don't have a framebuffer.

Looking at the EDK2 implementation of ConSplitter, the virtual GOP will
advertise a framebuffer iff it is attached to exactly one GOP device, in
which case it passes through all the information. If it is attached to a
UGA device or to more than one GOP, it will show as a non-framebuffer
GOP, so we will skip it anyway in those cases.

Given that, is it still necessary to check for conout at all, or would
it be enough to rely on the framebuffer check?

PS I hope I got the latest email addresses correct for everyone