hc
2023-03-21 4b55d97acc464242bcd6a8ae77b8ff37c22dec58
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
#
# (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"