minigbm: Add virtio_gpu driver.

Add a minigbm driver to support the virtio_gpu DRM driver as used by
QEMU virtual machine.

BUG=chromium:591626
TEST=null_platform_test runs on emulated ARM64 virtual machine using
virtio_gpu driver and VIRTIO MMIO transport.

Change-Id: I1bbb060bb882d732b17435a2422cd7fb2c77a5f0
Reviewed-on: https://chromium-review.googlesource.com/332286
Commit-Ready: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
This commit is contained in:
Vincent Palatin 2016-03-11 14:05:45 -08:00 committed by chrome-bot
parent ed475b4e6e
commit 5ecebea7df
2 changed files with 24 additions and 0 deletions

2
gbm.c
View file

@ -38,6 +38,7 @@ extern struct gbm_driver gbm_driver_rockchip;
extern struct gbm_driver gbm_driver_tegra;
#endif
extern struct gbm_driver gbm_driver_udl;
extern struct gbm_driver gbm_driver_virtio_gpu;
static struct gbm_driver *gbm_get_driver(int fd)
{
@ -72,6 +73,7 @@ static struct gbm_driver *gbm_get_driver(int fd)
&gbm_driver_tegra,
#endif
&gbm_driver_udl,
&gbm_driver_virtio_gpu,
};
for(i = 0; i < ARRAY_SIZE(driver_list); i++)

22
virtio_gpu.c Normal file
View file

@ -0,0 +1,22 @@
/*
* Copyright 2016 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "gbm_priv.h"
#include "helpers.h"
const struct gbm_driver gbm_driver_virtio_gpu =
{
.name = "virtio_gpu",
.bo_create = gbm_dumb_bo_create,
.bo_destroy = gbm_dumb_bo_destroy,
.format_list = {
{GBM_FORMAT_XRGB8888, GBM_BO_USE_SCANOUT | GBM_BO_USE_CURSOR | GBM_BO_USE_RENDERING | GBM_BO_USE_WRITE},
{GBM_FORMAT_XRGB8888, GBM_BO_USE_SCANOUT | GBM_BO_USE_CURSOR | GBM_BO_USE_WRITE | GBM_BO_USE_LINEAR},
{GBM_FORMAT_ARGB8888, GBM_BO_USE_SCANOUT | GBM_BO_USE_CURSOR | GBM_BO_USE_RENDERING | GBM_BO_USE_WRITE},
{GBM_FORMAT_ARGB8888, GBM_BO_USE_SCANOUT | GBM_BO_USE_CURSOR | GBM_BO_USE_WRITE | GBM_BO_USE_LINEAR},
}
};