[PATCH v4] PCI: Support hibmc VGA cards behind a misbehaving HiSilicon bridge

Benjamin Herrenschmidt benh at kernel.crashing.org
Fri Jul 14 06:50:04 PDT 2017


On Fri, 2017-07-14 at 12:26 +0000, Gabriele Paoloni wrote:
> diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
> index 92f1452..ab3ad9a 100644
> --- a/drivers/gpu/vga/vgaarb.c
> +++ b/drivers/gpu/vga/vgaarb.c
> @@ -1424,6 +1424,14 @@ static int __init vga_arb_device_init(void)
>  
>         list_for_each_entry(vgadev, &vga_list, list) {
>                 struct device *dev = &vgadev->pdev->dev;
> +
> +               /* if no legacy device has been set as default VGA
> +                * device, just pick up the first one in the list */
> +               if (vga_default == NULL) {
> +                       vgaarb_info(dev, "setting as boot VGA device\n");
> +                       vga_set_default_device(vgadev->pdev);
> +               }
> +
>  #if defined(CONFIG_X86) || defined(CONFIG_IA64)
>                 /*
>                  * Override vga_arbiter_add_pci_device()'s I/O based detection 
> 
> Above after we have filled the list of VGA devices by iterating over all
> PCI devices we check if no legacy one has been set as default VGA device
> yet: therefore we set the first VGA device in the list as default one...
> 
> Do you think it would work?

I honestly don't remember all of the details of the arbiter but just
make sure that it won't think that device is enabled for things like
VGA etc... if it's memory/IO decode weren't enabled.

I'd rather we have no default device until a driver actually picks up
though, and then, if we still have no default, use the first driver to
pick up.

Ben.




More information about the linux-arm-kernel mailing list