Thread (5 messages) 5 messages, 2 authors, 2014-11-14

Re: [PATCH] x86, ia64: Do not lose track of the EFI default VGA device

From: Henrik Rydberg <hidden>
Date: 2014-11-14 15:31:17
Also in: lkml

On 11/14/2014 03:42 PM, Bruno Prémont wrote:
On Fri, 14 Nov 2014 13:53:30 +0100 Henrik Rydberg wrote:
quoted
Since commit 20cde694027e ("x86, ia64: Move EFI_FB
vga_default_device() initialization to pci_vga_fixup()") in the 3.17
merge window, the EFI framebuffer depends on the VGA arbitration
layer. However, the configuration does not reflect this, which leads
to a hard-to-find bug when FB_EFI is configured without VGA_ARB. Add a
select clause to remedy this.
Could you be more verbose in why it depends on/needs VGA_ARB?
When the EFI framebuffer is configured but not VGA_ARB, the kernel manages to
lose track of the default VGA device in some cases. As a result, the X11
nouveau driver fails on my MacBookAir3,1 (GeForce 320M, nv50, 0xaf), which
is booting in EFI_STUB mode.

The code to select the right PCI device was literally moved from efifb.c to the
internals of vgaarb. The PCI sysfs layer seems to depend on
vga_default_device(), which is only defined when VGA_ARB is set.
With EFI starting to show up on ARM this is not necessarily true
(no PCI -> no VGA_ARB arbitration).

So it would need to at least be select VGA_ARB if (PCI && !S390)
in order to not have broken kernel configuration (in more or less
exotic cases) while depends on VGA_ARB would be the only correct option
if the rule 'select only allowed for leafs' is enforced.
I agree that the tie probably should be somewhere else. I am fine with any
combination of flags that respects the fact that efifb used to define
vga_default_device(), apparently for good reason.

Thanks,
Henrik
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help