diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/android.txt | 121 | ||||
-rw-r--r-- | Documentation/cgroups/cgroups.txt | 9 | ||||
-rw-r--r-- | Documentation/cgroups/cpuacct.txt | 7 | ||||
-rw-r--r-- | Documentation/cpu-freq/governors.txt | 38 | ||||
-rw-r--r-- | Documentation/device-mapper/dm-crypt.txt | 7 | ||||
-rw-r--r-- | Documentation/power/runtime_pm.txt | 1 | ||||
-rw-r--r-- | Documentation/trace/tracedump.txt | 58 | ||||
-rw-r--r-- | Documentation/trace/tracelevel.txt | 42 | ||||
-rw-r--r-- | Documentation/video/tegra_dc_ext.txt | 83 |
9 files changed, 360 insertions, 6 deletions
diff --git a/Documentation/android.txt b/Documentation/android.txt new file mode 100644 index 000000000000..72a62afdf202 --- /dev/null +++ b/Documentation/android.txt @@ -0,0 +1,121 @@ + ============= + A N D R O I D + ============= + +Copyright (C) 2009 Google, Inc. +Written by Mike Chan <mike@android.com> + +CONTENTS: +--------- + +1. Android + 1.1 Required enabled config options + 1.2 Required disabled config options + 1.3 Recommended enabled config options +2. Contact + + +1. Android +========== + +Android (www.android.com) is an open source operating system for mobile devices. +This document describes configurations needed to run the Android framework on +top of the Linux kernel. + +To see a working defconfig look at msm_defconfig or goldfish_defconfig +which can be found at http://android.git.kernel.org in kernel/common.git +and kernel/msm.git + + +1.1 Required enabled config options +----------------------------------- +After building a standard defconfig, ensure that these options are enabled in +your .config or defconfig if they are not already. Based off the msm_defconfig. +You should keep the rest of the default options enabled in the defconfig +unless you know what you are doing. + +ANDROID_PARANOID_NETWORK +ASHMEM +CONFIG_FB_MODE_HELPERS +CONFIG_FONT_8x16 +CONFIG_FONT_8x8 +CONFIG_YAFFS_SHORT_NAMES_IN_RAM +DAB +EARLYSUSPEND +FB +FB_CFB_COPYAREA +FB_CFB_FILLRECT +FB_CFB_IMAGEBLIT +FB_DEFERRED_IO +FB_TILEBLITTING +HIGH_RES_TIMERS +INOTIFY +INOTIFY_USER +INPUT_EVDEV +INPUT_GPIO +INPUT_MISC +LEDS_CLASS +LEDS_GPIO +LOCK_KERNEL +LkOGGER +LOW_MEMORY_KILLER +MISC_DEVICES +NEW_LEDS +NO_HZ +POWER_SUPPLY +PREEMPT +RAMFS +RTC_CLASS +RTC_LIB +SWITCH +SWITCH_GPIO +TMPFS +UID_STAT +UID16 +USB_FUNCTION +USB_FUNCTION_ADB +USER_WAKELOCK +VIDEO_OUTPUT_CONTROL +WAKELOCK +YAFFS_AUTO_YAFFS2 +YAFFS_FS +YAFFS_YAFFS1 +YAFFS_YAFFS2 + + +1.2 Required disabled config options +------------------------------------ +CONFIG_YAFFS_DISABLE_LAZY_LOAD +DNOTIFY + + +1.3 Recommended enabled config options +------------------------------ +ANDROID_PMEM +ANDROID_RAM_CONSOLE +ANDROID_RAM_CONSOLE_ERROR_CORRECTION +SCHEDSTATS +DEBUG_PREEMPT +DEBUG_MUTEXES +DEBUG_SPINLOCK_SLEEP +DEBUG_INFO +FRAME_POINTER +CPU_FREQ +CPU_FREQ_TABLE +CPU_FREQ_DEFAULT_GOV_ONDEMAND +CPU_FREQ_GOV_ONDEMAND +CRC_CCITT +EMBEDDED +INPUT_TOUCHSCREEN +I2C +I2C_BOARDINFO +LOG_BUF_SHIFT=17 +SERIAL_CORE +SERIAL_CORE_CONSOLE + + +2. Contact +========== +website: http://android.git.kernel.org + +mailing-lists: android-kernel@googlegroups.com diff --git a/Documentation/cgroups/cgroups.txt b/Documentation/cgroups/cgroups.txt index cd67e90003c0..60d82e1e498d 100644 --- a/Documentation/cgroups/cgroups.txt +++ b/Documentation/cgroups/cgroups.txt @@ -593,6 +593,15 @@ there are not tasks in the cgroup. If pre_destroy() returns error code, rmdir() will fail with it. From this behavior, pre_destroy() can be called multiple times against a cgroup. +int allow_attach(struct cgroup *cgrp, struct task_struct *task) +(cgroup_mutex held by caller) + +Called prior to moving a task into a cgroup; if the subsystem +returns an error, this will abort the attach operation. Used +to extend the permission checks - if all subsystems in a cgroup +return 0, the attach will be allowed to proceed, even if the +default permission check (root or same user) fails. + int can_attach(struct cgroup_subsys *ss, struct cgroup *cgrp, struct task_struct *task) (cgroup_mutex held by caller) diff --git a/Documentation/cgroups/cpuacct.txt b/Documentation/cgroups/cpuacct.txt index 9d73cc0cadb9..e21a932059fb 100644 --- a/Documentation/cgroups/cpuacct.txt +++ b/Documentation/cgroups/cpuacct.txt @@ -39,6 +39,13 @@ system: Time spent by tasks of the cgroup in kernel mode. user and system are in USER_HZ unit. +cpuacct.cpufreq file gives CPU time (in nanoseconds) spent at each CPU +frequency. Platform hooks must be implemented inorder to properly track +time at each CPU frequency. + +cpuacct.power file gives CPU power consumed (in milliWatt seconds). Platform +must provide and implement power callback functions. + cpuacct controller uses percpu_counter interface to collect user and system times. This has two side effects: diff --git a/Documentation/cpu-freq/governors.txt b/Documentation/cpu-freq/governors.txt index e74d0a2eb1cf..51b1cd360c33 100644 --- a/Documentation/cpu-freq/governors.txt +++ b/Documentation/cpu-freq/governors.txt @@ -28,6 +28,7 @@ Contents: 2.3 Userspace 2.4 Ondemand 2.5 Conservative +2.6 Interactive 3. The Governor Interface in the CPUfreq Core @@ -193,6 +194,43 @@ governor but for the opposite direction. For example when set to its default value of '20' it means that if the CPU usage needs to be below 20% between samples to have the frequency decreased. + +2.6 Interactive +--------------- + +The CPUfreq governor "interactive" is designed for latency-sensitive, +interactive workloads. This governor sets the CPU speed depending on +usage, similar to "ondemand" and "conservative" governors. However, +the governor is more aggressive about scaling the CPU speed up in +response to CPU-intensive activity. + +Sampling the CPU load every X ms can lead to under-powering the CPU +for X ms, leading to dropped frames, stuttering UI, etc. Instead of +sampling the cpu at a specified rate, the interactive governor will +check whether to scale the cpu frequency up soon after coming out of +idle. When the cpu comes out of idle, a timer is configured to fire +within 1-2 ticks. If the cpu is very busy between exiting idle and +when the timer fires then we assume the cpu is underpowered and ramp +to MAX speed. + +If the cpu was not sufficiently busy to immediately ramp to MAX speed, +then governor evaluates the cpu load since the last speed adjustment, +choosing the highest value between that longer-term load or the +short-term load since idle exit to determine the cpu speed to ramp to. + +The tuneable values for this governor are: + +min_sample_time: The minimum amount of time to spend at the current +frequency before ramping down. This is to ensure that the governor has +seen enough historic cpu load data to determine the appropriate +workload. Default is 80000 uS. + +go_maxspeed_load: The CPU load at which to ramp to max speed. Default +is 85. + +timer_rate: Sample rate for reevaluating cpu load when the system is +not idle. Default is 30000 uS. + 3. The Governor Interface in the CPUfreq Core ============================================= diff --git a/Documentation/device-mapper/dm-crypt.txt b/Documentation/device-mapper/dm-crypt.txt index 2c656ae43ba7..573459b55518 100644 --- a/Documentation/device-mapper/dm-crypt.txt +++ b/Documentation/device-mapper/dm-crypt.txt @@ -9,7 +9,7 @@ Parameters: <cipher> <key> <iv_offset> <device path> \ <cipher> Encryption cipher and an optional IV generation mode. - (In format cipher[:keycount]-chainmode-ivopts:ivmode). + (In format cipher-chainmode-ivopts:ivmode). Examples: des aes-cbc-essiv:sha256 @@ -21,11 +21,6 @@ Parameters: <cipher> <key> <iv_offset> <device path> \ Key used for encryption. It is encoded as a hexadecimal number. You can only use key sizes that are valid for the selected cipher. -<keycount> - Multi-key compatibility mode. You can define <keycount> keys and - then sectors are encrypted according to their offsets (sector 0 uses key0; - sector 1 uses key1 etc.). <keycount> must be a power of two. - <iv_offset> The IV offset is a sector count that is added to the sector number before creating the IV. diff --git a/Documentation/power/runtime_pm.txt b/Documentation/power/runtime_pm.txt index d3710dc6d25f..b0ee95e99ff7 100644 --- a/Documentation/power/runtime_pm.txt +++ b/Documentation/power/runtime_pm.txt @@ -483,6 +483,7 @@ pm_runtime_resume() pm_runtime_get_sync() pm_runtime_put_sync() pm_runtime_put_sync_suspend() +pm_runtime_put_sync_autosuspend() 5. Runtime PM Initialization, Device Probing and Removal diff --git a/Documentation/trace/tracedump.txt b/Documentation/trace/tracedump.txt new file mode 100644 index 000000000000..cba0decc3fc3 --- /dev/null +++ b/Documentation/trace/tracedump.txt @@ -0,0 +1,58 @@ + Tracedump + + Documentation written by Alon Farchy + +1. Overview +============ + +The tracedump module provides additional mechanisms to retrieve tracing data. +It can be used to retrieve traces after a kernel panic or while the system +is running in either binary format or plaintext. The dumped data is compressed +with zlib to conserve space. + +2. Configuration Options +======================== + +CONFIG_TRACEDUMP - enable the tracedump module. +CONFIG_TRACEDUMP_PANIC - dump to console on kernel panic +CONFIG_TRACEDUMP_PROCFS - add file /proc/tracedump for userspace access. + +3. Module Parameters +==================== + +format_ascii + + If 1, data will dump in human-readable format, ordered by time. + If 0, data will be dumped as raw pages from the ring buffer, + ordered by CPU, followed by the saved cmdlines so that the + raw data can be decoded. Default: 0 + +panic_size + + Maximum amount of compressed data to dump during a kernel panic + in kilobytes. This only applies if format_ascii == 1. In this case, + tracedump will compress the data, check the size, and if it is too big + toss out some data, compress again, etc, until the size is below + panic_size. Default: 512KB + +compress_level + + Determines the compression level that zlib will use. Available levels + are 0-9, with 0 as no compression and 9 as maximum compression. + Default: 9. + +4. Usage +======== + +If configured with CONFIG_TRACEDUMP_PROCFS, the tracing data can be pulled +by reading from /proc/tracedump. For example: + + # cat /proc/tracedump > my_tracedump + +Tracedump will surround the dump with a magic word (TRACEDUMP). Between the +magic words is the compressed data, which can be decompressed with a standard +zlib implementation. After decompression, if format_ascii == 1, then the +output should be readable. + +If format_ascii == 0, the output should be in binary form, delimited by +CPU_END. After the last CPU should be the saved cmdlines, delimited by |. diff --git a/Documentation/trace/tracelevel.txt b/Documentation/trace/tracelevel.txt new file mode 100644 index 000000000000..b282dd2b329b --- /dev/null +++ b/Documentation/trace/tracelevel.txt @@ -0,0 +1,42 @@ + Tracelevel + + Documentation by Alon Farchy + +1. Overview +=========== + +Tracelevel allows subsystem authors to add trace priorities to +their tracing events. High priority traces will be enabled +automatically at boot time. + +This module is configured with CONFIG_TRACELEVEL. + +2. Usage +========= + +To give an event a priority, use the function tracelevel_register +at any time. + + tracelevel_register(my_event, level); + +my_event corresponds directly to the event name as defined in the +event header file. Available levels are: + + TRACELEVEL_ERR 3 + TRACELEVEL_WARN 2 + TRACELEVEL_INFO 1 + TRACELEVEL_DEBUG 0 + +Any event registered at boot time as TRACELEVEL_ERR will be enabled +by default. The header also exposes the function tracelevel_set_level +to change the trace level at runtime. Any trace event registered with the +specified level or higher will be enabled with this call. + +A userspace handle to tracelevel_set_level is available via the module +parameter 'level'. For example, + + echo 1 > /sys/module/tracelevel/parameters/level + +Is logically equivalent to: + + tracelevel_set_level(TRACELEVEL_INFO); diff --git a/Documentation/video/tegra_dc_ext.txt b/Documentation/video/tegra_dc_ext.txt new file mode 100644 index 000000000000..6fc3394c6652 --- /dev/null +++ b/Documentation/video/tegra_dc_ext.txt @@ -0,0 +1,83 @@ +The Tegra display controller (dc) driver has two frontends that implement +different interfaces: +1. The traditional fbdev interface, implemented in drivers/video/tegra/fb.c +2. A new interface that exposes the unique capabilities of the controller, + implemented in drivers/video/tegra/dc/ext + +The Tegra fbdev capabilities are documented in fb/tegrafb.c [TODO]. This +document will describe the new "extended" dc interface. + +The extended interface is only available when its frontend has been compiled +in, i.e., CONFIG_TEGRA_DC_EXTENSIONS=y. The dc_ext frontend can coexist with +tegrafb, but takes precedence (more on that later). + +The dc_ext frontend's interface to userspace is exposed through a set of +device nodes: one for each controller (generally /dev/tegra_dc_N), and one +"control" node (generally /dev/tegra_dc_ctrl). Communication through these +device nodes is done with special IOCTLs. There is also an event delivery +mechanism; userspace can wait for and receive events with read() or poll(). + +The tegra_dc_N interface is stateful; each fresh open() of the device node +creates a client instance. In order to prevent multiple processes from +"fighting" for the hardware, only one client instance is permitted to control +certain resources at a time, on a first-come, first-serve basis. + +Overview of tegra_dc_N IOCTLs: +SET_NVMAP_FD: This is used to associate your nvmap client with this dc_ext + client instance. This is necessary so that the kernel can + appropriately enforce permissions on nvmap buffers. + +GET_WINDOW: A dc_ext client must call this on each window that it wishes to + control. This strictly enforces a single dc_ext client on a + window at a time. + +PUT_WINDOW: A dc_ext client may call this to release a window previously + reserved with GET_WINDOW. + +FLIP: This ioctl is used to actually display an nvmap surface using one or + more window. Each time a dc_ext client performs a FLIP, the request is + put on a flip queue and executed asynchronously (the FLIP ioctl will + return immediately). Various parameters are available in the + tegra_dc_ext_flip structure. + A dc_ext client may only use this on windows that it has previously + reserved with a successful GET_WINDOW call. + +GET_CURSOR: This is analogous to GET_WINDOW, but for the hardware cursor + instead of a window. + +PUT_CURSOR: This is analogous to PUT_WINDOW, but for the hardware cursor + instead of a window. + +SET_CURSOR_IMAGE: This is used to change the hardware cursor image. May only + be used by a client who has successfully performed a + GET_CURSOR call. + +SET_CURSOR: This is used to actually place the hardware cursor on the screen. + May only be used by a client who has successfully performed a + GET_CURSOR call. + +SET_CSC: This may be used to set a color space conversion matrix on a window. + A dc_ext client may only use this on windows that it has previously + reserved with a successful GET_WINDOW call. + +GET_STATUS: This is used to retrieve general status about the dc. + +GET_VBLANK_SYNCPT: This is used to retrieve the auto-incrementing vblank + syncpoint for the head associated with this dc. + + +Overview of tegra_dc_ctrl IOCTLs: +GET_NUM_OUTPUTS: This returns the number of available output devices on the + system, which may exceed the number of display controllers. + +GET_OUTPUT_PROPERTIES: This returns data about the given output, such as what + kind of output it is, whether it's currently associated + with a head, etc. + +GET_OUTPUT_EDID: This returns the binary EDID read from the device connected + to the given output, if any. + +SET_EVENT_MASK: A dc_ext client may call this ioctl with a bitmask of events + that it wishes to receive. These events will then be + available to that client on a subsequent read() on the same + file descriptor. |