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
 |