summaryrefslogtreecommitdiff
path: root/drivers/video/tegra/Kconfig
blob: 8721fdf76759cfe30eb82458fd8dfe246c0fc16d (plain)
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
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
if ARCH_TEGRA

comment "NVIDIA Tegra Display Driver options"

config TEGRA_GRHOST
	tristate "Tegra graphics host driver"
	help
	  Driver for the Tegra graphics host hardware.

config TEGRA_GRHOST_VI
	tristate "Tegra video input host1x client driver"
	default y if TEGRA_GRHOST
	help
	  Driver for the Tegra video input hardware.
	  To compile this driver as a module, choose M here:
	  the  module will be called nvhost-vi.

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 "Use 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_GRHOST_SYNC
	depends on TEGRA_GRHOST
	bool "Tegra host synchronization objects"
	default y
	select SYNC
	help
	  Add tegra host backend for the cross driver synchronization framework.
	  Allows creating sync fence file descriptors from Tegra host syncpoints.

config TEGRA_DC
	tristate "Tegra Display Contoller"
	depends on ARCH_TEGRA && TEGRA_GRHOST && I2C
	select BACKLIGHT_CLASS_DEVICE
	select FB_MODE_HELPERS
	help
	  Tegra display controller support.

config TEGRA_DC_CMU
	bool
	default n if ARCH_TEGRA_2x_SOC || ARCH_TEGRA_3x_SOC
	default y

config TEGRA_DC_WIN_H
    bool
    default y if ARCH_TEGRA_14x_SOC
    default n

config TEGRA_MIPI_CAL
	bool
	default n if ARCH_TEGRA_2x_SOC || ARCH_TEGRA_3x_SOC
	default y

config TEGRA_DC_SCAN_COLUMN
	bool
	default y if ARCH_TEGRA_11x_SOC || ARCH_TEGRA_12x_SOC
	default n

config TEGRA_DC_BLENDER_GEN2
    bool
    default n if ARCH_TEGRA_2x_SOC || ARCH_TEGRA_3x_SOC || ARCH_TEGRA_11x_SOC || ARCH_TEGRA_14x_SOC
    default y

config TEGRA_DC_BLENDER_DEPTH
    bool
    default y if ARCH_TEGRA_12x_SOC
    default n

config TEGRA_DC_BLOCK_LINEAR
    bool
    default y if ARCH_TEGRA_12x_SOC
    default n

config TEGRA_DC_INTERLACE
	bool
	default y if ARCH_TEGRA_12x_SOC
	default n

config TEGRA_DC_64BIT_SUPPORT
	bool
	default n
	help
		T12x LPAE support in dc driver

config TEGRA_DC_LOW_LATENCY_CURSOR
	bool
	default y if ARCH_TEGRA_12x_SOC
	default n

config TEGRA_DC_CLOCK_GEN2
    bool
    default y if ARCH_TEGRA_12x_SOC
    default n
    help
        T12x redefined pll usages for pll_d and pll_d2.

config TEGRA_SD_GEN2
	bool
	default n if ARCH_TEGRA_2x_SOC || ARCH_TEGRA_3x_SOC
	default y

config TEGRA_DC_TEMPORAL_DITHER
	bool
	default n if ARCH_TEGRA_2x_SOC || ARCH_TEGRA_3x_SOC || ARCH_TEGRA_11x_SOC
	default y

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
	  controller to userspace drivers.

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 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
	help
	  Say Y here to enable LVDS panel.

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_NVHDCP
	bool "Support NVHDCP content protection on HDMI"
	default n
	help
	  Say Y here to support NVHDCP upstream and downstream protocols, this
	  requires a correctly fused chip to negotiate keys.

config TEGRA_HDMI_74MHZ_LIMIT
	bool "Support only up to 74.25 MHz HDMI pixel frequency"
	default n
	help
	  Say Y here to make kernel report only low bandwidth modes.
	  Useful only for boards which can't deliver 148.50 MHz.

endif

config TEGRA_CAMERA
	bool "Enable support for tegra camera/isp hardware"
	depends on ARCH_TEGRA
	default y
	help
	  Enables support for the Tegra camera interface

	  If unsure, say Y

source "drivers/video/tegra/host/gk20a/Kconfig"