mirror of
https://github.com/Fishwaldo/build.git
synced 2025-03-29 10:11:23 +00:00
280 lines
8 KiB
Diff
280 lines
8 KiB
Diff
From d55ffff2c945766659a9d7337caf89dd89228175 Mon Sep 17 00:00:00 2001
|
|
From: Edward Nielsen <enielsen2013@gmail.com>
|
|
Date: Sat, 19 May 2012 10:57:54 +0200
|
|
Subject: [PATCH 11/27] gpu: drm: Add Mali DX910-SW-99002-r2p4-02rel1
|
|
|
|
the mali directory came from the DX910-SW-99002-r2p4-02rel1
|
|
http://www.malideveloper.com/developer-resources/drivers/open-source-mali-gpus-linux-exadri2-and-x11-display-drivers.php
|
|
|
|
menuconfig to enable CONFIG_DRM_MALI under device drivers->graphics
|
|
support->Direct Rendering Manager
|
|
|
|
the only issue is at the bottom of the mali_drv.c file I had to use
|
|
/* MODULE_LICENSE(DRIVER_LICENSE); */
|
|
MODULE_LICENSE("GPL");
|
|
|
|
to avoid a GPL / NONGPL license error while compiling. The header of
|
|
this file says it has a GPL license so the change should be ok. I am not
|
|
a license expert but I believe it will be ok.
|
|
|
|
(cherry picked from commit 250cc15284336be76b84fdbdb123d5aad6409d37)
|
|
---
|
|
drivers/gpu/drm/Kconfig | 7 ++
|
|
drivers/gpu/drm/Makefile | 1 +
|
|
drivers/gpu/drm/mali/Makefile | 20 ++++++
|
|
drivers/gpu/drm/mali/mali_drv.c | 153 ++++++++++++++++++++++++++++++++++++++++
|
|
drivers/gpu/drm/mali/mali_drv.h | 25 +++++++
|
|
5 files changed, 206 insertions(+)
|
|
create mode 100644 drivers/gpu/drm/mali/Makefile
|
|
create mode 100644 drivers/gpu/drm/mali/mali_drv.c
|
|
create mode 100644 drivers/gpu/drm/mali/mali_drv.h
|
|
|
|
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig
|
|
index e354bc0..10e1797 100644
|
|
--- a/drivers/gpu/drm/Kconfig
|
|
+++ b/drivers/gpu/drm/Kconfig
|
|
@@ -172,6 +172,13 @@ config DRM_VIA
|
|
Choose this option if you have a Via unichrome or compatible video
|
|
chipset. If M is selected the module will be called via.
|
|
|
|
+config DRM_MALI
|
|
+ tristate "Mali DRM supprt"
|
|
+ depends on DRM
|
|
+ help
|
|
+ Choose this option if you have a Mali 200 or Mali 400 gpu
|
|
+ If M is selected the module will be called mali_drm.
|
|
+
|
|
config DRM_SAVAGE
|
|
tristate "Savage video cards"
|
|
depends on DRM && PCI
|
|
diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile
|
|
index c20da5b..e94a1a8 100644
|
|
--- a/drivers/gpu/drm/Makefile
|
|
+++ b/drivers/gpu/drm/Makefile
|
|
@@ -38,6 +38,7 @@ obj-$(CONFIG_DRM_SIS) += sis/
|
|
obj-$(CONFIG_DRM_SAVAGE)+= savage/
|
|
obj-$(CONFIG_DRM_VMWGFX)+= vmwgfx/
|
|
obj-$(CONFIG_DRM_VIA) +=via/
|
|
+obj-$(CONFIG_DRM_MALI) += mali/
|
|
obj-$(CONFIG_DRM_NOUVEAU) +=nouveau/
|
|
obj-$(CONFIG_DRM_EXYNOS) +=exynos/
|
|
obj-$(CONFIG_DRM_GMA500) += gma500/
|
|
diff --git a/drivers/gpu/drm/mali/Makefile b/drivers/gpu/drm/mali/Makefile
|
|
new file mode 100644
|
|
index 0000000..c9a9a83
|
|
--- /dev/null
|
|
+++ b/drivers/gpu/drm/mali/Makefile
|
|
@@ -0,0 +1,20 @@
|
|
+#
|
|
+# * Copyright (C) 2010 ARM Limited. All rights reserved.
|
|
+# *
|
|
+# * This program is free software and is provided to you under the terms of the GNU General Public License version 2
|
|
+# * as published by the Free Software Foundation, and any use by you of this program is subject to the terms of such GNU licence.
|
|
+# *
|
|
+# * A copy of the licence is included with the program, and can also be obtained from Free Software
|
|
+# * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
+#
|
|
+
|
|
+#
|
|
+# Makefile for the Mali drm device driver. This driver provides support for the
|
|
+# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
|
|
+
|
|
+ccflags-y = -Iinclude/drm -Larch/arm/mach-sun4i/devices.o
|
|
+mali_drm-y := mali_drv.o
|
|
+
|
|
+obj-$(CONFIG_DRM_MALI) += mali_drm.o
|
|
+
|
|
+
|
|
diff --git a/drivers/gpu/drm/mali/mali_drv.c b/drivers/gpu/drm/mali/mali_drv.c
|
|
new file mode 100644
|
|
index 0000000..e88873e
|
|
--- /dev/null
|
|
+++ b/drivers/gpu/drm/mali/mali_drv.c
|
|
@@ -0,0 +1,153 @@
|
|
+/**
|
|
+ * Copyright (C) 2010 ARM Limited. All rights reserved.
|
|
+ *
|
|
+ * This program is free software and is provided to you under the terms of the GNU General Public License version 2
|
|
+ * as published by the Free Software Foundation, and any use by you of this program is subject to the terms of such GNU licence.
|
|
+ *
|
|
+ * A copy of the licence is included with the program, and can also be obtained from Free Software
|
|
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
+ */
|
|
+
|
|
+/**
|
|
+ * @file mali_drv.c
|
|
+ * Implementation of the Linux device driver entrypoints for Mali DRM
|
|
+ */
|
|
+
|
|
+#include <linux/vermagic.h>
|
|
+#include "drmP.h"
|
|
+#include "mali_drv.h"
|
|
+
|
|
+
|
|
+void mali_drm_preclose(struct drm_device *dev)
|
|
+{
|
|
+}
|
|
+
|
|
+void mali_drm_lastclose(struct drm_device *dev)
|
|
+{
|
|
+}
|
|
+
|
|
+static int mali_drm_suspend(struct drm_device *dev)
|
|
+{
|
|
+ return 0;
|
|
+}
|
|
+
|
|
+static int mali_drm_resume(struct drm_device *dev)
|
|
+{
|
|
+ return 0;
|
|
+}
|
|
+
|
|
+static int mali_drm_load(struct drm_device *dev, unsigned long chipset)
|
|
+{
|
|
+ return 0;
|
|
+}
|
|
+
|
|
+static int mali_drm_unload(struct drm_device *dev)
|
|
+{
|
|
+ return 0;
|
|
+}
|
|
+
|
|
+static struct drm_driver driver =
|
|
+{
|
|
+ .driver_features = DRIVER_BUS_PLATFORM,
|
|
+ .load = mali_drm_load,
|
|
+ .unload = mali_drm_unload,
|
|
+ .context_dtor = NULL,
|
|
+ .reclaim_buffers = NULL,
|
|
+ .reclaim_buffers_idlelocked = NULL,
|
|
+ .preclose = mali_drm_preclose,
|
|
+ .lastclose = mali_drm_lastclose,
|
|
+ .suspend = mali_drm_suspend,
|
|
+ .resume = mali_drm_resume,
|
|
+
|
|
+ .ioctls = NULL,
|
|
+ .fops = {
|
|
+ .owner = THIS_MODULE,
|
|
+ .open = drm_open,
|
|
+ .release = drm_release,
|
|
+ .unlocked_ioctl = drm_ioctl,
|
|
+ .mmap = drm_mmap,
|
|
+ .poll = drm_poll,
|
|
+ .fasync = drm_fasync,
|
|
+ },
|
|
+ .name = DRIVER_NAME,
|
|
+ .desc = DRIVER_DESC,
|
|
+ .date = DRIVER_DATE,
|
|
+ .major = DRIVER_MAJOR,
|
|
+ .minor = DRIVER_MINOR,
|
|
+ .patchlevel = DRIVER_PATCHLEVEL,
|
|
+};
|
|
+
|
|
+int mali_drm_init(struct platform_device *dev)
|
|
+{
|
|
+ printk(KERN_INFO "Mali DRM initialize, driver name: %s, version %d.%d\n", DRIVER_NAME, DRIVER_MAJOR, DRIVER_MINOR);
|
|
+ driver.num_ioctls = 0;
|
|
+
|
|
+ return drm_platform_init(&driver, dev);
|
|
+}
|
|
+
|
|
+void mali_drm_exit(struct platform_device *dev)
|
|
+{
|
|
+
|
|
+ return drm_platform_exit(&driver, dev);
|
|
+}
|
|
+
|
|
+static int __devinit mali_platform_drm_probe(struct platform_device *dev)
|
|
+{
|
|
+ return mali_drm_init(dev);
|
|
+}
|
|
+
|
|
+static int mali_platform_drm_remove(struct platform_device *dev)
|
|
+{
|
|
+ mali_drm_exit(dev);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
+
|
|
+static int mali_platform_drm_suspend(struct platform_device *dev, pm_message_t state)
|
|
+{
|
|
+ return 0;
|
|
+}
|
|
+
|
|
+static int mali_platform_drm_resume(struct platform_device *dev)
|
|
+{
|
|
+ return 0;
|
|
+}
|
|
+
|
|
+
|
|
+static struct platform_driver platform_drm_driver = {
|
|
+ .probe = mali_platform_drm_probe,
|
|
+ .remove = __devexit_p(mali_platform_drm_remove),
|
|
+ .suspend = mali_platform_drm_suspend,
|
|
+ .resume = mali_platform_drm_resume,
|
|
+ .driver = {
|
|
+ .owner = THIS_MODULE,
|
|
+ .name = DRIVER_NAME,
|
|
+ },
|
|
+};
|
|
+
|
|
+static int __init mali_platform_drm_init(void)
|
|
+{
|
|
+ return platform_driver_register( &platform_drm_driver );
|
|
+}
|
|
+
|
|
+static void __exit mali_platform_drm_exit(void)
|
|
+{
|
|
+ platform_driver_unregister( &platform_drm_driver );
|
|
+}
|
|
+
|
|
+#ifdef MODULE
|
|
+module_init(mali_platform_drm_init);
|
|
+#else
|
|
+late_initcall(mali_platform_drm_init);
|
|
+#endif
|
|
+module_exit(mali_platform_drm_exit);
|
|
+
|
|
+MODULE_DESCRIPTION(DRIVER_DESC);
|
|
+MODULE_VERSION(DRIVER_VERSION);
|
|
+MODULE_AUTHOR(DRIVER_AUTHOR);
|
|
+/* MODULE_LICENSE(DRIVER_LICENSE); */
|
|
+MODULE_LICENSE("GPL");
|
|
+MODULE_ALIAS(DRIVER_ALIAS);
|
|
+MODULE_INFO(vermagic, VERMAGIC_STRING);
|
|
+
|
|
+
|
|
diff --git a/drivers/gpu/drm/mali/mali_drv.h b/drivers/gpu/drm/mali/mali_drv.h
|
|
new file mode 100644
|
|
index 0000000..aed5fd3
|
|
--- /dev/null
|
|
+++ b/drivers/gpu/drm/mali/mali_drv.h
|
|
@@ -0,0 +1,25 @@
|
|
+/**
|
|
+ * Copyright (C) 2010 ARM Limited. All rights reserved.
|
|
+ *
|
|
+ * This program is free software and is provided to you under the terms of the GNU General Public License version 2
|
|
+ * as published by the Free Software Foundation, and any use by you of this program is subject to the terms of such GNU licence.
|
|
+ *
|
|
+ * A copy of the licence is included with the program, and can also be obtained from Free Software
|
|
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
+ */
|
|
+
|
|
+#ifndef _MALI_DRV_H_
|
|
+#define _MALI_DRV_H_
|
|
+
|
|
+#define DRIVER_AUTHOR "ARM Ltd."
|
|
+#define DRIVER_NAME "mali_drm"
|
|
+#define DRIVER_DESC "DRM module for Mali-200, Mali-400"
|
|
+#define DRIVER_LICENSE "GPLv2"
|
|
+#define DRIVER_ALIAS "platform:mali_drm"
|
|
+#define DRIVER_DATE "20101111"
|
|
+#define DRIVER_VERSION "0.2"
|
|
+#define DRIVER_MAJOR 2
|
|
+#define DRIVER_MINOR 1
|
|
+#define DRIVER_PATCHLEVEL 1
|
|
+
|
|
+#endif /* _MALI_DRV_H_ */
|
|
--
|
|
1.9.1
|
|
|