• Bruno Prémont's avatar
    x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup() · 20cde694
    Bruno Prémont authored
    Commit b4aa0163 ("efifb: Implement vga_default_device() (v2)") added
    efifb vga_default_device() so EFI systems that do not load shadow VBIOS or
    setup VGA get proper value for boot_vga PCI sysfs attribute on the
    corresponding PCI device.
    
    Xorg doesn't detect devices when boot_vga=0, e.g., on some EFI systems such
    as MacBookAir2,1.  Xorg detects the GPU and finds the DRI device but then
    bails out with "no devices detected".
    
    Note: When vga_default_device() is set boot_vga PCI sysfs attribute
    reflects its state.  When unset this attribute is 1 whenever
    IORESOURCE_ROM_SHADOW flag is set.
    
    With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
    while having native drivers for the GPU also makes selecting sysfb/efifb
    optional.
    
    Remove the efifb implementation of vga_default_device() and initialize
    vgaarb's vga_default_device() with the PCI GPU that matches boot
    screen_info in pci_fixup_video().
    
    [bhelgaas: remove unused "dev" in efifb_setup()]
    Fixes: b4aa0163 ("efifb: Implement vga_default_device() (v2)")
    Tested-by: default avatarAnibal Francisco Martinez Cortina <linuxkid.zeuz@gmail.com>
    Signed-off-by: default avatarBruno Prémont <bonbons@linux-vserver.org>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Acked-by: default avatarMatthew Garrett <matthew.garrett@nebula.com>
    CC: stable@vger.kernel.org	# v3.5+
    20cde694
fixup.c 2.71 KB