video: tegra: host: Separate gk20a configs
[linux-3.10.git] / drivers / video / tegra / Kconfig
1 if ARCH_TEGRA
2
3 comment "NVIDIA Tegra Display Driver options"
4
5 config TEGRA_GRHOST
6         tristate "Tegra graphics host driver"
7         help
8           Driver for the Tegra graphics host hardware.
9
10 config TEGRA_GRHOST_VI
11         tristate "Tegra video input host1x client driver"
12         default y if TEGRA_GRHOST
13         help
14           Driver for the Tegra video input hardware.
15           To compile this driver as a module, choose M here:
16           the  module will be called nvhost-vi.
17
18 config TEGRA_GRHOST_USE_NVMAP
19         bool "Use nvmap as graphics memory manager"
20         default y if TEGRA_NVMAP
21         help
22           Use nvmap as the graphics memory manager.
23
24 config TEGRA_GRHOST_FORCE_NVMAP
25         bool "Use nvmap as graphics memory manager"
26         default n
27         help
28           Force using nvmap instead of dma mapping API
29
30 config TEGRA_GRHOST_USE_DMABUF
31         bool "Support dmabuf buffers"
32         default y
33         select DMA_SHARED_BUFFER
34         help
35           Support dmabuf buffers.
36
37 config TEGRA_GRHOST_DEFAULT_TIMEOUT
38         depends on TEGRA_GRHOST
39         int "Default timeout for submits"
40         default 10000
41         help
42           Default timeout for jobs in milliseconds. Set to zero for no timeout.
43
44 config TEGRA_GRHOST_SYNC
45         depends on TEGRA_GRHOST
46         bool "Tegra host synchronization objects"
47         default y
48         select SYNC
49         help
50           Add tegra host backend for the cross driver synchronization framework.
51           Allows creating sync fence file descriptors from Tegra host syncpoints.
52
53 config TEGRA_DC
54         tristate "Tegra Display Contoller"
55         depends on ARCH_TEGRA && TEGRA_GRHOST
56         select BACKLIGHT_CLASS_DEVICE
57         select FB_MODE_HELPERS
58         select I2C
59         help
60           Tegra display controller support.
61
62 config TEGRA_DC_CMU
63         bool
64         default n if ARCH_TEGRA_2x_SOC || ARCH_TEGRA_3x_SOC
65         default y
66
67 config TEGRA_DC_WIN_H
68     bool
69     default y if ARCH_TEGRA_14x_SOC
70     default n
71
72 config TEGRA_MIPI_CAL
73         bool
74         default n if ARCH_TEGRA_2x_SOC || ARCH_TEGRA_3x_SOC
75         default y
76
77 config TEGRA_DC_SCAN_COLUMN
78         bool
79         default y if ARCH_TEGRA_11x_SOC ||¬†ARCH_TEGRA_12x_SOC
80         default n
81
82 config TEGRA_DC_BLENDER_GEN2
83     bool
84     default n if ARCH_TEGRA_2x_SOC || ARCH_TEGRA_3x_SOC || ARCH_TEGRA_11x_SOC || ARCH_TEGRA_14x_SOC
85     default y
86
87 config TEGRA_DC_BLENDER_DEPTH
88     bool
89     default y if ARCH_TEGRA_12x_SOC
90     default n
91
92 config TEGRA_DC_BLOCK_LINEAR
93     bool
94     default y if ARCH_TEGRA_12x_SOC
95     default n
96
97 config TEGRA_DC_INTERLACE
98         bool
99         default y if ARCH_TEGRA_12x_SOC
100         default n
101
102 config TEGRA_DC_64BIT_SUPPORT
103         bool
104         default n
105         help
106                 T12x LPAE support in dc driver
107
108 config TEGRA_DC_LOW_LATENCY_CURSOR
109         bool
110         default y if ARCH_TEGRA_12x_SOC
111         default n
112
113 config TEGRA_DC_CLOCK_GEN2
114     bool
115     default y if ARCH_TEGRA_12x_SOC
116     default n
117     help
118         T12x redefined pll usages for pll_d and pll_d2.
119
120 config TEGRA_SD_GEN2
121         bool
122         default n if ARCH_TEGRA_2x_SOC || ARCH_TEGRA_3x_SOC
123         default y
124
125 config TEGRA_DC_TEMPORAL_DITHER
126         bool
127         default n if ARCH_TEGRA_2x_SOC || ARCH_TEGRA_3x_SOC || ARCH_TEGRA_11x_SOC
128         default y
129
130 config FB_TEGRA
131         tristate "Tegra Framebuffer driver"
132         depends on TEGRA_DC && FB = y
133         select FB_CFB_FILLRECT
134         select FB_CFB_COPYAREA
135         select FB_CFB_IMAGEBLIT
136         default FB
137         help
138           Framebuffer device support for the Tegra display controller.
139
140 config TEGRA_DC_EXTENSIONS
141         bool "Tegra Display Controller Extensions"
142         depends on TEGRA_DC
143         default y
144         help
145           This exposes support for extended capabilities of the Tegra display
146           controller to userspace drivers.
147
148 config TEGRA_NVMAP
149         bool "Tegra GPU memory management driver (nvmap)"
150         select ARM_DMA_USE_IOMMU if IOMMU_API
151         select DMA_SHARED_BUFFER
152         default y
153         help
154           Say Y here to include the memory management driver for the Tegra
155           GPU, multimedia and display subsystems
156
157 config NVMAP_HIGHMEM_ONLY
158         bool "Use only HIGHMEM for nvmap"
159         depends on TEGRA_NVMAP && IOMMU_API && HIGHMEM
160         default n
161         help
162           Say Y here to restrict nvmap system memory allocations (both
163           physical system memory and IOVMM) to just HIGHMEM pages.
164
165 config NVMAP_CARVEOUT_KILLER
166         bool "Reclaim nvmap carveout by killing processes"
167         depends on TEGRA_NVMAP
168         default n
169         help
170           Say Y here to allow the system to reclaim carveout space by killing
171           processes. This will kill the largest consumers of lowest priority
172           first.
173
174 config NVMAP_PAGE_POOLS
175         bool "Use page pools to reduce allocation overhead"
176         depends on TEGRA_NVMAP
177         default y
178         help
179           say Y here to reduce the alloction overhead, which is significant
180           for uncached, writecombine and inner cacheable memories as it
181           involves changing page attributes during every allocation per page
182           and flushing cache. Alloc time is reduced by allcoating the pages
183           ahead and keeping them aside. The reserved pages would be released
184           when system is low on memory and acquired back during release of
185           memory.
186
187 config NVMAP_PAGE_POOLS_INIT_FILLUP
188         bool "Fill up page pools during page pools init"
189         depends on NVMAP_PAGE_POOLS
190         default y
191         help
192           Say Y here to fill up the page pools during page pool init time.
193           This helps in faster alloctions right from the early alloction
194           requests. Page pools fill up during init would increase the boot time.
195           If increase in boot time is not acceptable, keep this option disabled.
196
197 config NVMAP_PAGE_POOLS_INIT_FILLUP_SIZE
198         depends on NVMAP_PAGE_POOLS_INIT_FILLUP
199         hex "Amount of memory to fill up page pools with during bootup in MB"
200         default 0x64
201
202 config NVMAP_PAGE_POOL_SIZE
203         depends on NVMAP_PAGE_POOLS
204         hex "Page pool size in pages"
205         default 0x0
206
207 config NVMAP_CACHE_MAINT_BY_SET_WAYS
208         bool "Enable cache maintenance by set/ways"
209         depends on TEGRA_NVMAP
210         help
211          Say Y here to reduce cache maintenance overhead by MVA.
212          This helps in reducing cache maintenance overhead in the systems,
213          where inner cache includes only L1. For the systems, where inner cache
214          includes L1 and L2, keep this option disabled.
215
216 config NVMAP_CACHE_MAINT_BY_SET_WAYS_ON_ONE_CPU
217         bool "Perform cache maint on one cpu only"
218         depends on TEGRA_NVMAP && NVMAP_CACHE_MAINT_BY_SET_WAYS
219         help
220           Say Y here to avoid cache maint on all CPU's during inner cache maint
221           by set/ways. When L1 and L2 are inner caches, cache maint on one
222           CPU is enough. When L1 is inner and L2 is outer, cache maint on
223           all CPU's is necessary during L1 cache maint by set/ways.
224
225 config NVMAP_OUTER_CACHE_MAINT_BY_SET_WAYS
226         bool "Enable outer cache maintenance by set/ways"
227         depends on TEGRA_NVMAP
228         help
229           Say Y here if you want to optimize cache maintenance for ranges
230           bigger than size of outer cache. This option has no effect on
231           system without outer cache.
232
233 config NVMAP_DEFERRED_CACHE_MAINT
234         bool "Enable deferred cache maintenance"
235         depends on TEGRA_NVMAP
236         help
237           Say Y here if you want to defer flush requests for
238           nvmap memory buffer. Cache maintenance of deferred requests
239           is more efficient since there is a high chance that cache lines
240           of earlier requests are already flushed. Also, if total size of
241           deferred ranges is big enough, we flush whole inner or outer
242           cache.
243
244 config NVMAP_DMABUF_STASH
245         bool "Enable stashing of IOVA maps with dmabuf"
246         depends on TEGRA_NVMAP
247         default y
248         help
249           Set to Y if you would like nvmap to stash maps when using dma
250           bufs. This will speed up remapping of the same handle at the cost
251           of using more IOVA space.
252
253 config NVMAP_DMABUF_STASH_STATS
254         bool "Enable stat tracking on the stash"
255         depends on NVMAP_DMABUF_STASH
256         help
257           Say Y to enable tracking of basic cache statistics on the dmabuf
258           stash. This adds some overhead but should be very useful for
259           debugging memory leaks.
260
261 config NVMAP_VPR
262         bool "Enable VPR Heap."
263         depends on TEGRA_NVMAP
264         default n
265         help
266           Say Y here to enable Video Protection Region(VPR) heap.
267           if unsure, say N.
268
269 config NVMAP_FORCE_ZEROED_USER_PAGES
270         bool "Only alloc zeroed pages for user space"
271         depends on TEGRA_NVMAP
272         help
273           Say Y here to force zeroing of pages allocated for user space. This
274           avoids leaking kernel secure data to user space. This can add
275           significant overhead to allocation operations depending on the
276           allocation size requested.
277
278 config NVMAP_USE_FD_FOR_HANDLE
279         bool "Use Fd's to represent NvMap handles"
280         depends on TEGRA_NVMAP
281         default y
282         help
283           Say Y here to use Fd's for representing NvMap handles
284           in user space. Enabling this config returns DmaBuf
285           compatible Fd's to user space during handle creation
286           requests. The kernel component that receives these Fd's
287           can use either NvMap interface or DmaBuf interface in order
288           to access NvMap handle memory.
289
290 config NVMAP_USE_CMA_FOR_CARVEOUT
291         bool "Use CMA memory for carveouts"
292         depends on TEGRA_NVMAP
293         help
294           Say Y here to reserve carveout memory using CMA
295           API. CMA reserved memory can be used by applications
296           when it is not in use by the device that reserved it.
297
298 config NVMAP_CPA
299         bool "Use CPA API in nvmap"
300         depends on CPA
301         help
302           Say Y here to have nvmap use CPA. CPA is necessary for
303           certain chips where page table aliasing can cause undefined
304           results due to speculative memory loads/stores. If unsure,
305           say N.
306
307 config TEGRA_DSI
308         bool "Enable DSI panel."
309         default n
310         help
311           Say Y here to enable the DSI panel.
312
313 config TEGRA_DSI2EDP_TC358767
314         bool "Enable DSI2EDP TC358767 bridge."
315         default n
316         help
317           Say Y here to enable the DSI2EDP TOSHIBA 358767 adapter.
318
319 config TEGRA_DSI2EDP_SN65DSI86
320         bool "Enable DSI2EDP SN65DSI86 bridge."
321         default n
322         help
323           Say Y here to enable the DSI2EDP TI SN65DSI86 adapter.
324
325 config TEGRA_DP
326         bool "Enable eDP panel."
327         default  n
328         help
329           Say Y here to enable eDP panel.
330
331 config TEGRA_LVDS
332         bool "Enable LVDS panel."
333         default  n
334         help
335           Say Y here to enable LVDS panel.
336
337 config NVMAP_CONVERT_CARVEOUT_TO_IOVMM
338         bool "Convert carveout to IOVMM"
339         depends on TEGRA_NVMAP && IOMMU_API
340         default y
341         help
342           Say Y here to force to convert carveout memory requests to
343           I/O virtual memory requests.
344
345 config NVMAP_HANDLE_MARSHAL
346         bool "Marshal nvmap handle id"
347         depends on TEGRA_NVMAP
348         help
349           Enables nvmap handle id marshalling. Marshalling converts
350           the nvmap handle id into an unique number before passing
351           the handle id to user/kernel clients. The marshalling
352           would allow sharing a 64-bit handle id as 32-bit id to
353           user space when kernel is 64-bit and user space is 32-bit.
354
355 config TEGRA_NVHDCP
356         bool "Support NVHDCP content protection on HDMI"
357         default n
358         help
359           Say Y here to support NVHDCP upstream and downstream protocols, this
360           requires a correctly fused chip to negotiate keys.
361
362 config TEGRA_HDMI_74MHZ_LIMIT
363         bool "Support only up to 74.25 MHz HDMI pixel frequency"
364         default n
365         help
366           Say Y here to make kernel report only low bandwidth modes.
367           Useful only for boards which can't deliver 148.50 MHz.
368
369 endif
370
371 config TEGRA_CAMERA
372         bool "Enable support for tegra camera/isp hardware"
373         depends on ARCH_TEGRA
374         default y
375         help
376           Enables support for the Tegra camera interface
377
378           If unsure, say Y
379
380 source "drivers/video/tegra/host/gk20a/Kconfig"