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