250 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			250 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| #
 | |
| # (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"
 |