From 0bd72eeeb62ab9333989c0f90a99f3a7798776dc Mon Sep 17 00:00:00 2001 From: Show Liu Date: Fri, 20 Jun 2014 09:45:28 +0800 Subject: Added Mali T6xx r3p0 GPU driver Conflicts: drivers/video/Kconfig --- .../arm/t6xx/kbase/src/linux/mali_kbase_linux.h | 79 ++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100755 drivers/gpu/arm/t6xx/kbase/src/linux/mali_kbase_linux.h (limited to 'drivers/gpu/arm/t6xx/kbase/src/linux/mali_kbase_linux.h') diff --git a/drivers/gpu/arm/t6xx/kbase/src/linux/mali_kbase_linux.h b/drivers/gpu/arm/t6xx/kbase/src/linux/mali_kbase_linux.h new file mode 100755 index 00000000000..02120e1d372 --- /dev/null +++ b/drivers/gpu/arm/t6xx/kbase/src/linux/mali_kbase_linux.h @@ -0,0 +1,79 @@ +/* + * + * (C) COPYRIGHT 2010-2012 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_kbase_linux.h + * Base kernel APIs, Linux implementation. + */ + +#ifndef _KBASE_LINUX_H_ +#define _KBASE_LINUX_H_ + +/* All things that are needed for the Linux port. */ +#include +#include +#include +#include +#include + +typedef struct kbase_os_context { + u64 cookies; + struct list_head reg_pending; + wait_queue_head_t event_queue; + pid_t tgid; +} kbase_os_context; + +#define DEVNAME_SIZE 16 + +typedef struct kbase_os_device { + struct list_head entry; + struct device *dev; + struct miscdevice mdev; + u64 reg_start; + size_t reg_size; + void __iomem *reg; + struct resource *reg_res; + struct { + int irq; + int flags; + } irqs[3]; + char devname[DEVNAME_SIZE]; + +#ifdef CONFIG_MALI_NO_MALI + void *model; + struct kmem_cache *irq_slab; + struct workqueue_struct *irq_workq; + atomic_t serving_job_irq; + atomic_t serving_gpu_irq; + atomic_t serving_mmu_irq; + spinlock_t reg_op_lock; +#endif /* CONFIG_MALI_NO_MALI */ +} kbase_os_device; + +#if defined(MALI_KERNEL_TEST_API) +#if (1 == MALI_KERNEL_TEST_API) +#define KBASE_EXPORT_TEST_API(func) EXPORT_SYMBOL(func); +#else +#define KBASE_EXPORT_TEST_API(func) +#endif +#else +#define KBASE_EXPORT_TEST_API(func) +#endif + +#define KBASE_EXPORT_SYMBOL(func) EXPORT_SYMBOL(func); + +#endif /* _KBASE_LINUX_H_ */ -- cgit v1.2.3