linux/arch/ia64
Bruno Prémont ce027dac59 vgaarb: Don't default exclusively to first video device with mem+io
commit 86fd887b7f upstream.

Commit 20cde69402 ("x86, ia64: Move EFI_FB vga_default_device()
initialization to pci_vga_fixup()") moved boot video device detection from
efifb to x86 and ia64 pci/fixup.c.

For dual-GPU Apple computers above change represents a regression as code
in efifb did forcefully override vga_default_device while the merge did not
(vgaarb happens prior to PCI fixup).

To improve on initial device selection by vgaarb (it cannot know if PCI
device not behind bridges see/decode legacy VGA I/O or not), move the
screen_info based check from pci_video_fixup() to vgaarb's init function and
use it to refine/override decision taken while adding the individual PCI
VGA devices.  This way PCI fixup has no reason to adjust vga_default_device
anymore but can depend on its value for flagging shadowed VBIOS.

This has the nice benefit of removing duplicated code but does introduce a
#if defined() block in vgaarb.  Not all architectures have screen_info and
would cause compile to fail without it.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=84461
Reported-and-Tested-By: Andreas Noever <andreas.noever@gmail.com>
Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
CC: Matthew Garrett <matthew.garrett@nebula.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2014-10-09 12:23:49 -07:00
..
configs USB: delete CONFIG_USB_DEVICEFS from defconfig 2014-05-27 16:07:13 -07:00
dig Disintegrate asm/system.h for IA64 2012-03-28 18:30:02 +01:00
hp ACPI / ia64 / sba_iommu: Restore the working initialization ordering 2014-06-16 22:33:20 +02:00
include ia64: arch/ia64/include/uapi/asm/fcntl.h needs personality.h 2014-06-23 16:47:44 -07:00
kernel ia64: convert use of typedef ctl_table to struct ctl_table 2014-06-06 16:08:15 -07:00
kvm Small workaround for a rare, but annoying, erratum 2014-04-16 11:22:45 -07:00
lib Fix common misspellings 2011-03-31 11:26:23 -03:00
mm hugetlb: restrict hugepage_migration_support() to x86_64 2014-06-04 16:53:51 -07:00
oprofile Disintegrate asm/system.h for IA64 2012-03-28 18:30:02 +01:00
pci vgaarb: Don't default exclusively to first video device with mem+io 2014-10-09 12:23:49 -07:00
scripts scripts: change scripts to use system python instead of env 2010-02-02 14:33:56 +01:00
sn ia64: Validate online cpus in irq_set_affinity() callbacks 2014-03-12 13:07:40 +01:00
uv ia64: change to new flag variables 2011-03-17 14:02:56 +01:00
install.sh kbuild: use INSTALLKERNEL to select customized installkernel script 2009-09-20 12:18:14 +02:00
Kconfig ia64: Use irq_init_desc 2014-05-16 14:05:22 +02:00
Kconfig.debug [PATCH] Move Kprobes and Oprofile to "Instrumentation Support" menu 2005-11-07 07:53:35 -08:00
Makefile ia64/xen: Remove Xen support for ia64 2013-12-10 16:11:07 -08:00
module.lds Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00