MALI: rockchip: upgrade midgard DDK to r14p0-01rel0
[firefly-linux-kernel-4.4.55.git] / drivers / gpu / arm / midgard / Kconfig
1 #
2 # (C) COPYRIGHT 2012-2015 ARM Limited. All rights reserved.
3 #
4 # This program is free software and is provided to you under the terms of the
5 # GNU General Public License version 2 as published by the Free Software
6 # Foundation, and any use by you of this program is subject to the terms
7 # of such GNU licence.
8 #
9 # A copy of the licence is included with the program, and can also be obtained
10 # from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
11 # Boston, MA  02110-1301, USA.
12 #
13 #
14
15
16
17 menuconfig MALI_MIDGARD
18         tristate "Mali Midgard series support"
19         select GPU_TRACEPOINTS if ANDROID
20         default n
21         help
22           Enable this option to build support for a ARM Mali Midgard GPU.
23
24           To compile this driver as a module, choose M here:
25           this will generate a single module, called mali_kbase.
26
27 config MALI_GATOR_SUPPORT
28         bool "Streamline support via Gator"
29         depends on MALI_MIDGARD
30         default n
31         help
32           Adds diagnostic support for use with the ARM Streamline Performance Analyzer.
33           You will need the Gator device driver already loaded before loading this driver when enabling
34           Streamline debug support.
35           This is a legacy interface required by older versions of Streamline.
36
37 config MALI_MIDGARD_DVFS
38         bool "Enable legacy DVFS"
39         depends on MALI_MIDGARD && !MALI_DEVFREQ && !MALI_PLATFORM_DEVICETREE
40         default n
41         help
42           Choose this option to enable legacy DVFS in the Mali Midgard DDK.
43
44 config MALI_MIDGARD_ENABLE_TRACE
45         bool "Enable kbase tracing"
46         depends on MALI_MIDGARD
47         default n
48         help
49           Enables tracing in kbase.  Trace log available through
50           the "mali_trace" debugfs file, when the CONFIG_DEBUG_FS is enabled
51
52 config MALI_DEVFREQ
53         bool "devfreq support for Mali"
54         depends on MALI_MIDGARD && PM_DEVFREQ
55         help
56           Support devfreq for Mali.
57
58           Using the devfreq framework and, by default, the simpleondemand
59           governor, the frequency of Mali will be dynamically selected from the
60           available OPPs.
61
62 config MALI_DMA_FENCE
63         bool "DMA_BUF fence support for Mali"
64         depends on MALI_MIDGARD && !KDS
65         default n
66         help
67           Support DMA_BUF fences for Mali.
68
69           This option should only be enabled if KDS is not present and
70           the Linux Kernel has built in support for DMA_BUF fences.
71
72 # MALI_EXPERT configuration options
73
74 menuconfig MALI_EXPERT
75         depends on MALI_MIDGARD
76         bool "Enable Expert Settings"
77         default n
78         help
79           Enabling this option and modifying the default settings may produce a driver with performance or
80           other limitations.
81
82 config MALI_PRFCNT_SET_SECONDARY
83         bool "Use secondary set of performance counters"
84         depends on MALI_MIDGARD && MALI_EXPERT
85         default n
86         help
87           Select this option to use secondary set of performance counters. Kernel
88           features that depend on an access to the primary set of counters may
89           become unavailable. Enabling this option will prevent power management
90           from working optimally and may cause instrumentation tools to return
91           bogus results.
92
93           If unsure, say N.
94
95 config MALI_PLATFORM_FAKE
96         bool "Enable fake platform device support"
97         depends on MALI_MIDGARD && MALI_EXPERT
98         default n
99         help
100           When you start to work with the Mali Midgard series device driver the platform-specific code of
101           the Linux kernel for your platform may not be complete. In this situation the kernel device driver
102           supports creating the platform device outside of the Linux platform-specific code.
103           Enable this option if would like to use a platform device configuration from within the device driver.
104
105 choice
106         prompt "Platform configuration"
107         depends on MALI_MIDGARD && MALI_EXPERT
108         default MALI_PLATFORM_DEVICETREE
109         help
110           Select the SOC platform that contains a Mali Midgard GPU
111
112 config MALI_PLATFORM_DEVICETREE
113         bool "Device Tree platform"
114         depends on OF
115         help
116           Select this option to use Device Tree with the Mali driver.
117
118           When using this option the Mali driver will get the details of the
119           GPU hardware from the Device Tree. This means that the same driver
120           binary can run on multiple platforms as long as all the GPU hardware
121           details are described in the device tree.
122
123           Device Tree is the recommended method for the Mali driver platform
124           integration.
125
126 config MALI_PLATFORM_VEXPRESS
127         depends on ARCH_VEXPRESS && (ARCH_VEXPRESS_CA9X4 || ARCH_VEXPRESS_CA15X4)
128         bool "Versatile Express"
129 config MALI_PLATFORM_VEXPRESS_VIRTEX7_40MHZ
130         depends on ARCH_VEXPRESS && (ARCH_VEXPRESS_CA9X4 || ARCH_VEXPRESS_CA15X4)
131         bool "Versatile Express w/Virtex7 @ 40Mhz"
132 config MALI_PLATFORM_GOLDFISH
133         depends on ARCH_GOLDFISH
134         bool "Android Goldfish virtual CPU"
135 config MALI_PLATFORM_PBX
136         depends on ARCH_REALVIEW && REALVIEW_EB_A9MP && MACH_REALVIEW_PBX
137         bool "Realview PBX-A9"
138 config MALI_PLATFORM_THIRDPARTY
139         bool "Third Party Platform"
140 endchoice
141
142 config MALI_PLATFORM_THIRDPARTY_NAME
143         depends on MALI_MIDGARD && MALI_PLATFORM_THIRDPARTY && MALI_EXPERT
144         string "Third party platform name"
145         help
146           Enter the name of a third party platform that is supported. The third part configuration
147           file must be in midgard/config/tpip/mali_kbase_config_xxx.c where xxx is the name
148           specified here.
149
150 config MALI_DEBUG
151         bool "Debug build"
152         depends on MALI_MIDGARD && MALI_EXPERT
153         default n
154         help
155           Select this option for increased checking and reporting of errors.
156
157 config MALI_FENCE_DEBUG
158         bool "Debug sync fence usage"
159         depends on MALI_MIDGARD && MALI_EXPERT && SYNC
160         default y if MALI_DEBUG
161         help
162           Select this option to enable additional checking and reporting on the
163           use of sync fences in the Mali driver.
164
165           This will add a 3s timeout to all sync fence waits in the Mali
166           driver, so that when work for Mali has been waiting on a sync fence
167           for a long time a debug message will be printed, detailing what fence
168           is causing the block, and which dependent Mali atoms are blocked as a
169           result of this.
170
171           The timeout can be changed at runtime through the js_soft_timeout
172           device attribute, where the timeout is specified in milliseconds.
173
174 config MALI_NO_MALI
175         bool "No Mali"
176         depends on MALI_MIDGARD && MALI_EXPERT
177         default n
178         help
179           This can be used to test the driver in a simulated environment
180           whereby the hardware is not physically present. If the hardware is physically
181           present it will not be used. This can be used to test the majority of the
182           driver without needing actual hardware or for software benchmarking.
183           All calls to the simulated hardware will complete immediately as if the hardware
184           completed the task.
185
186 config MALI_ERROR_INJECT
187         bool "Error injection"
188         depends on MALI_MIDGARD && MALI_EXPERT && MALI_NO_MALI
189         default n
190         help
191           Enables insertion of errors to test module failure and recovery mechanisms.
192
193 config MALI_TRACE_TIMELINE
194         bool "Timeline tracing"
195         depends on MALI_MIDGARD && MALI_EXPERT
196         default n
197         help
198           Enables timeline tracing through the kernel tracepoint system.
199
200 config MALI_SYSTEM_TRACE
201         bool "Enable system event tracing support"
202         depends on MALI_MIDGARD && MALI_EXPERT
203         default n
204         help
205           Choose this option to enable system trace events for each
206           kbase event.  This is typically used for debugging but has
207           minimal overhead when not in use. Enable only if you know what
208           you are doing.
209
210 config MALI_GPU_MMU_AARCH64
211         bool "Use AArch64 page tables"
212         depends on MALI_MIDGARD && MALI_EXPERT
213         default n
214         help
215           Use AArch64 format page tables for the GPU instead of LPAE-style.
216           The two formats have the same functionality and performance but a
217           future GPU may deprecate or remove the legacy LPAE-style format.
218
219           The LPAE-style format is supported on all Midgard and current Bifrost
220           GPUs. Enabling AArch64 format restricts the driver to only supporting
221           Bifrost GPUs.
222
223           If in doubt, say N.
224
225 source "drivers/gpu/arm/midgard/platform/Kconfig"