From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bruno =?UTF-8?B?UHLDqW1vbnQ=?= Subject: Re: [PATCH 0/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup() Date: Fri, 22 Aug 2014 08:23:24 +0200 Message-ID: <20140822082324.12cb6e93@pluto> References: <20140514224339.7f8be3a9@neptune.home> <20140527234255.GJ11907@google.com> <20140602201650.35f0e936@neptune.home> <20140602201926.4d476818@neptune.home> <20140625005501.7ff7e982@neptune.home> <20140705171503.GC6247@google.com> <20140810112654.1bf684d6@neptune.home> <20140810183411.19370721@neptune.home> <20140816192135.34260115@neptune.home> <20140820075508.74f5b622@pluto> <20140820091152.76cd4e1a@pluto> <20140821233435.19a9cffa@neptune.home> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Return-path: In-Reply-To: Sender: linux-pci-owner@vger.kernel.org To: Bjorn Helgaas Cc: Andreas Noever , DRI mailing list , Linux PCI , Dave Airlie , Matthew Garrett , Greg Kroah-Hartman List-Id: dri-devel@lists.freedesktop.org On Thu, 21 Aug 2014 23:39:31 -0500 Bjorn Helgaas wrote: > On Thu, Aug 21, 2014 at 4:34 PM, Bruno Pr=C3=A9mont wrote: >=20 > > A second step would then be to tune vgaarb's initial selection. > > Bjorn, is it possible to verify which I/O ports are decoded by a PC= I > > device at the time of adding it to vgaarb? If so, how? I would like= to > > check for legacy VGA I/O range (0x03B0-0x03DF) and only let vgaarb = set > > a device as default if that I/O range is decoded by the device. >=20 > I don't know of a way. I'm pretty sure VGA devices are allowed to > respond to those legacy addresses even if there's no BAR for them, bu= t > I haven't found a spec reference for this. There is the VGA Enable > bit in bridges, of course (PCI Bridge spec, sec 12.1.1. If the VGA > device is behind a bridge that doesn't have the VGA Enable bit set, i= t > probably isn't the default device. Those VGA devices behind bridges are the easy ones that vgaarb selects properly. It's the ones not behind a bridge (integrated graphics) like the intel one that cause problems. =46or Andreas's system the discrete nvidia GPU has no I/O enabled according to PCI_COMMAND flags while the integrated intel one does have them (that's why the Intel GPU is chosen). Unfortunately I don't know what makes his system choke at boot time as he did not provide logs for the failing case. If there is no better way to detect the proper legacy VGA device the only remaining option would be to perform the screen_info testing in=20 vga_arb_device_init() enclosed in arch #ifdef... Bruno