# # (C) COPYRIGHT 2012-2015 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. # # menuconfig MALI_MIDGARD tristate "Mali Midgard series support" select GPU_TRACEPOINTS if ANDROID default n help Enable this option to build support for a ARM Mali Midgard GPU. To compile this driver as a module, choose M here: this will generate a single module, called mali_kbase. config MALI_GATOR_SUPPORT bool "Streamline support via Gator" depends on MALI_MIDGARD default n help Adds diagnostic support for use with the ARM Streamline Performance Analyzer. You will need the Gator device driver already loaded before loading this driver when enabling Streamline debug support. This is a legacy interface required by older versions of Streamline. config MALI_MIDGARD_DVFS bool "Enable legacy DVFS" depends on MALI_MIDGARD && !MALI_DEVFREQ && !MALI_PLATFORM_DEVICETREE default n help Choose this option to enable legacy DVFS in the Mali Midgard DDK. config MALI_MIDGARD_ENABLE_TRACE bool "Enable kbase tracing" depends on MALI_MIDGARD default n help Enables tracing in kbase. Trace log available through the "mali_trace" debugfs file, when the CONFIG_DEBUG_FS is enabled config MALI_DEVFREQ bool "devfreq support for Mali" depends on MALI_MIDGARD && PM_DEVFREQ help Support devfreq for Mali. Using the devfreq framework and, by default, the simpleondemand governor, the frequency of Mali will be dynamically selected from the available OPPs. config MALI_DMA_FENCE bool "DMA_BUF fence support for Mali" depends on MALI_MIDGARD && !KDS default n help Support DMA_BUF fences for Mali. This option should only be enabled if KDS is not present and the Linux Kernel has built in support for DMA_BUF fences. # MALI_EXPERT configuration options menuconfig MALI_EXPERT depends on MALI_MIDGARD bool "Enable Expert Settings" default n help Enabling this option and modifying the default settings may produce a driver with performance or other limitations. config MALI_PRFCNT_SET_SECONDARY bool "Use secondary set of performance counters" depends on MALI_MIDGARD && MALI_EXPERT default n help Select this option to use secondary set of performance counters. Kernel features that depend on an access to the primary set of counters may become unavailable. Enabling this option will prevent power management from working optimally and may cause instrumentation tools to return bogus results. If unsure, say N. config MALI_PLATFORM_FAKE bool "Enable fake platform device support" depends on MALI_MIDGARD && MALI_EXPERT default n help When you start to work with the Mali Midgard series device driver the platform-specific code of the Linux kernel for your platform may not be complete. In this situation the kernel device driver supports creating the platform device outside of the Linux platform-specific code. Enable this option if would like to use a platform device configuration from within the device driver. choice prompt "Platform configuration" depends on MALI_MIDGARD && MALI_EXPERT default MALI_PLATFORM_DEVICETREE help Select the SOC platform that contains a Mali Midgard GPU config MALI_PLATFORM_DEVICETREE bool "Device Tree platform" depends on OF help Select this option to use Device Tree with the Mali driver. When using this option the Mali driver will get the details of the GPU hardware from the Device Tree. This means that the same driver binary can run on multiple platforms as long as all the GPU hardware details are described in the device tree. Device Tree is the recommended method for the Mali driver platform integration. config MALI_PLATFORM_VEXPRESS depends on ARCH_VEXPRESS && (ARCH_VEXPRESS_CA9X4 || ARCH_VEXPRESS_CA15X4) bool "Versatile Express" config MALI_PLATFORM_VEXPRESS_VIRTEX7_40MHZ depends on ARCH_VEXPRESS && (ARCH_VEXPRESS_CA9X4 || ARCH_VEXPRESS_CA15X4) bool "Versatile Express w/Virtex7 @ 40Mhz" config MALI_PLATFORM_GOLDFISH depends on ARCH_GOLDFISH bool "Android Goldfish virtual CPU" config MALI_PLATFORM_PBX depends on ARCH_REALVIEW && REALVIEW_EB_A9MP && MACH_REALVIEW_PBX bool "Realview PBX-A9" config MALI_PLATFORM_THIRDPARTY bool "Third Party Platform" endchoice config MALI_PLATFORM_THIRDPARTY_NAME depends on MALI_MIDGARD && MALI_PLATFORM_THIRDPARTY && MALI_EXPERT string "Third party platform name" help Enter the name of a third party platform that is supported. The third part configuration file must be in midgard/config/tpip/mali_kbase_config_xxx.c where xxx is the name specified here. config MALI_DEBUG bool "Debug build" depends on MALI_MIDGARD && MALI_EXPERT default n help Select this option for increased checking and reporting of errors. config MALI_FENCE_DEBUG bool "Debug sync fence usage" depends on MALI_MIDGARD && MALI_EXPERT && SYNC default y if MALI_DEBUG help Select this option to enable additional checking and reporting on the use of sync fences in the Mali driver. This will add a 3s timeout to all sync fence waits in the Mali driver, so that when work for Mali has been waiting on a sync fence for a long time a debug message will be printed, detailing what fence is causing the block, and which dependent Mali atoms are blocked as a result of this. The timeout can be changed at runtime through the js_soft_timeout device attribute, where the timeout is specified in milliseconds. config MALI_NO_MALI bool "No Mali" depends on MALI_MIDGARD && MALI_EXPERT default n help This can be used to test the driver in a simulated environment whereby the hardware is not physically present. If the hardware is physically present it will not be used. This can be used to test the majority of the driver without needing actual hardware or for software benchmarking. All calls to the simulated hardware will complete immediately as if the hardware completed the task. config MALI_ERROR_INJECT bool "Error injection" depends on MALI_MIDGARD && MALI_EXPERT && MALI_NO_MALI default n help Enables insertion of errors to test module failure and recovery mechanisms. config MALI_TRACE_TIMELINE bool "Timeline tracing" depends on MALI_MIDGARD && MALI_EXPERT default n help Enables timeline tracing through the kernel tracepoint system. config MALI_SYSTEM_TRACE bool "Enable system event tracing support" depends on MALI_MIDGARD && MALI_EXPERT default n help Choose this option to enable system trace events for each kbase event. This is typically used for debugging but has minimal overhead when not in use. Enable only if you know what you are doing. config MALI_GPU_MMU_AARCH64 bool "Use AArch64 page tables" depends on MALI_MIDGARD && MALI_EXPERT default n help Use AArch64 format page tables for the GPU instead of LPAE-style. The two formats have the same functionality and performance but a future GPU may deprecate or remove the legacy LPAE-style format. The LPAE-style format is supported on all Midgard and current Bifrost GPUs. Enabling AArch64 format restricts the driver to only supporting Bifrost GPUs. If in doubt, say N. source "drivers/gpu/arm/midgard/platform/Kconfig"