# 
 | 
# (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 
 | 
    select DEVFREQ_GOV_SIMPLE_ONDEMAND 
 | 
    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_CORESTACK 
 | 
    bool "Support controlling power to the GPU core stack" 
 | 
    depends on MALI_MIDGARD && MALI_EXPERT 
 | 
    default n 
 | 
    help 
 | 
      Enabling this feature on supported GPUs will let the driver powering 
 | 
      on/off the GPU core stack independently without involving the Power 
 | 
      Domain Controller. This should only be enabled on platforms which 
 | 
      integration of the PDC to the Mali GPU is known to be problematic. 
 | 
      This feature is currently only supported on t-Six and t-HEx GPUs. 
 | 
  
 | 
      If unsure, say N. 
 | 
  
 | 
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 || SYNC_FILE) 
 | 
    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. 
 | 
  
 | 
config MALI_PWRSOFT_765 
 | 
    bool "PWRSOFT-765 ticket" 
 | 
    depends on MALI_MIDGARD && MALI_EXPERT 
 | 
    default n 
 | 
    help 
 | 
      PWRSOFT-765 fixes devfreq cooling devices issues. However, they are 
 | 
      not merged in mainline kernel yet. So this define helps to guard those 
 | 
      parts of the code. 
 | 
  
 | 
source "drivers/gpu/arm/midgard/platform/Kconfig" 
 | 
source "drivers/gpu/arm/midgard/tests/Kconfig" 
 |