• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1config GKI_HIDDEN_DRM_CONFIGS
2	bool "Hidden DRM configs needed for GKI"
3	select DRM_KMS_HELPER if (HAS_IOMEM && DRM)
4	select DRM_GEM_SHMEM_HELPER if (DRM)
5	select DRM_MIPI_DSI
6	select DRM_TTM if (HAS_IOMEM && DRM)
7	select VIDEOMODE_HELPERS
8	select WANT_DEV_COREDUMP
9	select INTERVAL_TREE
10	help
11	  Dummy config option used to enable hidden DRM configs.
12	  These are normally selected implicitly when including a
13	  DRM module, but for GKI, the modules are built out-of-tree.
14
15config GKI_HIDDEN_MCP251XFD_CONFIGS
16        bool "Hidden MCP251XFD configs needed for GKI"
17        select CAN_RX_OFFLOAD
18        help
19          Dummy config option used to enable hidden MCP251XFD configs.
20          These are normally selected implicitly when including a
21          MCP251XFD module, but for GKI, the modules are built out-of-tree.
22
23config GKI_HIDDEN_REGMAP_CONFIGS
24	bool "Hidden Regmap configs needed for GKI"
25	select REGMAP_IRQ
26	select REGMAP_MMIO
27	select REGMAP_SPMI
28	select SPMI
29	help
30	  Dummy config option used to enable hidden regmap configs.
31	  These are normally selected implicitly when a module
32	  that relies on it is configured.
33
34config GKI_HIDDEN_CRYPTO_CONFIGS
35	bool "Hidden CRYPTO configs needed for GKI"
36	select CRYPTO_ENGINE
37	help
38	  Dummy config option used to enable hidden CRYPTO configs.
39	  These are normally selected implicitly when a module
40	  that relies on it is configured.
41
42config GKI_HIDDEN_SND_CONFIGS
43	bool "Hidden SND configs needed for GKI"
44	select SND_COMPRESS_ACCEL
45	select SND_VMASTER
46	select SND_PCM_ELD
47	select SND_JACK
48	select SND_JACK_INPUT_DEV
49	select SND_INTEL_NHLT if (ACPI)
50	help
51	  Dummy config option used to enable hidden SND configs.
52	  These are normally selected implicitly when a module
53	  that relies on it is configured.
54
55config GKI_HIDDEN_SND_SOC_CONFIGS
56	bool "Hidden SND_SOC configs needed for GKI"
57	select SND_SOC_GENERIC_DMAENGINE_PCM if (SND_SOC && SND)
58	select SND_PCM_IEC958
59	select SND_SOC_COMPRESS if (SND_SOC && SND)
60	select SND_SOC_TOPOLOGY if (SND_SOC && SND)
61	select DMADEVICES
62	select DMA_VIRTUAL_CHANNELS
63	help
64	  Dummy config option used to enable hidden SND_SOC configs.
65	  These are normally selected implicitly when a module
66	  that relies on it is configured.
67
68config GKI_HIDDEN_UFS_CONFIGS
69	bool "Hidden UFS configs needed for GKI"
70	select SCSI_UFS_VARIABLE_SG_ENTRY_SIZE if SCSI_UFS_CRYPTO
71	help
72	  Dummy config option used to enable hidden UFS configs.
73	  These are normally selected implicitly when a module
74	  that relies on it is configured.
75
76config GKI_HIDDEN_MMC_CONFIGS
77	bool "Hidden MMC configs needed for GKI"
78	select MMC_SDHCI_IO_ACCESSORS if (MMC_SDHCI)
79	help
80	  Dummy config option used to enable hidden MMC configs.
81	  These are normally selected implicitly when a module
82	  that relies on it is configured.
83
84config GKI_HIDDEN_GPIO_CONFIGS
85	bool "Hidden GPIO configs needed for GKI"
86	select PINCTRL_SINGLE if (PINCTRL && OF && HAS_IOMEM)
87	select GPIO_PL061 if (HAS_IOMEM && ARM_AMBA && GPIOLIB)
88	help
89	  Dummy config option used to enable hidden GPIO configs.
90	  These are normally selected implicitly when a module
91	  that relies on it is configured.
92
93# If this file is included on a 32-bit allmodconfig build, the select for
94# IOMMU_IO_PGTABLE_LPAE will trigger an "unmet direct dependency" warning
95# because this option is incompatible with GENERIC_ATOMIC64, which is
96# required by CPU_V6 and implied by ARCH_BCM2835. ARCH_BCM2835 is enabled
97# in the ARM defconfig (multi_v7_defconfig) and implied by many BCM2835
98# drivers, so it is lower impact to disable IOMMU_IO_PGTABLE_LPAE here
99config GKI_HIDDEN_QCOM_CONFIGS
100	bool "Hidden QCOM configs needed for GKI"
101	select QCOM_SMEM_STATE
102	select QCOM_GDSC if (ARCH_QCOM)
103	select IOMMU_IO_PGTABLE_LPAE if (ARCH_QCOM && 64BIT)
104	select INTERCONNECT_QCOM if (ARCH_QCOM)
105	select AUXILIARY_BUS if (ARCH_QCOM)
106
107	help
108	  Dummy config option used to enable hidden QCOM configs.
109	  These are normally selected implicitly when a module
110	  that relies on it is configured.
111
112config GKI_HIDDEN_MTK_CONFIGS
113	bool "Hidden MTK configs needed for GKI"
114	select MTK_TIMER
115	help
116	  This dummy config option is used to enable hidden MediaTek (MTK)
117	  configs required for GKI. Specifically, it selects MTK_TIMER.
118	  These configurations are normally selected implicitly when an
119	  in-tree module or driver that depends on them is enabled.
120	  However, for GKI, modules are often built out-of-tree, meaning
121	  these implicit selections do not occur, necessitating this option.
122
123config GKI_HIDDEN_MEDIA_CONFIGS
124	bool "Hidden Media configs needed for GKI"
125	select VIDEOBUF2_CORE
126	select V4L2_MEM2MEM_DEV
127	select MEDIA_CONTROLLER
128	select MEDIA_CONTROLLER_REQUEST_API
129	select MEDIA_SUPPORT
130	select FRAME_VECTOR
131	select CEC_CORE
132	select CEC_NOTIFIER
133	select CEC_PIN
134	select VIDEOBUF2_DMA_CONTIG
135	select VIDEOBUF2_DMA_SG
136	select VIDEO_V4L2_SUBDEV_API
137	help
138	  Dummy config option used to enable hidden media configs.
139	  These are normally selected implicitly when a module
140	  that relies on it is configured.
141
142config GKI_HIDDEN_VIRTUAL_CONFIGS
143	bool "Hidden Virtual configs needed for GKI"
144	select HVC_DRIVER
145	select DIMLIB
146	help
147	  Dummy config option used to enable hidden virtual device configs.
148	  These are normally selected implicitly when a module
149	  that relies on it is configured.
150
151# LEGACY_WEXT_ALLCONFIG Discussed upstream, soundly rejected as a unique
152# problem for GKI to solve.  It should be noted that these extensions are
153# in-effect deprecated and generally unsupported and we should pressure
154# the SOC vendors to drop any modules that require these extensions.
155config GKI_LEGACY_WEXT_ALLCONFIG
156	bool "Hidden wireless extension configs needed for GKI"
157	select WIRELESS_EXT
158	select WEXT_CORE
159	select WEXT_PROC
160	select WEXT_SPY
161	select WEXT_PRIV
162	help
163	  Dummy config option used to enable all the hidden legacy wireless
164	  extensions to the core wireless network functionality used by
165	  add-in modules.
166
167	  If you are not building a kernel to be used for a variety of
168	  out-of-kernel built wireless modules, say N here.
169
170config GKI_HIDDEN_USB_CONFIGS
171	bool "Hidden USB configurations needed for GKI"
172	select USB_PHY
173	help
174	  Dummy config option used to enable all USB related hidden configs.
175	  These configurations are usually only selected by another config
176	  option or a combination of them.
177
178	  If you are not building a kernel to be used for a variety of
179	  out-of-kernel build USB drivers, say N here.
180
181config GKI_HIDDEN_SOC_BUS_CONFIGS
182	bool "Hidden SoC bus configuration needed for GKI"
183	select SOC_BUS
184	  help
185	    Dummy config option used to enable SOC_BUS hidden Kconfig.
186	    The configuration is required for SoCs to register themselves to the bus.
187
188	    If you are not building a kernel to be used for a variety of SoCs and
189	    out-of-tree drivers, say N here.
190
191config GKI_HIDDEN_RPMSG_CONFIGS
192	bool "Hidden RPMSG configuration needed for GKI"
193	select RPMSG
194	help
195	  Dummy config option used to enable the hidden RPMSG config.
196	  This configuration is usually only selected by another config
197	  option or a combination of them.
198
199	  If you are not building a kernel to be used for a variety of
200	  out-of-kernel build RPMSG drivers, say N here.
201
202config GKI_HIDDEN_GPU_CONFIGS
203	bool "Hidden GPU configuration needed for GKI"
204	select TRACE_GPU_MEM
205	help
206	  Dummy config option used to enable the hidden GPU config.
207	  These are normally selected implicitly when a module
208	  that relies on it is configured.
209
210config GKI_HIDDEN_IRQ_CONFIGS
211	bool "Hidden IRQ configuration needed for GKI"
212	select GENERIC_IRQ_CHIP
213	select IRQ_DOMAIN_HIERARCHY
214	select IRQ_FASTEOI_HIERARCHY_HANDLERS
215	help
216	  Dummy config option used to enable GENERIC_IRQ_CHIP hidden
217	  config, required by various SoC platforms. This is usually
218	  selected by ARCH_*.
219
220config GKI_HIDDEN_HYPERVISOR_CONFIGS
221	bool "Hidden hypervisor configuration needed for GKI"
222	select SYS_HYPERVISOR
223	help
224	  Dummy config option used to enable the SYS_HYPERVISOR hidden
225	  config, required by various SoC platforms. This is usually
226	  selected by XEN or S390.
227
228config GKI_HIDDEN_NET_CONFIGS
229	bool "Hidden networking configuration needed for GKI"
230	select PAGE_POOL
231	select NET_PTP_CLASSIFY
232	select NET_DEVLINK
233	help
234	  Dummy config option used to enable the networking hidden
235	  config, required by various SoC platforms.
236
237config GKI_HIDDEN_PHY_CONFIGS
238	bool "Hidden PHY configuration needed for GKI"
239	select GENERIC_PHY_MIPI_DPHY
240	help
241	  Dummy config option used to enable the hidden PHY configs,
242	  required by various SoC platforms.
243
244config GKI_HIDDEN_MM_CONFIGS
245	bool "Hidden MM configuration needed for GKI"
246	select PAGE_REPORTING
247	select BALLOON_COMPACTION
248	select MEMORY_BALLOON
249	help
250	  Dummy config option used to enable hidden MM configs,
251	  currently required for VIRTIO_BALLOON
252
253config GKI_HIDDEN_ETHERNET_CONFIGS
254	bool "Hidden Ethernet configuration needed for GKI"
255	select PHYLINK
256	help
257	  Dummy config option used to enable the hidden Ethernet PHYLINK
258	  configs, required by various ethernet devices.
259
260config GKI_HIDDEN_DMA_CONFIGS
261	bool "Hidden DMA configuration needed for GKI"
262	select ASYNC_TX_ENABLE_CHANNEL_SWITCH
263	select DMA_ENGINE_RAID
264	help
265	  Dummy config option used to enable the hidden DMA configs,
266	  required by various SoC platforms.
267
268config GKI_DYNAMIC_TASK_STRUCT_SIZE
269	bool "Dynamic task_struct size needed for GKI"
270	select ARCH_WANTS_DYNAMIC_TASK_STRUCT
271	help
272	  Avoid static allocation of memory for vendor data in task_struct.
273
274config GKI_TASK_STRUCT_VENDOR_SIZE_MAX
275	int "Max vendor data size in bytes"
276	default 512
277	depends on GKI_DYNAMIC_TASK_STRUCT_SIZE
278	help
279	  Allows vendor to choose the maximum size which can be added to
280	  task_struct dynamically when the GKI_DYNAMIC_TASK_STRUCT_SIZE
281	  option is enabled.
282
283config GKI_NET_XFRM_HACKS
284	bool "XFRM changes required by Android"
285	help
286	  Android Networking tests fail without this.
287
288# Atrocities needed for
289# a) building GKI modules in separate tree, or
290# b) building drivers that are not modularizable
291#
292# All of these should be reworked into an upstream solution
293# if possible.
294#
295config GKI_HACKS_TO_FIX
296	bool "GKI Dummy config options"
297	select GKI_NET_XFRM_HACKS
298	select GKI_HIDDEN_CRYPTO_CONFIGS
299	select GKI_HIDDEN_DRM_CONFIGS
300	select GKI_HIDDEN_MCP251XFD_CONFIGS
301	select GKI_HIDDEN_REGMAP_CONFIGS
302	select GKI_HIDDEN_SND_CONFIGS
303	select GKI_HIDDEN_SND_SOC_CONFIGS
304	select GKI_HIDDEN_UFS_CONFIGS
305	select GKI_HIDDEN_MMC_CONFIGS
306	select GKI_HIDDEN_GPIO_CONFIGS
307	select GKI_HIDDEN_QCOM_CONFIGS
308	select GKI_HIDDEN_MTK_CONFIGS if (ARM64)
309	select GKI_LEGACY_WEXT_ALLCONFIG
310	select GKI_HIDDEN_MEDIA_CONFIGS
311	select GKI_HIDDEN_VIRTUAL_CONFIGS
312	select GKI_HIDDEN_USB_CONFIGS
313	select GKI_HIDDEN_SOC_BUS_CONFIGS
314	select GKI_HIDDEN_RPMSG_CONFIGS
315	select GKI_HIDDEN_GPU_CONFIGS
316	select GKI_HIDDEN_IRQ_CONFIGS
317	select GKI_HIDDEN_HYPERVISOR_CONFIGS
318	select GKI_HIDDEN_NET_CONFIGS
319	select GKI_HIDDEN_PHY_CONFIGS
320	select GKI_HIDDEN_MM_CONFIGS
321	select GKI_HIDDEN_ETHERNET_CONFIGS
322	select GKI_HIDDEN_DMA_CONFIGS
323	select GKI_DYNAMIC_TASK_STRUCT_SIZE
324
325	help
326	  Dummy config option used to enable core functionality used by
327	  modules that may not be selectable in this config.
328
329	  Unless you are building a GKI kernel to be used with modules
330	  built from a different config, say N here.
331