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 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.

config ANDROID_LOGGER
	tristate "Android log driver"
	default n

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"

config ANDROID_INTF_ALARM_DEV
	bool "Android alarm driver"
	depends on RTC_CLASS
	default n
	help
	  Provides non-wakeup and rtc backed wakeup alarms based on rtc or
	  elapsed realtime, and a non-wakeup alarm on the monotonic clock.
	  Also exports the alarm interface to user-space.

endif # if ANDROID

endmenu
