Message ID | 1415969610-1469-1-git-send-email-rydberg@euromail.se (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, 14 Nov 2014 13:53:30 +0100 Henrik Rydberg wrote: > 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? 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. Bruno > Cc: Bruno Prémont <bonbons@linux-vserver.org> > Signed-off-by: Henrik Rydberg <rydberg@euromail.se> > --- > Hi Peter, > > I stumbled upon this bug from the 3.17 merge window when updating to > Linus's 3.18 git head yesterday. The patch has been tested on two > different EFI machines; one that needs the patch and one that does not. > > Thanks, > Henrik > > drivers/video/fbdev/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig > index c7bf606..81b21bc 100644 > --- a/drivers/video/fbdev/Kconfig > +++ b/drivers/video/fbdev/Kconfig > @@ -761,6 +761,7 @@ config FB_EFI > select FB_CFB_FILLRECT > select FB_CFB_COPYAREA > select FB_CFB_IMAGEBLIT > + select VGA_ARB > help > This is the EFI frame buffer device driver. If the firmware on > your platform is EFI 1.10 or UEFI 2.0, select Y to add support for -- To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 11/14/2014 03:42 PM, Bruno Prémont wrote: > On Fri, 14 Nov 2014 13:53:30 +0100 Henrik Rydberg wrote: >> 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 -- To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig index c7bf606..81b21bc 100644 --- a/drivers/video/fbdev/Kconfig +++ b/drivers/video/fbdev/Kconfig @@ -761,6 +761,7 @@ config FB_EFI select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT + select VGA_ARB help This is the EFI frame buffer device driver. If the firmware on your platform is EFI 1.10 or UEFI 2.0, select Y to add support for
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. Cc: Bruno Prémont <bonbons@linux-vserver.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se> --- Hi Peter, I stumbled upon this bug from the 3.17 merge window when updating to Linus's 3.18 git head yesterday. The patch has been tested on two different EFI machines; one that needs the patch and one that does not. Thanks, Henrik drivers/video/fbdev/Kconfig | 1 + 1 file changed, 1 insertion(+)