0ba99181b6788d3c76db12cee206ebd04bf66380
[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_USE_NVMAP
11         bool "Use nvmap as graphics memory manager"
12         default y
13         help
14           Use nvmap as the graphics memory manager. This is the only
15           choice at the moment.
16
17 config TEGRA_GRHOST_DEFAULT_TIMEOUT
18         depends on TEGRA_GRHOST
19         int "Default timeout for submits"
20         default 0 if TEGRA_SIMULATION_PLATFORM
21         default 30000
22         help
23           Default timeout for jobs in milliseconds. Set to zero for no timeout.
24
25 config TEGRA_DC
26         tristate "Tegra Display Contoller"
27         depends on ARCH_TEGRA && TEGRA_GRHOST
28         select FB_MODE_HELPERS
29         select I2C
30         help
31           Tegra display controller support.
32
33 config TEGRA_DC_CMU
34     bool
35     default n if ARCH_TEGRA_2x_SOC || ARCH_TEGRA_3x_SOC
36     default y
37
38 config TEGRA_SD_GEN2
39     bool
40     default n if ARCH_TEGRA_2x_SOC || ARCH_TEGRA_3x_SOC
41     default y
42
43 config FB_TEGRA
44         tristate "Tegra Framebuffer driver"
45         depends on TEGRA_DC && FB = y
46         select FB_CFB_FILLRECT
47         select FB_CFB_COPYAREA
48         select FB_CFB_IMAGEBLIT
49         default FB
50         help
51           Framebuffer device support for the Tegra display controller.
52
53 config TEGRA_DC_EXTENSIONS
54         bool "Tegra Display Controller Extensions"
55         depends on TEGRA_DC
56         default y
57         help
58           This exposes support for extended capabilities of the Tegra display
59           controller to userspace drivers.
60
61 config TEGRA_NVMAP
62         bool "Tegra GPU memory management driver (nvmap)"
63         select ARM_DMA_USE_IOMMU if IOMMU_API
64         default y
65         help
66           Say Y here to include the memory management driver for the Tegra
67           GPU, multimedia and display subsystems
68
69 config NVMAP_RECLAIM_UNPINNED_VM
70         bool "Virtualize IOVMM memory in nvmap"
71         depends on TEGRA_NVMAP && (TEGRA_IOVMM || IOMMU_API)
72         default y
73         help
74           Say Y here to enable nvmap to reclaim I/O virtual memory after
75           it has been unpinned, and re-use it for other handles. This can
76           allow a larger virtual I/O VM space than would normally be
77           supported by the hardware, at a slight cost in performance.
78
79 config NVMAP_ALLOW_SYSMEM
80         bool "Allow physical system memory to be used by nvmap"
81         depends on TEGRA_NVMAP
82         default n
83         help
84           Say Y here to allow nvmap to use physical system memory (i.e.,
85           shared with the operating system but not translated through
86           an IOVMM device) for allocations.
87
88 config NVMAP_HIGHMEM_ONLY
89         bool "Use only HIGHMEM for nvmap"
90         depends on TEGRA_NVMAP && (NVMAP_ALLOW_SYSMEM || TEGRA_IOVMM || IOMMU_API) && HIGHMEM
91         default n
92         help
93           Say Y here to restrict nvmap system memory allocations (both
94           physical system memory and IOVMM) to just HIGHMEM pages.
95
96 config NVMAP_CARVEOUT_KILLER
97         bool "Reclaim nvmap carveout by killing processes"
98         depends on TEGRA_NVMAP
99         default n
100         help
101           Say Y here to allow the system to reclaim carveout space by killing
102           processes. This will kill the largest consumers of lowest priority
103           first.
104
105 config NVMAP_CARVEOUT_COMPACTOR
106         bool "Compact carveout when it gets fragmented"
107         depends on TEGRA_NVMAP
108         default y
109         help
110           When carveout allocation attempt fails, compactor defragements
111           heap and retries the failed allocation.
112           Say Y here to let nvmap to keep carveout fragmentation under control.
113
114 config NVMAP_PAGE_POOLS
115         bool "Use page pools to reduce allocation overhead"
116         depends on TEGRA_NVMAP
117         default y
118         help
119           say Y here to reduce the alloction overhead, which is significant
120           for uncached, writecombine and inner cacheable memories as it
121           involves changing page attributes during every allocation per page
122           and flushing cache. Alloc time is reduced by allcoating the pages
123           ahead and keeping them aside. The reserved pages would be released
124           when system is low on memory and acquired back during release of
125           memory.
126
127 config NVMAP_PAGE_POOLS_INIT_FILLUP
128         bool "Fill up page pools during page pools init"
129         depends on NVMAP_PAGE_POOLS
130         default y
131         help
132           Say Y here to fill up the page pools during page pool init time.
133           This helps in faster alloctions right from the early alloction
134           requests. Page pools fill up during init would increase the boot time.
135           If increase in boot time is not acceptable, keep this option disabled.
136
137 config NVMAP_PAGE_POOL_SIZE
138         hex
139         default 0x0
140
141 config NVMAP_CACHE_MAINT_BY_SET_WAYS
142         bool "Enable cache maintenance by set/ways"
143         depends on TEGRA_NVMAP
144         help
145          Say Y here to reduce cache maintenance overhead by MVA.
146          This helps in reducing cache maintenance overhead in the systems,
147          where inner cache includes only L1. For the systems, where inner cache
148          includes L1 and L2, keep this option disabled.
149
150 config NVMAP_OUTER_CACHE_MAINT_BY_SET_WAYS
151         bool "Enable outer cache maintenance by set/ways"
152         depends on TEGRA_NVMAP
153         help
154           Say Y here if you want to optimize cache maintenance for ranges
155           bigger than size of outer cache. This option has no effect on
156           system without outer cache.
157
158 config NVMAP_VPR
159         bool "Enable VPR Heap."
160         depends on TEGRA_NVMAP
161         default n
162         help
163           Say Y here to enable Video Protection Region(VPR) heap.
164           if unsure, say N.
165
166 config NVMAP_FORCE_ZEROED_USER_PAGES
167         bool "Only alloc zeroed pages for user space"
168         depends on TEGRA_NVMAP
169         help
170           Say Y here to force zeroing of pages allocated for user space. This
171           avoids leaking kernel secure data to user space. This can add
172           significant overhead to allocation operations depending on the
173           allocation size requested.
174
175 config TEGRA_DSI
176         bool "Enable DSI panel."
177         default n
178         help
179           Say Y here to enable the DSI panel.
180
181 config NVMAP_CONVERT_CARVEOUT_TO_IOVMM
182         bool "Convert carveout to IOVMM"
183         depends on TEGRA_NVMAP &&  (TEGRA_IOVMM_SMMU || IOMMU_API)
184         default y
185         help
186           Say Y here to force to convert carveout memory requests to
187           I/O virtual memory requests.
188
189 config TEGRA_NVHDCP
190         bool "Support NVHDCP content protection on HDMI"
191         default n
192         help
193           Say Y here to support NVHDCP upstream and downstream protocols, this
194           requires a correctly fused chip to negotiate keys.
195
196 config TEGRA_HDMI_74MHZ_LIMIT
197         bool "Support only up to 74.25 MHz HDMI pixel frequency"
198         default n
199         help
200           Say Y here to make kernel report only low bandwidth modes.
201           Useful only for boards which can't deliver 148.50 MHz.
202
203 endif
204