menu "Android"

config ANDROID
	bool "Android Drivers"
	default N
	---help---
	  Enable support for various drivers needed on the Android platform

if ANDROID

config ANDROID_BINDER_IPC
	bool "Android Binder IPC Driver"
	default n

config ANDROID_BINDER_IPC_32BIT
	bool "Use old 32-bit binder api"
	depends on !64BIT
	---help---
	  Enable to support an old 32-bit Android user-space. Breaks the new
	  Android user-space.

config ANDROID_BINDER_DEVICES
	string "Android Binder devices"
	depends on ANDROID_BINDER_IPC
	default "binder,hwbinder,vndbinder"
	---help---
	  Default value for the binder.devices parameter.

	  The binder.devices parameter is a comma-separated list of strings
	  that specifies the names of the binder device nodes that will be
	  created. Each binder device has its own context manager, and is
	  therefore logically separated from the other devices.

config ASHMEM
	bool "Enable the Anonymous Shared Memory Subsystem"
	default n
	depends on SHMEM || TINY_SHMEM
	help
	  The ashmem subsystem is a new shared memory allocator, similar to
	  POSIX SHM but with different behavior and sporting a simpler
	  file-based API.

	  It is, in theory, a good memory allocator for low-memory devices,
	  because it can discard shared memory units when under memory pressure.

config ANDROID_PERSISTENT_RAM
	bool
	depends on HAVE_MEMBLOCK
	select REED_SOLOMON
	select REED_SOLOMON_ENC8
	select REED_SOLOMON_DEC8

config ANDROID_RAM_CONSOLE
	bool "Android RAM buffer console"
	depends on !S390 && !UML && HAVE_MEMBLOCK
	select ANDROID_PERSISTENT_RAM
	default n

config ANDROID_RAM_CONSOLE_ENABLE_VERBOSE
	bool "Enable verbose console messages on Android RAM console"
	default y
	depends on ANDROID_RAM_CONSOLE

menuconfig ANDROID_RAM_CONSOLE_ERROR_CORRECTION
	bool "Android RAM Console Enable error correction"
	default n
	depends on ANDROID_RAM_CONSOLE
	depends on !ANDROID_RAM_CONSOLE_EARLY_INIT
	select REED_SOLOMON
	select REED_SOLOMON_ENC8
	select REED_SOLOMON_DEC8

if ANDROID_RAM_CONSOLE_ERROR_CORRECTION

config ANDROID_RAM_CONSOLE_ERROR_CORRECTION_DATA_SIZE
	int "Android RAM Console Data data size"
	default 128
	help
	  Must be a power of 2.

config ANDROID_RAM_CONSOLE_ERROR_CORRECTION_ECC_SIZE
	int "Android RAM Console ECC size"
	default 16

config ANDROID_RAM_CONSOLE_ERROR_CORRECTION_SYMBOL_SIZE
	int "Android RAM Console Symbol size"
	default 8

config ANDROID_RAM_CONSOLE_ERROR_CORRECTION_POLYNOMIAL
	hex "Android RAM Console Polynomial"
	default 0x19 if (ANDROID_RAM_CONSOLE_ERROR_CORRECTION_SYMBOL_SIZE = 4)
	default 0x29 if (ANDROID_RAM_CONSOLE_ERROR_CORRECTION_SYMBOL_SIZE = 5)
	default 0x61 if (ANDROID_RAM_CONSOLE_ERROR_CORRECTION_SYMBOL_SIZE = 6)
	default 0x89 if (ANDROID_RAM_CONSOLE_ERROR_CORRECTION_SYMBOL_SIZE = 7)
	default 0x11d if (ANDROID_RAM_CONSOLE_ERROR_CORRECTION_SYMBOL_SIZE = 8)

endif # ANDROID_RAM_CONSOLE_ERROR_CORRECTION

config ANDROID_RAM_CONSOLE_EARLY_INIT
	bool "Start Android RAM console early"
	default n
	depends on ANDROID_RAM_CONSOLE

config ANDROID_RAM_CONSOLE_EARLY_ADDR
	hex "Android RAM console virtual address"
	default 0
	depends on ANDROID_RAM_CONSOLE_EARLY_INIT

config ANDROID_RAM_CONSOLE_EARLY_SIZE
	hex "Android RAM console buffer size"
	default 0
	depends on ANDROID_RAM_CONSOLE_EARLY_INIT

config PERSISTENT_TRACER
	bool "Persistent function tracer"
	depends on HAVE_FUNCTION_TRACER
	select FUNCTION_TRACER
	select ANDROID_PERSISTENT_RAM
	help
	  persistent_trace traces function calls into a persistent ram
	  buffer that can be decoded and dumped after reboot through
	  /sys/kernel/debug/persistent_trace.  It can be used to
	  determine what function was last called before a reset or
	  panic.

	  If unsure, say N.

config ANDROID_TIMED_OUTPUT
	bool "Timed output class driver"
	default y

config ANDROID_TIMED_GPIO
	tristate "Android timed gpio driver"
	depends on GENERIC_GPIO && ANDROID_TIMED_OUTPUT
	default n

config ANDROID_LOW_MEMORY_KILLER
	bool "Android Low Memory Killer"
	default N
	---help---
	  Register processes to be killed when memory is low

config ANDROID_LOW_MEMORY_KILLER_AUTODETECT_OOM_ADJ_VALUES
	bool "Android Low Memory Killer: detect oom_adj values"
	depends on ANDROID_LOW_MEMORY_KILLER
	default y
	---help---
	  Detect oom_adj values written to
	  /sys/module/lowmemorykiller/parameters/adj and convert them
	  to oom_score_adj values.

source "drivers/staging/android/switch/Kconfig"

endif # if ANDROID

endmenu
