396 lines
11 KiB
Plaintext
396 lines
11 KiB
Plaintext
if ARCH_TEGRA
|
|
|
|
comment "NVIDIA Tegra Display Driver options"
|
|
|
|
config TEGRA_GRHOST
|
|
tristate "Tegra graphics host driver"
|
|
depends on PM_DEVFREQ
|
|
select PM_GENERIC_DOMAINS
|
|
help
|
|
Driver for the Tegra graphics host hardware.
|
|
|
|
config ARCH_TEGRA_VIC
|
|
bool "Tegra Video Image Compositor present"
|
|
default y
|
|
help
|
|
Say Y here if the SOC supports the Tegra Video Image Compositor.
|
|
Note that this not the same as the ARM Vectored Interrupt Controller.
|
|
|
|
config TEGRA_GRHOST_USE_NVMAP
|
|
bool "Use nvmap as graphics memory manager"
|
|
default y if TEGRA_NVMAP
|
|
help
|
|
Use nvmap as the graphics memory manager.
|
|
|
|
config TEGRA_GRHOST_FORCE_NVMAP
|
|
bool "Force nvmap as graphics memory manager"
|
|
default n
|
|
help
|
|
Force using nvmap instead of dma mapping API
|
|
|
|
config TEGRA_GRHOST_USE_DMABUF
|
|
bool "Support dmabuf buffers"
|
|
default y
|
|
select DMA_SHARED_BUFFER
|
|
help
|
|
Support dmabuf buffers.
|
|
|
|
config TEGRA_GRHOST_DEFAULT_TIMEOUT
|
|
depends on TEGRA_GRHOST
|
|
int "Default timeout for submits"
|
|
default 10000
|
|
help
|
|
Default timeout for jobs in milliseconds. Set to zero for no timeout.
|
|
|
|
config TEGRA_GK20A
|
|
bool "Enable the GK20A graphics engine"
|
|
depends on ARCH_TEGRA_124_SOC
|
|
default y
|
|
help
|
|
Enable support for the GK20A graphics engine
|
|
|
|
config TEGRA_GRHOST_GK20A_PHYS_PAGE_TABLES
|
|
bool "Use physical addressing for gk20a page tables"
|
|
default n
|
|
help
|
|
Use physical addressing for gk20a page tables. If this is off, we
|
|
use SMMU translation.
|
|
|
|
config TEGRA_DC
|
|
tristate "Tegra Display Contoller"
|
|
depends on ARCH_TEGRA && TEGRA_GRHOST && TEGRA_NVMAP
|
|
select BACKLIGHT_CLASS_DEVICE
|
|
select FB_MODE_HELPERS
|
|
select I2C
|
|
help
|
|
Tegra display controller support.
|
|
|
|
config TEGRA_DC_CMU
|
|
bool
|
|
default y
|
|
|
|
config TEGRA_MIPI_CAL
|
|
bool
|
|
default y
|
|
|
|
config TEGRA_DC_SCAN_COLUMN
|
|
bool
|
|
default y
|
|
|
|
config TEGRA_DC_BLENDER_GEN2
|
|
bool
|
|
default y if ARCH_TEGRA_124_SOC
|
|
default n
|
|
|
|
config TEGRA_DC_BLENDER_DEPTH
|
|
bool
|
|
default y if ARCH_TEGRA_124_SOC
|
|
default n
|
|
|
|
config TEGRA_DC_BLOCK_LINEAR
|
|
bool
|
|
default y if ARCH_TEGRA_124_SOC
|
|
default n
|
|
|
|
config TEGRA_DC_INTERLACE
|
|
bool
|
|
default y if ARCH_TEGRA_124_SOC
|
|
default n
|
|
|
|
config TEGRA_DC_LOW_LATENCY_CURSOR
|
|
bool
|
|
default y if ARCH_TEGRA_124_SOC
|
|
default n
|
|
|
|
config TEGRA_DC_CLOCK_GEN2
|
|
bool
|
|
default y if ARCH_TEGRA_124_SOC
|
|
default n
|
|
help
|
|
T12x redefined pll usages for pll_d and pll_d2.
|
|
|
|
config TEGRA_DC_TEMPORAL_DITHER
|
|
bool
|
|
default y if ARCH_TEGRA_124_SOC
|
|
default n
|
|
|
|
config FB_TEGRA
|
|
tristate "Tegra Framebuffer driver"
|
|
depends on TEGRA_DC && FB = y
|
|
select FB_CFB_FILLRECT
|
|
select FB_CFB_COPYAREA
|
|
select FB_CFB_IMAGEBLIT
|
|
default FB
|
|
help
|
|
Framebuffer device support for the Tegra display controller.
|
|
|
|
config TEGRA_DC_EXTENSIONS
|
|
bool "Tegra Display Controller Extensions"
|
|
depends on TEGRA_DC
|
|
default y
|
|
help
|
|
This exposes support for extended capabilities of the Tegra display
|
|
|
|
config TEGRA_NVMAP
|
|
bool "Tegra GPU memory management driver (nvmap)"
|
|
select ARM_DMA_USE_IOMMU if IOMMU_API
|
|
select DMA_SHARED_BUFFER
|
|
default y
|
|
help
|
|
Say Y here to include the memory management driver for the Tegra
|
|
GPU, multimedia and display subsystems
|
|
|
|
config NVMAP_HIGHMEM_ONLY
|
|
bool "Use only HIGHMEM for nvmap"
|
|
depends on TEGRA_NVMAP && IOMMU_API && HIGHMEM
|
|
default n
|
|
help
|
|
Say Y here to restrict nvmap system memory allocations (both
|
|
physical system memory and IOVMM) to just HIGHMEM pages.
|
|
|
|
config NVMAP_CARVEOUT_KILLER
|
|
bool "Reclaim nvmap carveout by killing processes"
|
|
depends on TEGRA_NVMAP
|
|
default n
|
|
help
|
|
Say Y here to allow the system to reclaim carveout space by killing
|
|
processes. This will kill the largest consumers of lowest priority
|
|
first.
|
|
|
|
config NVMAP_PAGE_POOLS
|
|
bool "Use page pools to reduce allocation overhead"
|
|
depends on TEGRA_NVMAP
|
|
default y
|
|
help
|
|
say Y here to reduce the alloction overhead, which is significant
|
|
for uncached, writecombine and inner cacheable memories as it
|
|
involves changing page attributes during every allocation per page
|
|
and flushing cache. Alloc time is reduced by allcoating the pages
|
|
ahead and keeping them aside. The reserved pages would be released
|
|
when system is low on memory and acquired back during release of
|
|
memory.
|
|
|
|
config NVMAP_PAGE_POOLS_INIT_FILLUP
|
|
bool "Fill up page pools during page pools init"
|
|
depends on NVMAP_PAGE_POOLS
|
|
default y
|
|
help
|
|
Say Y here to fill up the page pools during page pool init time.
|
|
This helps in faster alloctions right from the early alloction
|
|
requests. Page pools fill up during init would increase the boot time.
|
|
If increase in boot time is not acceptable, keep this option disabled.
|
|
|
|
config NVMAP_PAGE_POOLS_INIT_FILLUP_SIZE
|
|
depends on NVMAP_PAGE_POOLS_INIT_FILLUP
|
|
hex "Amount of memory to fill up page pools with during bootup in MB"
|
|
default 0x64
|
|
|
|
config NVMAP_PAGE_POOL_SIZE
|
|
depends on NVMAP_PAGE_POOLS
|
|
hex "Page pool size in pages"
|
|
default 0x0
|
|
|
|
config NVMAP_CACHE_MAINT_BY_SET_WAYS
|
|
bool "Enable cache maintenance by set/ways"
|
|
depends on TEGRA_NVMAP
|
|
help
|
|
Say Y here to reduce cache maintenance overhead by MVA.
|
|
This helps in reducing cache maintenance overhead in the systems,
|
|
where inner cache includes only L1. For the systems, where inner cache
|
|
includes L1 and L2, keep this option disabled.
|
|
|
|
config NVMAP_CACHE_MAINT_BY_SET_WAYS_ON_ONE_CPU
|
|
bool "Perform cache maint on one cpu only"
|
|
depends on TEGRA_NVMAP && NVMAP_CACHE_MAINT_BY_SET_WAYS
|
|
help
|
|
Say Y here to avoid cache maint on all CPU's during inner cache maint
|
|
by set/ways. When L1 and L2 are inner caches, cache maint on one
|
|
CPU is enough. When L1 is inner and L2 is outer, cache maint on
|
|
all CPU's is necessary during L1 cache maint by set/ways.
|
|
|
|
config NVMAP_OUTER_CACHE_MAINT_BY_SET_WAYS
|
|
bool "Enable outer cache maintenance by set/ways"
|
|
depends on TEGRA_NVMAP
|
|
help
|
|
Say Y here if you want to optimize cache maintenance for ranges
|
|
bigger than size of outer cache. This option has no effect on
|
|
system without outer cache.
|
|
|
|
config NVMAP_DEFERRED_CACHE_MAINT
|
|
bool "Enable deferred cache maintenance"
|
|
depends on TEGRA_NVMAP
|
|
help
|
|
Say Y here if you want to defer flush requests for
|
|
nvmap memory buffer. Cache maintenance of deferred requests
|
|
is more efficient since there is a high chance that cache lines
|
|
of earlier requests are already flushed. Also, if total size of
|
|
deferred ranges is big enough, we flush whole inner or outer
|
|
cache.
|
|
|
|
config NVMAP_DMABUF_STASH
|
|
bool "Enable stashing of IOVA maps with dmabuf"
|
|
depends on TEGRA_NVMAP
|
|
default y
|
|
help
|
|
Set to Y if you would like nvmap to stash maps when using dma
|
|
bufs. This will speed up remapping of the same handle at the cost
|
|
of using more IOVA space.
|
|
|
|
config NVMAP_DMABUF_STASH_STATS
|
|
bool "Enable stat tracking on the stash"
|
|
depends on NVMAP_DMABUF_STASH
|
|
help
|
|
Say Y to enable tracking of basic cache statistics on the dmabuf
|
|
stash. This adds some overhead but should be very useful for
|
|
debugging memory leaks.
|
|
|
|
config NVMAP_VPR
|
|
bool "Enable VPR Heap."
|
|
depends on TEGRA_NVMAP
|
|
default n
|
|
help
|
|
Say Y here to enable Video Protection Region(VPR) heap.
|
|
if unsure, say N.
|
|
|
|
config NVMAP_FORCE_ZEROED_USER_PAGES
|
|
bool "Only alloc zeroed pages for user space"
|
|
depends on TEGRA_NVMAP
|
|
help
|
|
Say Y here to force zeroing of pages allocated for user space. This
|
|
avoids leaking kernel secure data to user space. This can add
|
|
significant overhead to allocation operations depending on the
|
|
allocation size requested.
|
|
|
|
config NVMAP_USE_FD_FOR_HANDLE
|
|
bool "Use Fd's to represent NvMap handles"
|
|
depends on TEGRA_NVMAP
|
|
default y
|
|
help
|
|
Say Y here to use Fd's for representing NvMap handles
|
|
in user space. Enabling this config returns DmaBuf
|
|
compatible Fd's to user space during handle creation
|
|
requests. The kernel component that receives these Fd's
|
|
can use either NvMap interface or DmaBuf interface in order
|
|
to access NvMap handle memory.
|
|
|
|
config NVMAP_USE_CMA_FOR_CARVEOUT
|
|
bool "Use CMA memory for carveouts"
|
|
depends on TEGRA_NVMAP
|
|
help
|
|
Say Y here to reserve carveout memory using CMA
|
|
API. CMA reserved memory can be used by applications
|
|
when it is not in use by the device that reserved it.
|
|
|
|
config NVMAP_CPA
|
|
bool "Use CPA API in nvmap"
|
|
depends on CPA
|
|
help
|
|
Say Y here to have nvmap use CPA. CPA is necessary for
|
|
certain chips where page table aliasing can cause undefined
|
|
results due to speculative memory loads/stores. If unsure,
|
|
say N.
|
|
|
|
config NVMAP_CONVERT_CARVEOUT_TO_IOVMM
|
|
bool "Convert carveout to IOVMM"
|
|
depends on TEGRA_NVMAP && IOMMU_API
|
|
default y
|
|
help
|
|
Say Y here to force to convert carveout memory requests to
|
|
I/O virtual memory requests.
|
|
|
|
config NVMAP_HANDLE_MARSHAL
|
|
bool "Marshal nvmap handle id"
|
|
depends on TEGRA_NVMAP
|
|
help
|
|
Enables nvmap handle id marshalling. Marshalling converts
|
|
the nvmap handle id into an unique number before passing
|
|
the handle id to user/kernel clients. The marshalling
|
|
would allow sharing a 64-bit handle id as 32-bit id to
|
|
user space when kernel is 64-bit and user space is 32-bit.
|
|
|
|
config TEGRA_DSI
|
|
bool "Enable DSI panel."
|
|
default n
|
|
help
|
|
Say Y here to enable the DSI panel.
|
|
|
|
config TEGRA_DSI2EDP_TC358767
|
|
bool "Enable DSI2EDP TC358767 bridge."
|
|
default n
|
|
help
|
|
Say Y here to enable the DSI2EDP TOSHIBA 358767 adapter.
|
|
|
|
config TEGRA_DSI2EDP_SN65DSI86
|
|
bool "Enable DSI2EDP SN65DSI86 bridge."
|
|
default n
|
|
help
|
|
Say Y here to enable the DSI2EDP TI SN65DSI86 adapter.
|
|
|
|
config TEGRA_DP
|
|
bool "Enable eDP panel."
|
|
default n
|
|
help
|
|
Say Y here to enable eDP panel.
|
|
|
|
config TEGRA_LVDS
|
|
bool "Enable LVDS panel."
|
|
default n
|
|
|
|
config TEGRA_NVHDCP
|
|
bool "Support NVHDCP content protection on HDMI"
|
|
default n
|
|
select TEGRA_KFUSE
|
|
help
|
|
Say Y here to support NVHDCP upstream and downstream protocols, this
|
|
requires a correctly fused chip to negotiate keys.
|
|
|
|
config TEGRA_GK20A_PMU
|
|
bool "Support GK20A PMU"
|
|
depends on TEGRA_GK20A
|
|
default n
|
|
help
|
|
Say Y here to enable GK20A PMU features.
|
|
|
|
choice
|
|
depends on TEGRA_GK20A
|
|
prompt "Enable GK20A frequency scaling"
|
|
default TEGRA_GK20A_PERFMON
|
|
optional
|
|
help
|
|
Select this entry to enable gk20a scaling
|
|
|
|
config TEGRA_GK20A_PERFMON
|
|
bool "Use Perfmon"
|
|
help
|
|
Select this to enable built-in perfmon scaling.
|
|
The built-in scaling option uses simplistic
|
|
scaling mechanism (if busy, increase frequency and
|
|
decrease frequency if idle).
|
|
|
|
config TEGRA_GK20A_DEVFREQ
|
|
bool "Use Devfreq"
|
|
help
|
|
Select this to use devfreq based scaling.
|
|
Devfreq is a common framework that allows using
|
|
variety of different governors and changing
|
|
between governors on the fly. By default, no
|
|
governor is selected.
|
|
|
|
endchoice
|
|
|
|
config TEGRA_GK20A_DEBUG_SESSION
|
|
bool "Enable GK20A debug session"
|
|
depends on TEGRA_GK20A
|
|
default n
|
|
help
|
|
Enables using debug session on GK20A.
|
|
|
|
config TEGRA_GPU_CYCLE_STATS
|
|
bool "Support GK20A GPU CYCLE STATS"
|
|
depends on TEGRA_GK20A_DEBUG_SESSION
|
|
default n
|
|
help
|
|
Say Y here to enable the cycle stats debugging features.
|
|
|
|
endif
|