[PATCH] Add virtio gpu driver.

Michael S. Tsirkin mst at redhat.com
Tue Mar 24 09:15:29 PDT 2015


On Tue, Mar 24, 2015 at 05:07:18PM +0100, Gerd Hoffmann wrote:
> From: Dave Airlie <airlied at gmail.com>
> 
> This patch adds a kms driver for the virtio gpu.  The xorg modesetting
> driver can handle the device just fine, the framebuffer for fbcon is
> there too.
> 
> Qemu patches for the host side are under review currently.
> 
> The pci version of the device comes in two variants: with and without
> vga compatibility.  The former has a extra memory bar for the vga
> framebuffer, the later is a pure virtio device.  The only concern for
> this driver is that in the virtio-vga case we have to kick out the
> firmware framebuffer.
> 
> Initial revision has only 2d support, 3d (virgl) support requires
> some more work on the qemu side and will be added later.
> 
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>

...

> diff --git a/drivers/virtio/virtio_pci_common.c b/drivers/virtio/virtio_pci_common.c
> index e894eb2..a3167fa 100644
> --- a/drivers/virtio/virtio_pci_common.c
> +++ b/drivers/virtio/virtio_pci_common.c
> @@ -510,7 +510,7 @@ static int virtio_pci_probe(struct pci_dev *pci_dev,
>  		goto err_enable_device;
>  
>  	rc = pci_request_regions(pci_dev, "virtio-pci");
> -	if (rc)
> +	if (rc && ((pci_dev->class >> 8) != PCI_CLASS_DISPLAY_VGA))
>  		goto err_request_regions;
>  
>  	if (force_legacy) {

This is probably what you described as "the only concern?  Can you
explain why you are doing this?  If we only need to request specific
regions, I think we should do exactly that, requesting only parts of
regions that are covered by the virtio capabilities.

Seems cleaner than looking for a specific class.

Didn't look at device code in depth yet.


More information about the dri-devel mailing list