mirror of
https://github.com/armbian/build.git
synced 2025-08-10 05:06:57 +02:00
* Recycling of megous v5.16.4 patches The patches were sorted as far as possible. Some patches are renamed according to their place of application. The length of the patch name has been changed to improve readability using the `git format-patch --filename-max-length=75` method. The folder containing the patches will have the name `patches.name` and the corresponding file `series.name` for the convenience of processing and moving them upstream. But the control file remains `series.conf`. Signed-off-by: The-going <48602507+The-going@users.noreply.github.com> * Add a series of armbian patches for 5.16 Signed-off-by: The-going <48602507+The-going@users.noreply.github.com> * Remove patches whose fixes are already in the kernel Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
103 lines
2.9 KiB
Diff
103 lines
2.9 KiB
Diff
From 68a63631a714cc28c401f66613ec90dced5226fd Mon Sep 17 00:00:00 2001
|
|
From: Maxime Ripard <maxime.ripard@free-electrons.com>
|
|
Date: Mon, 7 Dec 2015 09:47:34 +0100
|
|
Subject: [PATCH 017/101] drv:gpu:drm:sun4i: Add GEM allocator
|
|
|
|
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
|
---
|
|
drivers/gpu/drm/sun4i/sun4i_drv.c | 27 +++++++++++++++++++++++++++
|
|
include/uapi/drm/sun4i_drm.h | 29 +++++++++++++++++++++++++++++
|
|
2 files changed, 56 insertions(+)
|
|
create mode 100644 include/uapi/drm/sun4i_drm.h
|
|
|
|
diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c
|
|
index 54dd562e2..4a2c551be 100644
|
|
--- a/drivers/gpu/drm/sun4i/sun4i_drv.c
|
|
+++ b/drivers/gpu/drm/sun4i/sun4i_drv.c
|
|
@@ -23,6 +23,8 @@
|
|
#include <drm/drm_probe_helper.h>
|
|
#include <drm/drm_vblank.h>
|
|
|
|
+#include <uapi/drm/sun4i_drm.h>
|
|
+
|
|
#include "sun4i_drv.h"
|
|
#include "sun4i_frontend.h"
|
|
#include "sun4i_framebuffer.h"
|
|
@@ -41,6 +43,27 @@ static int drm_sun4i_gem_dumb_create(struct drm_file *file_priv,
|
|
|
|
DEFINE_DRM_GEM_CMA_FOPS(sun4i_drv_fops);
|
|
|
|
+static int sun4i_gem_create_ioctl(struct drm_device *drm, void *data,
|
|
+ struct drm_file *file_priv)
|
|
+{
|
|
+ struct drm_sun4i_gem_create *args = data;
|
|
+ struct drm_gem_cma_object *cma_obj;
|
|
+ size_t size;
|
|
+
|
|
+ /* The Mali requires a 64 bytes alignment */
|
|
+ size = ALIGN(args->size, 64);
|
|
+
|
|
+ cma_obj = drm_gem_cma_create_with_handle(file_priv, drm, size,
|
|
+ &args->handle);
|
|
+
|
|
+ return PTR_ERR_OR_ZERO(cma_obj);
|
|
+}
|
|
+
|
|
+static const struct drm_ioctl_desc sun4i_drv_ioctls[] = {
|
|
+ DRM_IOCTL_DEF_DRV(SUN4I_GEM_CREATE, sun4i_gem_create_ioctl,
|
|
+ DRM_UNLOCKED | DRM_AUTH),
|
|
+};
|
|
+
|
|
static const struct drm_driver sun4i_drv_driver = {
|
|
.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
|
|
|
|
@@ -52,6 +75,10 @@ static const struct drm_driver sun4i_drv_driver = {
|
|
.major = 1,
|
|
.minor = 0,
|
|
|
|
+ /* Custom ioctls */
|
|
+ .ioctls = sun4i_drv_ioctls,
|
|
+ .num_ioctls = ARRAY_SIZE(sun4i_drv_ioctls),
|
|
+
|
|
/* GEM Operations */
|
|
DRM_GEM_CMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE(drm_sun4i_gem_dumb_create),
|
|
};
|
|
diff --git a/include/uapi/drm/sun4i_drm.h b/include/uapi/drm/sun4i_drm.h
|
|
new file mode 100644
|
|
index 000000000..67b9dd4ee
|
|
--- /dev/null
|
|
+++ b/include/uapi/drm/sun4i_drm.h
|
|
@@ -0,0 +1,29 @@
|
|
+/*
|
|
+ * Copyright (C) 2015 Free Electrons
|
|
+ * Copyright (C) 2015 NextThing Co
|
|
+ *
|
|
+ * Maxime Ripard <maxime.ripard@free-electrons.com>
|
|
+ *
|
|
+ * This program is free software; you can redistribute it and/or
|
|
+ * modify it under the terms of the GNU General Public License as
|
|
+ * published by the Free Software Foundation; either version 2 of
|
|
+ * the License, or (at your option) any later version.
|
|
+ */
|
|
+
|
|
+#ifndef _UAPI_SUN4I_DRM_H_
|
|
+#define _UAPI_SUN4I_DRM_H_
|
|
+
|
|
+#include <drm/drm.h>
|
|
+
|
|
+struct drm_sun4i_gem_create {
|
|
+ __u64 size;
|
|
+ __u32 flags;
|
|
+ __u32 handle;
|
|
+};
|
|
+
|
|
+#define DRM_SUN4I_GEM_CREATE 0x00
|
|
+
|
|
+#define DRM_IOCTL_SUN4I_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_SUN4I_GEM_CREATE, \
|
|
+ struct drm_sun4i_gem_create)
|
|
+
|
|
+#endif
|
|
--
|
|
2.31.1
|
|
|