OSDN Git Service

minigbm: add synaptics gbm driver
authorLeona Chou <leona.chou@synaptics.com>
Thu, 19 Mar 2020 07:06:12 +0000 (15:06 +0800)
committerCommit Bot <commit-bot@chromium.org>
Thu, 26 Mar 2020 18:46:05 +0000 (18:46 +0000)
Change the ozone platform from cast to drm
add synaptics gbm driver for buffer management.

BUG=b:152384632
TEST=use chromecast ui to verify drm
TEST=use ozone_demo app to verify drm

Change-Id: I9dff03e6b522ee84e34cbbcb28a40ca7857c4168
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2108458
Reviewed-by: Daniel Nicoara <dnicoara@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Daniel Nicoara <dnicoara@chromium.org>
Commit-Queue: Daniel Nicoara <dnicoara@chromium.org>

Android.mk
drv.c
synaptics.c [new file with mode: 0644]

index 564f416..3eab7ae 100644 (file)
@@ -23,6 +23,7 @@ MINIGBM_SRC := \
        nouveau.c \
        radeon.c \
        rockchip.c \
+       synaptics.c \
        tegra.c \
        udl.c \
        vc4.c \
diff --git a/drv.c b/drv.c
index fee3e57..8009bac 100644 (file)
--- a/drv.c
+++ b/drv.c
@@ -54,6 +54,9 @@ extern const struct backend backend_radeon;
 #ifdef DRV_ROCKCHIP
 extern const struct backend backend_rockchip;
 #endif
+#ifdef DRV_SYNAPTICS
+extern const struct backend backend_synaptics;
+#endif
 #ifdef DRV_TEGRA
 extern const struct backend backend_tegra;
 #endif
@@ -104,6 +107,9 @@ static const struct backend *drv_get_backend(int fd)
 #ifdef DRV_ROCKCHIP
                &backend_rockchip,
 #endif
+#ifdef DRV_SYNAPTICS
+               &backend_synaptics,
+#endif
 #ifdef DRV_TEGRA
                &backend_tegra,
 #endif
diff --git a/synaptics.c b/synaptics.c
new file mode 100644 (file)
index 0000000..bcd8189
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2020 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.
+ */
+#ifdef DRV_SYNAPTICS
+
+#include "drv_priv.h"
+#include "helpers.h"
+#include "util.h"
+
+static const uint32_t render_target_formats[] = { DRM_FORMAT_ARGB8888, DRM_FORMAT_ABGR8888,
+                                                  DRM_FORMAT_XRGB8888 };
+
+static int synaptics_init(struct driver *drv)
+{
+       drv_add_combinations(drv, render_target_formats, ARRAY_SIZE(render_target_formats),
+                            &LINEAR_METADATA, BO_USE_RENDER_MASK | BO_USE_SCANOUT);
+
+       return drv_modify_linear_combinations(drv);
+}
+
+const struct backend backend_synaptics = {
+       .name = "synaptics",
+       .init = synaptics_init,
+       .bo_create = drv_dumb_bo_create,
+       .bo_destroy = drv_dumb_bo_destroy,
+       .bo_import = drv_prime_bo_import,
+       .bo_map = drv_dumb_bo_map,
+       .bo_unmap = drv_bo_munmap,
+};
+
+#endif