mbox series

[0/2] vgaarb: Select fallback default VGA device

Message ID 20171006221358.12211.42879.stgit@bhelgaas-glaptop.roam.corp.google.com (mailing list archive)
Headers show
Series vgaarb: Select fallback default VGA device | expand

Message

Bjorn Helgaas Oct. 6, 2017, 10:24 p.m. UTC
These patches are supposed to fix a problem Daniel Axtens found on the
HiSilicon D05 board.  The VGA device there is behind a bridge that doesn't
support PCI_BRIDGE_CTL_VGA, so the arbiter never selects the device as the
default.

The first patch extends the arbiter so that if it can't find an enabled VGA
device with legacy resources, it selects the first enabled device *without*
legacy resources (this is what fixes the D05).  If that fails, it selects
the first device that isn't enabled.  The combination of both changes
should make the current powerpc fixup_vga() quirk unnecessary.

N.B. It changes the powerpc behavior: if there are several enabled VGA
devices, the current quirk selects the last one, while this patch selects
the first one.  If this is a problem, I can drop that part of the patch and
keep the quirk.

The second patch pulls out this fallback device detection (and the EFI
override) from vga_arb_device_init() to make it easier to read.

---

Bjorn Helgaas (2):
      vgaarb: Select a default VGA device even if there's no legacy VGA
      vgaarb: Factor out EFI and fallback default device selection


 arch/powerpc/kernel/pci-common.c |   12 ------
 drivers/gpu/vga/vgaarb.c         |   72 +++++++++++++++++++++++++++++---------
 2 files changed, 55 insertions(+), 29 deletions(-)

Comments

Sherlock Wang Oct. 12, 2017, 10:35 a.m. UTC | #1
On Fri, Oct 06, 2017 at 05:24:20PM -0500, Bjorn Helgaas wrote:
> These patches are supposed to fix a problem Daniel Axtens found on the
> HiSilicon D05 board.  The VGA device there is behind a bridge that doesn't
> support PCI_BRIDGE_CTL_VGA, so the arbiter never selects the device as the
> default.
> 
> The first patch extends the arbiter so that if it can't find an enabled VGA
> device with legacy resources, it selects the first enabled device *without*
> legacy resources (this is what fixes the D05).  If that fails, it selects
> the first device that isn't enabled.  The combination of both changes
> should make the current powerpc fixup_vga() quirk unnecessary.
> 
> N.B. It changes the powerpc behavior: if there are several enabled VGA
> devices, the current quirk selects the last one, while this patch selects
> the first one.  If this is a problem, I can drop that part of the patch and
> keep the quirk.
> 
> The second patch pulls out this fallback device detection (and the EFI
> override) from vga_arb_device_init() to make it easier to read.

Hi Bjorn,

I tested this series in:

        D05 board based on HiSilicon SoC Hip07.
        And HiSilicon SoC Hip08 based board.

Both of these two SoCs' PCIe host bridge don't support PCI_BRIDGE_CTL_VGA. One
VGA device which does not support legacy resources has been connected to these
two PCIe host bridges to test. Default VGA device can be selected in above two
systems.

Tested-by: Zhou Wang <wangzhou1@hisilicon.com>
(sorry for my HiSilicon E-mail box miss this serias, so here I have to use my
gmail box)

Thanks,
Zhou

> 
> ---
> 
> Bjorn Helgaas (2):
>       vgaarb: Select a default VGA device even if there's no legacy VGA
>       vgaarb: Factor out EFI and fallback default device selection
> 
> 
>  arch/powerpc/kernel/pci-common.c |   12 ------
>  drivers/gpu/vga/vgaarb.c         |   72 +++++++++++++++++++++++++++++---------
>  2 files changed, 55 insertions(+), 29 deletions(-)