OSDN Git Service

minigbm: Add virtio_gpu driver.
authorVincent Palatin <vpalatin@chromium.org>
Fri, 11 Mar 2016 22:05:45 +0000 (14:05 -0800)
committerchrome-bot <chrome-bot@chromium.org>
Sat, 12 Mar 2016 03:06:37 +0000 (19:06 -0800)
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>
gbm.c
virtio_gpu.c [new file with mode: 0644]

diff --git a/gbm.c b/gbm.c
index 2408d0c..b38ba9c 100644 (file)
--- a/gbm.c
+++ b/gbm.c
@@ -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++)
diff --git a/virtio_gpu.c b/virtio_gpu.c
new file mode 100644 (file)
index 0000000..87c4cc5
--- /dev/null
@@ -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},
+       }
+};
+