1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyunconfig MALI400 3*4882a593Smuzhiyun tristate "Mali-300/400/450 support" 4*4882a593Smuzhiyun depends on ARM || ARM64 5*4882a593Smuzhiyun select DMA_SHARED_BUFFER 6*4882a593Smuzhiyun help 7*4882a593Smuzhiyun This enables support for the ARM Mali-300, Mali-400, and Mali-450 8*4882a593Smuzhiyun GPUs. 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module will be 11*4882a593Smuzhiyun called mali. 12*4882a593Smuzhiyun 13*4882a593Smuzhiyunconfig MALI450 14*4882a593Smuzhiyun bool "Enable Mali-450 support" 15*4882a593Smuzhiyun depends on MALI400 16*4882a593Smuzhiyun help 17*4882a593Smuzhiyun This enables support for Mali-450 specific features. 18*4882a593Smuzhiyun 19*4882a593Smuzhiyunconfig MALI470 20*4882a593Smuzhiyun bool "Enable Mali-470 support" 21*4882a593Smuzhiyun depends on MALI400 22*4882a593Smuzhiyun help 23*4882a593Smuzhiyun This enables support for Mali-470 specific features. 24*4882a593Smuzhiyun 25*4882a593Smuzhiyunconfig MALI400_DEBUG 26*4882a593Smuzhiyun bool "Enable debug in Mali driver" 27*4882a593Smuzhiyun depends on MALI400 28*4882a593Smuzhiyun help 29*4882a593Smuzhiyun This enabled extra debug checks and messages in the Mali driver. 30*4882a593Smuzhiyun 31*4882a593Smuzhiyunconfig MALI400_PROFILING 32*4882a593Smuzhiyun bool "Enable Mali profiling" 33*4882a593Smuzhiyun depends on MALI400 34*4882a593Smuzhiyun select TRACEPOINTS 35*4882a593Smuzhiyun default y 36*4882a593Smuzhiyun help 37*4882a593Smuzhiyun This enables gator profiling of Mali GPU events. 38*4882a593Smuzhiyun 39*4882a593Smuzhiyunconfig MALI400_INTERNAL_PROFILING 40*4882a593Smuzhiyun bool "Enable internal Mali profiling API" 41*4882a593Smuzhiyun depends on MALI400_PROFILING 42*4882a593Smuzhiyun default n 43*4882a593Smuzhiyun help 44*4882a593Smuzhiyun This enables the internal legacy Mali profiling API. 45*4882a593Smuzhiyun 46*4882a593Smuzhiyunconfig MALI400_UMP 47*4882a593Smuzhiyun bool "Enable UMP support" 48*4882a593Smuzhiyun depends on MALI400 49*4882a593Smuzhiyun help 50*4882a593Smuzhiyun This enables support for the UMP memory sharing API in the Mali driver. 51*4882a593Smuzhiyun 52*4882a593Smuzhiyunconfig MALI_DVFS 53*4882a593Smuzhiyun bool "Enable Mali dynamically frequency change" 54*4882a593Smuzhiyun depends on MALI400 && !MALI_DEVFREQ 55*4882a593Smuzhiyun default y 56*4882a593Smuzhiyun help 57*4882a593Smuzhiyun This enables support for dynamic change frequency of Mali with the goal of lowering power consumption. 58*4882a593Smuzhiyun 59*4882a593Smuzhiyunconfig MALI_DMA_BUF_MAP_ON_ATTACH 60*4882a593Smuzhiyun bool "Map dma-buf attachments on attach" 61*4882a593Smuzhiyun depends on MALI400 && DMA_SHARED_BUFFER 62*4882a593Smuzhiyun default y 63*4882a593Smuzhiyun help 64*4882a593Smuzhiyun This makes the Mali driver map dma-buf attachments after doing 65*4882a593Smuzhiyun attach. If this is not set the dma-buf attachments will be mapped for 66*4882a593Smuzhiyun every time the GPU need to access the buffer. 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun Mapping for each access can cause lower performance. 69*4882a593Smuzhiyun 70*4882a593Smuzhiyunconfig MALI_SHARED_INTERRUPTS 71*4882a593Smuzhiyun bool "Support for shared interrupts" 72*4882a593Smuzhiyun depends on MALI400 73*4882a593Smuzhiyun default n 74*4882a593Smuzhiyun help 75*4882a593Smuzhiyun Adds functionality required to properly support shared interrupts. Without this support, 76*4882a593Smuzhiyun the device driver will fail during insmod if it detects shared interrupts. This also 77*4882a593Smuzhiyun works when the GPU is not using shared interrupts, but might have a slight performance 78*4882a593Smuzhiyun impact. 79*4882a593Smuzhiyun 80*4882a593Smuzhiyunconfig MALI_PMU_PARALLEL_POWER_UP 81*4882a593Smuzhiyun bool "Power up Mali PMU domains in parallel" 82*4882a593Smuzhiyun depends on MALI400 83*4882a593Smuzhiyun default n 84*4882a593Smuzhiyun help 85*4882a593Smuzhiyun This makes the Mali driver power up all PMU power domains in parallel, instead of 86*4882a593Smuzhiyun powering up domains one by one, with a slight delay in between. Powering on all power 87*4882a593Smuzhiyun domains at the same time may cause peak currents higher than what some systems can handle. 88*4882a593Smuzhiyun These systems must not enable this option. 89*4882a593Smuzhiyun 90*4882a593Smuzhiyunconfig MALI_DT 91*4882a593Smuzhiyun bool "Using device tree to initialize module" 92*4882a593Smuzhiyun depends on MALI400 && OF 93*4882a593Smuzhiyun default n 94*4882a593Smuzhiyun help 95*4882a593Smuzhiyun This enable the Mali driver to choose the device tree path to get platform resoures 96*4882a593Smuzhiyun and disable the old config method. Mali driver could run on the platform which the 97*4882a593Smuzhiyun device tree is enabled in kernel and corresponding hardware description is implemented 98*4882a593Smuzhiyun properly in device DTS file. 99*4882a593Smuzhiyun 100*4882a593Smuzhiyunconfig MALI_DEVFREQ 101*4882a593Smuzhiyun bool "Using devfreq to tuning frequency" 102*4882a593Smuzhiyun depends on MALI400 && PM_DEVFREQ 103*4882a593Smuzhiyun select DEVFREQ_GOV_SIMPLE_ONDEMAND 104*4882a593Smuzhiyun default n 105*4882a593Smuzhiyun help 106*4882a593Smuzhiyun Support devfreq for Mali. 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun Using the devfreq framework and, by default, the simpleondemand 109*4882a593Smuzhiyun governor, the frequency of Mali will be dynamically selected from the 110*4882a593Smuzhiyun available OPPs. 111*4882a593Smuzhiyun 112*4882a593Smuzhiyunconfig MALI_QUIET 113*4882a593Smuzhiyun bool "Make Mali driver very quiet" 114*4882a593Smuzhiyun depends on MALI400 && !MALI400_DEBUG 115*4882a593Smuzhiyun default n 116*4882a593Smuzhiyun help 117*4882a593Smuzhiyun This forces the Mali driver to never print any messages. 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun If unsure, say N. 120