Merge branch 'fix' of git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6
This commit is contained in:
commit
76962be849
951 changed files with 42187 additions and 16235 deletions
15
Documentation/ABI/testing/sysfs-firmware-sfi
Normal file
15
Documentation/ABI/testing/sysfs-firmware-sfi
Normal file
|
@ -0,0 +1,15 @@
|
|||
What: /sys/firmware/sfi/tables/
|
||||
Date: May 2010
|
||||
Contact: Len Brown <lenb@kernel.org>
|
||||
Description:
|
||||
SFI defines a number of small static memory tables
|
||||
so the kernel can get platform information from firmware.
|
||||
|
||||
The tables are defined in the latest SFI specification:
|
||||
http://simplefirmware.org/documentation
|
||||
|
||||
While the tables are used by the kernel, user-space
|
||||
can observe them this way:
|
||||
|
||||
# cd /sys/firmware/sfi/tables
|
||||
# cat $TABLENAME > $TABLENAME.bin
|
|
@ -639,6 +639,36 @@ is planned to completely remove virt_to_bus() and bus_to_virt() as
|
|||
they are entirely deprecated. Some ports already do not provide these
|
||||
as it is impossible to correctly support them.
|
||||
|
||||
Handling Errors
|
||||
|
||||
DMA address space is limited on some architectures and an allocation
|
||||
failure can be determined by:
|
||||
|
||||
- checking if dma_alloc_coherent returns NULL or dma_map_sg returns 0
|
||||
|
||||
- checking the returned dma_addr_t of dma_map_single and dma_map_page
|
||||
by using dma_mapping_error():
|
||||
|
||||
dma_addr_t dma_handle;
|
||||
|
||||
dma_handle = dma_map_single(dev, addr, size, direction);
|
||||
if (dma_mapping_error(dev, dma_handle)) {
|
||||
/*
|
||||
* reduce current DMA mapping usage,
|
||||
* delay and try again later or
|
||||
* reset driver.
|
||||
*/
|
||||
}
|
||||
|
||||
Networking drivers must call dev_kfree_skb to free the socket buffer
|
||||
and return NETDEV_TX_OK if the DMA mapping fails on the transmit hook
|
||||
(ndo_start_xmit). This means that the socket buffer is just dropped in
|
||||
the failure case.
|
||||
|
||||
SCSI drivers must return SCSI_MLQUEUE_HOST_BUSY if the DMA mapping
|
||||
fails in the queuecommand hook. This means that the SCSI subsystem
|
||||
passes the command to the driver again later.
|
||||
|
||||
Optimizing Unmap State Space Consumption
|
||||
|
||||
On many platforms, dma_unmap_{single,page}() is simply a nop.
|
||||
|
@ -703,42 +733,25 @@ to "Closing".
|
|||
|
||||
1) Struct scatterlist requirements.
|
||||
|
||||
Struct scatterlist must contain, at a minimum, the following
|
||||
members:
|
||||
Don't invent the architecture specific struct scatterlist; just use
|
||||
<asm-generic/scatterlist.h>. You need to enable
|
||||
CONFIG_NEED_SG_DMA_LENGTH if the architecture supports IOMMUs
|
||||
(including software IOMMU).
|
||||
|
||||
struct page *page;
|
||||
unsigned int offset;
|
||||
unsigned int length;
|
||||
2) ARCH_KMALLOC_MINALIGN
|
||||
|
||||
The base address is specified by a "page+offset" pair.
|
||||
Architectures must ensure that kmalloc'ed buffer is
|
||||
DMA-safe. Drivers and subsystems depend on it. If an architecture
|
||||
isn't fully DMA-coherent (i.e. hardware doesn't ensure that data in
|
||||
the CPU cache is identical to data in main memory),
|
||||
ARCH_KMALLOC_MINALIGN must be set so that the memory allocator
|
||||
makes sure that kmalloc'ed buffer doesn't share a cache line with
|
||||
the others. See arch/arm/include/asm/cache.h as an example.
|
||||
|
||||
Previous versions of struct scatterlist contained a "void *address"
|
||||
field that was sometimes used instead of page+offset. As of Linux
|
||||
2.5., page+offset is always used, and the "address" field has been
|
||||
deleted.
|
||||
|
||||
2) More to come...
|
||||
|
||||
Handling Errors
|
||||
|
||||
DMA address space is limited on some architectures and an allocation
|
||||
failure can be determined by:
|
||||
|
||||
- checking if dma_alloc_coherent returns NULL or dma_map_sg returns 0
|
||||
|
||||
- checking the returned dma_addr_t of dma_map_single and dma_map_page
|
||||
by using dma_mapping_error():
|
||||
|
||||
dma_addr_t dma_handle;
|
||||
|
||||
dma_handle = dma_map_single(dev, addr, size, direction);
|
||||
if (dma_mapping_error(dev, dma_handle)) {
|
||||
/*
|
||||
* reduce current DMA mapping usage,
|
||||
* delay and try again later or
|
||||
* reset driver.
|
||||
*/
|
||||
}
|
||||
Note that ARCH_KMALLOC_MINALIGN is about DMA memory alignment
|
||||
constraints. You don't need to worry about the architecture data
|
||||
alignment constraints (e.g. the alignment constraints about 64-bit
|
||||
objects).
|
||||
|
||||
Closing
|
||||
|
||||
|
|
|
@ -130,6 +130,8 @@ Linux kernel master tree:
|
|||
ftp.??.kernel.org:/pub/linux/kernel/...
|
||||
?? == your country code, such as "us", "uk", "fr", etc.
|
||||
|
||||
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git
|
||||
|
||||
Linux kernel mailing list:
|
||||
linux-kernel@vger.kernel.org
|
||||
[mail majordomo@vger.kernel.org to subscribe]
|
||||
|
@ -160,3 +162,6 @@ How to NOT write kernel driver by Arjan van de Ven:
|
|||
|
||||
Kernel Janitor:
|
||||
http://janitor.kernelnewbies.org/
|
||||
|
||||
GIT, Fast Version Control System:
|
||||
http://git-scm.com/
|
||||
|
|
59
Documentation/acpi/apei/einj.txt
Normal file
59
Documentation/acpi/apei/einj.txt
Normal file
|
@ -0,0 +1,59 @@
|
|||
APEI Error INJection
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
EINJ provides a hardware error injection mechanism
|
||||
It is very useful for debugging and testing of other APEI and RAS features.
|
||||
|
||||
To use EINJ, make sure the following are enabled in your kernel
|
||||
configuration:
|
||||
|
||||
CONFIG_DEBUG_FS
|
||||
CONFIG_ACPI_APEI
|
||||
CONFIG_ACPI_APEI_EINJ
|
||||
|
||||
The user interface of EINJ is debug file system, under the
|
||||
directory apei/einj. The following files are provided.
|
||||
|
||||
- available_error_type
|
||||
Reading this file returns the error injection capability of the
|
||||
platform, that is, which error types are supported. The error type
|
||||
definition is as follow, the left field is the error type value, the
|
||||
right field is error description.
|
||||
|
||||
0x00000001 Processor Correctable
|
||||
0x00000002 Processor Uncorrectable non-fatal
|
||||
0x00000004 Processor Uncorrectable fatal
|
||||
0x00000008 Memory Correctable
|
||||
0x00000010 Memory Uncorrectable non-fatal
|
||||
0x00000020 Memory Uncorrectable fatal
|
||||
0x00000040 PCI Express Correctable
|
||||
0x00000080 PCI Express Uncorrectable fatal
|
||||
0x00000100 PCI Express Uncorrectable non-fatal
|
||||
0x00000200 Platform Correctable
|
||||
0x00000400 Platform Uncorrectable non-fatal
|
||||
0x00000800 Platform Uncorrectable fatal
|
||||
|
||||
The format of file contents are as above, except there are only the
|
||||
available error type lines.
|
||||
|
||||
- error_type
|
||||
This file is used to set the error type value. The error type value
|
||||
is defined in "available_error_type" description.
|
||||
|
||||
- error_inject
|
||||
Write any integer to this file to trigger the error
|
||||
injection. Before this, please specify all necessary error
|
||||
parameters.
|
||||
|
||||
- param1
|
||||
This file is used to set the first error parameter value. Effect of
|
||||
parameter depends on error_type specified. For memory error, this is
|
||||
physical memory address.
|
||||
|
||||
- param2
|
||||
This file is used to set the second error parameter value. Effect of
|
||||
parameter depends on error_type specified. For memory error, this is
|
||||
physical memory address mask.
|
||||
|
||||
For more information about EINJ, please refer to ACPI specification
|
||||
version 4.0, section 17.5.
|
|
@ -12,6 +12,8 @@ Introduction
|
|||
of the s3c2410 GPIO system, please read the Samsung provided
|
||||
data-sheet/users manual to find out the complete list.
|
||||
|
||||
See Documentation/arm/Samsung/GPIO.txt for the core implemetation.
|
||||
|
||||
|
||||
GPIOLIB
|
||||
-------
|
||||
|
@ -24,8 +26,60 @@ GPIOLIB
|
|||
listed below will be removed (they may be marked as __deprecated
|
||||
in the near future).
|
||||
|
||||
- s3c2410_gpio_getpin
|
||||
- s3c2410_gpio_setpin
|
||||
The following functions now either have a s3c_ specific variant
|
||||
or are merged into gpiolib. See the definitions in
|
||||
arch/arm/plat-samsung/include/plat/gpio-cfg.h:
|
||||
|
||||
s3c2410_gpio_setpin() gpio_set_value() or gpio_direction_output()
|
||||
s3c2410_gpio_getpin() gpio_get_value() or gpio_direction_input()
|
||||
s3c2410_gpio_getirq() gpio_to_irq()
|
||||
s3c2410_gpio_cfgpin() s3c_gpio_cfgpin()
|
||||
s3c2410_gpio_getcfg() s3c_gpio_getcfg()
|
||||
s3c2410_gpio_pullup() s3c_gpio_setpull()
|
||||
|
||||
|
||||
GPIOLIB conversion
|
||||
------------------
|
||||
|
||||
If you need to convert your board or driver to use gpiolib from the exiting
|
||||
s3c2410 api, then here are some notes on the process.
|
||||
|
||||
1) If your board is exclusively using an GPIO, say to control peripheral
|
||||
power, then it will require to claim the gpio with gpio_request() before
|
||||
it can use it.
|
||||
|
||||
It is recommended to check the return value, with at least WARN_ON()
|
||||
during initialisation.
|
||||
|
||||
2) The s3c2410_gpio_cfgpin() can be directly replaced with s3c_gpio_cfgpin()
|
||||
as they have the same arguments, and can either take the pin specific
|
||||
values, or the more generic special-function-number arguments.
|
||||
|
||||
3) s3c2410_gpio_pullup() changs have the problem that whilst the
|
||||
s3c2410_gpio_pullup(x, 1) can be easily translated to the
|
||||
s3c_gpio_setpull(x, S3C_GPIO_PULL_NONE), the s3c2410_gpio_pullup(x, 0)
|
||||
are not so easy.
|
||||
|
||||
The s3c2410_gpio_pullup(x, 0) case enables the pull-up (or in the case
|
||||
of some of the devices, a pull-down) and as such the new API distinguishes
|
||||
between the UP and DOWN case. There is currently no 'just turn on' setting
|
||||
which may be required if this becomes a problem.
|
||||
|
||||
4) s3c2410_gpio_setpin() can be replaced by gpio_set_value(), the old call
|
||||
does not implicitly configure the relevant gpio to output. The gpio
|
||||
direction should be changed before using gpio_set_value().
|
||||
|
||||
5) s3c2410_gpio_getpin() is replaceable by gpio_get_value() if the pin
|
||||
has been set to input. It is currently unknown what the behaviour is
|
||||
when using gpio_get_value() on an output pin (s3c2410_gpio_getpin
|
||||
would return the value the pin is supposed to be outputting).
|
||||
|
||||
6) s3c2410_gpio_getirq() should be directly replacable with the
|
||||
gpio_to_irq() call.
|
||||
|
||||
The s3c2410_gpio and gpio_ calls have always operated on the same gpio
|
||||
numberspace, so there is no problem with converting the gpio numbering
|
||||
between the calls.
|
||||
|
||||
|
||||
Headers
|
||||
|
@ -54,6 +108,11 @@ PIN Numbers
|
|||
eg S3C2410_GPA(0) or S3C2410_GPF(1). These defines are used to tell
|
||||
the GPIO functions which pin is to be used.
|
||||
|
||||
With the conversion to gpiolib, there is no longer a direct conversion
|
||||
from gpio pin number to register base address as in earlier kernels. This
|
||||
is due to the number space required for newer SoCs where the later
|
||||
GPIOs are not contiguous.
|
||||
|
||||
|
||||
Configuring a pin
|
||||
-----------------
|
||||
|
@ -71,6 +130,8 @@ Configuring a pin
|
|||
which would turn GPA(0) into the lowest Address line A0, and set
|
||||
GPE(8) to be connected to the SDIO/MMC controller's SDDAT1 line.
|
||||
|
||||
The s3c_gpio_cfgpin() call is a functional replacement for this call.
|
||||
|
||||
|
||||
Reading the current configuration
|
||||
---------------------------------
|
||||
|
@ -82,6 +143,9 @@ Reading the current configuration
|
|||
The return value will be from the same set of values which can be
|
||||
passed to s3c2410_gpio_cfgpin().
|
||||
|
||||
The s3c_gpio_getcfg() call should be a functional replacement for
|
||||
this call.
|
||||
|
||||
|
||||
Configuring a pull-up resistor
|
||||
------------------------------
|
||||
|
@ -95,6 +159,10 @@ Configuring a pull-up resistor
|
|||
Where the to value is zero to set the pull-up off, and 1 to enable
|
||||
the specified pull-up. Any other values are currently undefined.
|
||||
|
||||
The s3c_gpio_setpull() offers similar functionality, but with the
|
||||
ability to encode whether the pull is up or down. Currently there
|
||||
is no 'just on' state, so up or down must be selected.
|
||||
|
||||
|
||||
Getting the state of a PIN
|
||||
--------------------------
|
||||
|
@ -106,6 +174,9 @@ Getting the state of a PIN
|
|||
This will return either zero or non-zero. Do not count on this
|
||||
function returning 1 if the pin is set.
|
||||
|
||||
This call is now implemented by the relevant gpiolib calls, convert
|
||||
your board or driver to use gpiolib.
|
||||
|
||||
|
||||
Setting the state of a PIN
|
||||
--------------------------
|
||||
|
@ -117,6 +188,9 @@ Setting the state of a PIN
|
|||
Which sets the given pin to the value. Use 0 to write 0, and 1 to
|
||||
set the output to 1.
|
||||
|
||||
This call is now implemented by the relevant gpiolib calls, convert
|
||||
your board or driver to use gpiolib.
|
||||
|
||||
|
||||
Getting the IRQ number associated with a PIN
|
||||
--------------------------------------------
|
||||
|
@ -128,6 +202,9 @@ Getting the IRQ number associated with a PIN
|
|||
|
||||
Note, not all pins have an IRQ.
|
||||
|
||||
This call is now implemented by the relevant gpiolib calls, convert
|
||||
your board or driver to use gpiolib.
|
||||
|
||||
|
||||
Authour
|
||||
-------
|
||||
|
|
|
@ -8,10 +8,16 @@ Introduction
|
|||
|
||||
The Samsung S3C24XX range of ARM9 System-on-Chip CPUs are supported
|
||||
by the 's3c2410' architecture of ARM Linux. Currently the S3C2410,
|
||||
S3C2412, S3C2413, S3C2440, S3C2442 and S3C2443 devices are supported.
|
||||
S3C2412, S3C2413, S3C2416 S3C2440, S3C2442, S3C2443 and S3C2450 devices
|
||||
are supported.
|
||||
|
||||
Support for the S3C2400 and S3C24A0 series are in progress.
|
||||
|
||||
The S3C2416 and S3C2450 devices are very similar and S3C2450 support is
|
||||
included under the arch/arm/mach-s3c2416 directory. Note, whilst core
|
||||
support for these SoCs is in, work on some of the extra peripherals
|
||||
and extra interrupts is still ongoing.
|
||||
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
@ -209,6 +215,13 @@ GPIO
|
|||
Newer kernels carry GPIOLIB, and support is being moved towards
|
||||
this with some of the older support in line to be removed.
|
||||
|
||||
As of v2.6.34, the move towards using gpiolib support is almost
|
||||
complete, and very little of the old calls are left.
|
||||
|
||||
See Documentation/arm/Samsung-S3C24XX/GPIO.txt for the S3C24XX specific
|
||||
support and Documentation/arm/Samsung/GPIO.txt for the core Samsung
|
||||
implementation.
|
||||
|
||||
|
||||
Clock Management
|
||||
----------------
|
||||
|
|
42
Documentation/arm/Samsung/GPIO.txt
Normal file
42
Documentation/arm/Samsung/GPIO.txt
Normal file
|
@ -0,0 +1,42 @@
|
|||
Samsung GPIO implementation
|
||||
===========================
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
This outlines the Samsung GPIO implementation and the architecture
|
||||
specfic calls provided alongisde the drivers/gpio core.
|
||||
|
||||
|
||||
S3C24XX (Legacy)
|
||||
----------------
|
||||
|
||||
See Documentation/arm/Samsung-S3C24XX/GPIO.txt for more information
|
||||
about these devices. Their implementation is being brought into line
|
||||
with the core samsung implementation described in this document.
|
||||
|
||||
|
||||
GPIOLIB integration
|
||||
-------------------
|
||||
|
||||
The gpio implementation uses gpiolib as much as possible, only providing
|
||||
specific calls for the items that require Samsung specific handling, such
|
||||
as pin special-function or pull resistor control.
|
||||
|
||||
GPIO numbering is synchronised between the Samsung and gpiolib system.
|
||||
|
||||
|
||||
PIN configuration
|
||||
-----------------
|
||||
|
||||
Pin configuration is specific to the Samsung architecutre, with each SoC
|
||||
registering the necessary information for the core gpio configuration
|
||||
implementation to configure pins as necessary.
|
||||
|
||||
The s3c_gpio_cfgpin() and s3c_gpio_setpull() provide the means for a
|
||||
driver or machine to change gpio configuration.
|
||||
|
||||
See arch/arm/plat-samsung/include/plat/gpio-cfg.h for more information
|
||||
on these functions.
|
||||
|
||||
|
|
@ -13,9 +13,10 @@ Introduction
|
|||
|
||||
- S3C24XX: See Documentation/arm/Samsung-S3C24XX/Overview.txt for full list
|
||||
- S3C64XX: S3C6400 and S3C6410
|
||||
- S5PC6440
|
||||
|
||||
S5PC100 and S5PC110 support is currently being merged
|
||||
- S5P6440
|
||||
- S5P6442
|
||||
- S5PC100
|
||||
- S5PC110 / S5PV210
|
||||
|
||||
|
||||
S3C24XX Systems
|
||||
|
@ -35,7 +36,10 @@ Configuration
|
|||
unifying all the SoCs into one kernel.
|
||||
|
||||
s5p6440_defconfig - S5P6440 specific default configuration
|
||||
s5p6442_defconfig - S5P6442 specific default configuration
|
||||
s5pc100_defconfig - S5PC100 specific default configuration
|
||||
s5pc110_defconfig - S5PC110 specific default configuration
|
||||
s5pv210_defconfig - S5PV210 specific default configuration
|
||||
|
||||
|
||||
Layout
|
||||
|
@ -50,18 +54,27 @@ Layout
|
|||
specific information. It contains the base clock, GPIO and device definitions
|
||||
to get the system running.
|
||||
|
||||
plat-s3c is the s3c24xx/s3c64xx platform directory, although it is currently
|
||||
involved in other builds this will be phased out once the relevant code is
|
||||
moved elsewhere.
|
||||
|
||||
plat-s3c24xx is for s3c24xx specific builds, see the S3C24XX docs.
|
||||
|
||||
plat-s3c64xx is for the s3c64xx specific bits, see the S3C24XX docs.
|
||||
|
||||
plat-s5p is for s5p specific builds, more to be added.
|
||||
plat-s5p is for s5p specific builds, and contains common support for the
|
||||
S5P specific systems. Not all S5Ps use all the features in this directory
|
||||
due to differences in the hardware.
|
||||
|
||||
|
||||
Layout changes
|
||||
--------------
|
||||
|
||||
The old plat-s3c and plat-s5pc1xx directories have been removed, with
|
||||
support moved to either plat-samsung or plat-s5p as necessary. These moves
|
||||
where to simplify the include and dependency issues involved with having
|
||||
so many different platform directories.
|
||||
|
||||
It was decided to remove plat-s5pc1xx as some of the support was already
|
||||
in plat-s5p or plat-samsung, with the S5PC110 support added with S5PV210
|
||||
the only user was the S5PC100. The S5PC100 specific items where moved to
|
||||
arch/arm/mach-s5pc100.
|
||||
|
||||
|
||||
[ to finish ]
|
||||
|
||||
|
||||
Port Contributors
|
||||
|
|
|
@ -339,7 +339,7 @@ To mount a cgroup hierarchy with all available subsystems, type:
|
|||
The "xxx" is not interpreted by the cgroup code, but will appear in
|
||||
/proc/mounts so may be any useful identifying string that you like.
|
||||
|
||||
To mount a cgroup hierarchy with just the cpuset and numtasks
|
||||
To mount a cgroup hierarchy with just the cpuset and memory
|
||||
subsystems, type:
|
||||
# mount -t cgroup -o cpuset,memory hier1 /dev/cgroup
|
||||
|
||||
|
|
|
@ -1,18 +1,15 @@
|
|||
Memory Resource Controller
|
||||
|
||||
NOTE: The Memory Resource Controller has been generically been referred
|
||||
to as the memory controller in this document. Do not confuse memory controller
|
||||
used here with the memory controller that is used in hardware.
|
||||
to as the memory controller in this document. Do not confuse memory
|
||||
controller used here with the memory controller that is used in hardware.
|
||||
|
||||
Salient features
|
||||
|
||||
a. Enable control of Anonymous, Page Cache (mapped and unmapped) and
|
||||
Swap Cache memory pages.
|
||||
b. The infrastructure allows easy addition of other types of memory to control
|
||||
c. Provides *zero overhead* for non memory controller users
|
||||
d. Provides a double LRU: global memory pressure causes reclaim from the
|
||||
global LRU; a cgroup on hitting a limit, reclaims from the per
|
||||
cgroup LRU
|
||||
(For editors)
|
||||
In this document:
|
||||
When we mention a cgroup (cgroupfs's directory) with memory controller,
|
||||
we call it "memory cgroup". When you see git-log and source code, you'll
|
||||
see patch's title and function names tend to use "memcg".
|
||||
In this document, we avoid using it.
|
||||
|
||||
Benefits and Purpose of the memory controller
|
||||
|
||||
|
@ -33,6 +30,45 @@ d. A CD/DVD burner could control the amount of memory used by the
|
|||
e. There are several other use cases, find one or use the controller just
|
||||
for fun (to learn and hack on the VM subsystem).
|
||||
|
||||
Current Status: linux-2.6.34-mmotm(development version of 2010/April)
|
||||
|
||||
Features:
|
||||
- accounting anonymous pages, file caches, swap caches usage and limiting them.
|
||||
- private LRU and reclaim routine. (system's global LRU and private LRU
|
||||
work independently from each other)
|
||||
- optionally, memory+swap usage can be accounted and limited.
|
||||
- hierarchical accounting
|
||||
- soft limit
|
||||
- moving(recharging) account at moving a task is selectable.
|
||||
- usage threshold notifier
|
||||
- oom-killer disable knob and oom-notifier
|
||||
- Root cgroup has no limit controls.
|
||||
|
||||
Kernel memory and Hugepages are not under control yet. We just manage
|
||||
pages on LRU. To add more controls, we have to take care of performance.
|
||||
|
||||
Brief summary of control files.
|
||||
|
||||
tasks # attach a task(thread) and show list of threads
|
||||
cgroup.procs # show list of processes
|
||||
cgroup.event_control # an interface for event_fd()
|
||||
memory.usage_in_bytes # show current memory(RSS+Cache) usage.
|
||||
memory.memsw.usage_in_bytes # show current memory+Swap usage
|
||||
memory.limit_in_bytes # set/show limit of memory usage
|
||||
memory.memsw.limit_in_bytes # set/show limit of memory+Swap usage
|
||||
memory.failcnt # show the number of memory usage hits limits
|
||||
memory.memsw.failcnt # show the number of memory+Swap hits limits
|
||||
memory.max_usage_in_bytes # show max memory usage recorded
|
||||
memory.memsw.usage_in_bytes # show max memory+Swap usage recorded
|
||||
memory.soft_limit_in_bytes # set/show soft limit of memory usage
|
||||
memory.stat # show various statistics
|
||||
memory.use_hierarchy # set/show hierarchical account enabled
|
||||
memory.force_empty # trigger forced move charge to parent
|
||||
memory.swappiness # set/show swappiness parameter of vmscan
|
||||
(See sysctl's vm.swappiness)
|
||||
memory.move_charge_at_immigrate # set/show controls of moving charges
|
||||
memory.oom_control # set/show oom controls.
|
||||
|
||||
1. History
|
||||
|
||||
The memory controller has a long history. A request for comments for the memory
|
||||
|
@ -106,14 +142,14 @@ the necessary data structures and check if the cgroup that is being charged
|
|||
is over its limit. If it is then reclaim is invoked on the cgroup.
|
||||
More details can be found in the reclaim section of this document.
|
||||
If everything goes well, a page meta-data-structure called page_cgroup is
|
||||
allocated and associated with the page. This routine also adds the page to
|
||||
the per cgroup LRU.
|
||||
updated. page_cgroup has its own LRU on cgroup.
|
||||
(*) page_cgroup structure is allocated at boot/memory-hotplug time.
|
||||
|
||||
2.2.1 Accounting details
|
||||
|
||||
All mapped anon pages (RSS) and cache pages (Page Cache) are accounted.
|
||||
(some pages which never be reclaimable and will not be on global LRU
|
||||
are not accounted. we just accounts pages under usual vm management.)
|
||||
Some pages which are never reclaimable and will not be on the global LRU
|
||||
are not accounted. We just account pages under usual VM management.
|
||||
|
||||
RSS pages are accounted at page_fault unless they've already been accounted
|
||||
for earlier. A file page will be accounted for as Page Cache when it's
|
||||
|
@ -121,12 +157,19 @@ inserted into inode (radix-tree). While it's mapped into the page tables of
|
|||
processes, duplicate accounting is carefully avoided.
|
||||
|
||||
A RSS page is unaccounted when it's fully unmapped. A PageCache page is
|
||||
unaccounted when it's removed from radix-tree.
|
||||
unaccounted when it's removed from radix-tree. Even if RSS pages are fully
|
||||
unmapped (by kswapd), they may exist as SwapCache in the system until they
|
||||
are really freed. Such SwapCaches also also accounted.
|
||||
A swapped-in page is not accounted until it's mapped.
|
||||
|
||||
Note: The kernel does swapin-readahead and read multiple swaps at once.
|
||||
This means swapped-in pages may contain pages for other tasks than a task
|
||||
causing page fault. So, we avoid accounting at swap-in I/O.
|
||||
|
||||
At page migration, accounting information is kept.
|
||||
|
||||
Note: we just account pages-on-lru because our purpose is to control amount
|
||||
of used pages. not-on-lru pages are tend to be out-of-control from vm view.
|
||||
Note: we just account pages-on-LRU because our purpose is to control amount
|
||||
of used pages; not-on-LRU pages tend to be out-of-control from VM view.
|
||||
|
||||
2.3 Shared Page Accounting
|
||||
|
||||
|
@ -143,6 +186,7 @@ caller of swapoff rather than the users of shmem.
|
|||
|
||||
|
||||
2.4 Swap Extension (CONFIG_CGROUP_MEM_RES_CTLR_SWAP)
|
||||
|
||||
Swap Extension allows you to record charge for swap. A swapped-in page is
|
||||
charged back to original page allocator if possible.
|
||||
|
||||
|
@ -150,13 +194,20 @@ When swap is accounted, following files are added.
|
|||
- memory.memsw.usage_in_bytes.
|
||||
- memory.memsw.limit_in_bytes.
|
||||
|
||||
usage of mem+swap is limited by memsw.limit_in_bytes.
|
||||
memsw means memory+swap. Usage of memory+swap is limited by
|
||||
memsw.limit_in_bytes.
|
||||
|
||||
* why 'mem+swap' rather than swap.
|
||||
Example: Assume a system with 4G of swap. A task which allocates 6G of memory
|
||||
(by mistake) under 2G memory limitation will use all swap.
|
||||
In this case, setting memsw.limit_in_bytes=3G will prevent bad use of swap.
|
||||
By using memsw limit, you can avoid system OOM which can be caused by swap
|
||||
shortage.
|
||||
|
||||
* why 'memory+swap' rather than swap.
|
||||
The global LRU(kswapd) can swap out arbitrary pages. Swap-out means
|
||||
to move account from memory to swap...there is no change in usage of
|
||||
mem+swap. In other words, when we want to limit the usage of swap without
|
||||
affecting global LRU, mem+swap limit is better than just limiting swap from
|
||||
memory+swap. In other words, when we want to limit the usage of swap without
|
||||
affecting global LRU, memory+swap limit is better than just limiting swap from
|
||||
OS point of view.
|
||||
|
||||
* What happens when a cgroup hits memory.memsw.limit_in_bytes
|
||||
|
@ -168,12 +219,12 @@ it by cgroup.
|
|||
|
||||
2.5 Reclaim
|
||||
|
||||
Each cgroup maintains a per cgroup LRU that consists of an active
|
||||
and inactive list. When a cgroup goes over its limit, we first try
|
||||
Each cgroup maintains a per cgroup LRU which has the same structure as
|
||||
global VM. When a cgroup goes over its limit, we first try
|
||||
to reclaim memory from the cgroup so as to make space for the new
|
||||
pages that the cgroup has touched. If the reclaim is unsuccessful,
|
||||
an OOM routine is invoked to select and kill the bulkiest task in the
|
||||
cgroup.
|
||||
cgroup. (See 10. OOM Control below.)
|
||||
|
||||
The reclaim algorithm has not been modified for cgroups, except that
|
||||
pages that are selected for reclaiming come from the per cgroup LRU
|
||||
|
@ -184,13 +235,22 @@ limits on the root cgroup.
|
|||
|
||||
Note2: When panic_on_oom is set to "2", the whole system will panic.
|
||||
|
||||
2. Locking
|
||||
When oom event notifier is registered, event will be delivered.
|
||||
(See oom_control section)
|
||||
|
||||
The memory controller uses the following hierarchy
|
||||
2.6 Locking
|
||||
|
||||
1. zone->lru_lock is used for selecting pages to be isolated
|
||||
2. mem->per_zone->lru_lock protects the per cgroup LRU (per zone)
|
||||
3. lock_page_cgroup() is used to protect page->page_cgroup
|
||||
lock_page_cgroup()/unlock_page_cgroup() should not be called under
|
||||
mapping->tree_lock.
|
||||
|
||||
Other lock order is following:
|
||||
PG_locked.
|
||||
mm->page_table_lock
|
||||
zone->lru_lock
|
||||
lock_page_cgroup.
|
||||
In many cases, just lock_page_cgroup() is called.
|
||||
per-zone-per-cgroup LRU (cgroup's private LRU) is just guarded by
|
||||
zone->lru_lock, it has no lock of its own.
|
||||
|
||||
3. User Interface
|
||||
|
||||
|
@ -199,6 +259,7 @@ The memory controller uses the following hierarchy
|
|||
a. Enable CONFIG_CGROUPS
|
||||
b. Enable CONFIG_RESOURCE_COUNTERS
|
||||
c. Enable CONFIG_CGROUP_MEM_RES_CTLR
|
||||
d. Enable CONFIG_CGROUP_MEM_RES_CTLR_SWAP (to use swap extension)
|
||||
|
||||
1. Prepare the cgroups
|
||||
# mkdir -p /cgroups
|
||||
|
@ -206,31 +267,28 @@ c. Enable CONFIG_CGROUP_MEM_RES_CTLR
|
|||
|
||||
2. Make the new group and move bash into it
|
||||
# mkdir /cgroups/0
|
||||
# echo $$ > /cgroups/0/tasks
|
||||
# echo $$ > /cgroups/0/tasks
|
||||
|
||||
Since now we're in the 0 cgroup,
|
||||
We can alter the memory limit:
|
||||
Since now we're in the 0 cgroup, we can alter the memory limit:
|
||||
# echo 4M > /cgroups/0/memory.limit_in_bytes
|
||||
|
||||
NOTE: We can use a suffix (k, K, m, M, g or G) to indicate values in kilo,
|
||||
mega or gigabytes.
|
||||
mega or gigabytes. (Here, Kilo, Mega, Giga are Kibibytes, Mebibytes, Gibibytes.)
|
||||
|
||||
NOTE: We can write "-1" to reset the *.limit_in_bytes(unlimited).
|
||||
NOTE: We cannot set limits on the root cgroup any more.
|
||||
|
||||
# cat /cgroups/0/memory.limit_in_bytes
|
||||
4194304
|
||||
|
||||
NOTE: The interface has now changed to display the usage in bytes
|
||||
instead of pages
|
||||
|
||||
We can check the usage:
|
||||
# cat /cgroups/0/memory.usage_in_bytes
|
||||
1216512
|
||||
|
||||
A successful write to this file does not guarantee a successful set of
|
||||
this limit to the value written into the file. This can be due to a
|
||||
this limit to the value written into the file. This can be due to a
|
||||
number of factors, such as rounding up to page boundaries or the total
|
||||
availability of memory on the system. The user is required to re-read
|
||||
availability of memory on the system. The user is required to re-read
|
||||
this file after a write to guarantee the value committed by the kernel.
|
||||
|
||||
# echo 1 > memory.limit_in_bytes
|
||||
|
@ -245,15 +303,23 @@ caches, RSS and Active pages/Inactive pages are shown.
|
|||
|
||||
4. Testing
|
||||
|
||||
Balbir posted lmbench, AIM9, LTP and vmmstress results [10] and [11].
|
||||
Apart from that v6 has been tested with several applications and regular
|
||||
daily use. The controller has also been tested on the PPC64, x86_64 and
|
||||
UML platforms.
|
||||
For testing features and implementation, see memcg_test.txt.
|
||||
|
||||
Performance test is also important. To see pure memory controller's overhead,
|
||||
testing on tmpfs will give you good numbers of small overheads.
|
||||
Example: do kernel make on tmpfs.
|
||||
|
||||
Page-fault scalability is also important. At measuring parallel
|
||||
page fault test, multi-process test may be better than multi-thread
|
||||
test because it has noise of shared objects/status.
|
||||
|
||||
But the above two are testing extreme situations.
|
||||
Trying usual test under memory controller is always helpful.
|
||||
|
||||
4.1 Troubleshooting
|
||||
|
||||
Sometimes a user might find that the application under a cgroup is
|
||||
terminated. There are several causes for this:
|
||||
terminated by OOM killer. There are several causes for this:
|
||||
|
||||
1. The cgroup limit is too low (just too low to do anything useful)
|
||||
2. The user is using anonymous memory and swap is turned off or too low
|
||||
|
@ -261,6 +327,9 @@ terminated. There are several causes for this:
|
|||
A sync followed by echo 1 > /proc/sys/vm/drop_caches will help get rid of
|
||||
some of the pages cached in the cgroup (page cache pages).
|
||||
|
||||
To know what happens, disable OOM_Kill by 10. OOM Control(see below) and
|
||||
seeing what happens will be helpful.
|
||||
|
||||
4.2 Task migration
|
||||
|
||||
When a task migrates from one cgroup to another, its charge is not
|
||||
|
@ -268,16 +337,19 @@ carried forward by default. The pages allocated from the original cgroup still
|
|||
remain charged to it, the charge is dropped when the page is freed or
|
||||
reclaimed.
|
||||
|
||||
Note: You can move charges of a task along with task migration. See 8.
|
||||
You can move charges of a task along with task migration.
|
||||
See 8. "Move charges at task migration"
|
||||
|
||||
4.3 Removing a cgroup
|
||||
|
||||
A cgroup can be removed by rmdir, but as discussed in sections 4.1 and 4.2, a
|
||||
cgroup might have some charge associated with it, even though all
|
||||
tasks have migrated away from it.
|
||||
Such charges are freed(at default) or moved to its parent. When moved,
|
||||
both of RSS and CACHES are moved to parent.
|
||||
If both of them are busy, rmdir() returns -EBUSY. See 5.1 Also.
|
||||
tasks have migrated away from it. (because we charge against pages, not
|
||||
against tasks.)
|
||||
|
||||
Such charges are freed or moved to their parent. At moving, both of RSS
|
||||
and CACHES are moved to parent.
|
||||
rmdir() may return -EBUSY if freeing/moving fails. See 5.1 also.
|
||||
|
||||
Charges recorded in swap information is not updated at removal of cgroup.
|
||||
Recorded information is discarded and a cgroup which uses swap (swapcache)
|
||||
|
@ -293,10 +365,10 @@ will be charged as a new owner of it.
|
|||
|
||||
# echo 0 > memory.force_empty
|
||||
|
||||
Almost all pages tracked by this memcg will be unmapped and freed. Some of
|
||||
pages cannot be freed because it's locked or in-use. Such pages are moved
|
||||
to parent and this cgroup will be empty. But this may return -EBUSY in
|
||||
some too busy case.
|
||||
Almost all pages tracked by this memory cgroup will be unmapped and freed.
|
||||
Some pages cannot be freed because they are locked or in-use. Such pages are
|
||||
moved to parent and this cgroup will be empty. This may return -EBUSY if
|
||||
VM is too busy to free/move all pages immediately.
|
||||
|
||||
Typical use case of this interface is that calling this before rmdir().
|
||||
Because rmdir() moves all pages to parent, some out-of-use page caches can be
|
||||
|
@ -306,19 +378,41 @@ will be charged as a new owner of it.
|
|||
|
||||
memory.stat file includes following statistics
|
||||
|
||||
# per-memory cgroup local status
|
||||
cache - # of bytes of page cache memory.
|
||||
rss - # of bytes of anonymous and swap cache memory.
|
||||
mapped_file - # of bytes of mapped file (includes tmpfs/shmem)
|
||||
pgpgin - # of pages paged in (equivalent to # of charging events).
|
||||
pgpgout - # of pages paged out (equivalent to # of uncharging events).
|
||||
active_anon - # of bytes of anonymous and swap cache memory on active
|
||||
lru list.
|
||||
swap - # of bytes of swap usage
|
||||
inactive_anon - # of bytes of anonymous memory and swap cache memory on
|
||||
inactive lru list.
|
||||
active_file - # of bytes of file-backed memory on active lru list.
|
||||
inactive_file - # of bytes of file-backed memory on inactive lru list.
|
||||
LRU list.
|
||||
active_anon - # of bytes of anonymous and swap cache memory on active
|
||||
inactive LRU list.
|
||||
inactive_file - # of bytes of file-backed memory on inactive LRU list.
|
||||
active_file - # of bytes of file-backed memory on active LRU list.
|
||||
unevictable - # of bytes of memory that cannot be reclaimed (mlocked etc).
|
||||
|
||||
The following additional stats are dependent on CONFIG_DEBUG_VM.
|
||||
# status considering hierarchy (see memory.use_hierarchy settings)
|
||||
|
||||
hierarchical_memory_limit - # of bytes of memory limit with regard to hierarchy
|
||||
under which the memory cgroup is
|
||||
hierarchical_memsw_limit - # of bytes of memory+swap limit with regard to
|
||||
hierarchy under which memory cgroup is.
|
||||
|
||||
total_cache - sum of all children's "cache"
|
||||
total_rss - sum of all children's "rss"
|
||||
total_mapped_file - sum of all children's "cache"
|
||||
total_pgpgin - sum of all children's "pgpgin"
|
||||
total_pgpgout - sum of all children's "pgpgout"
|
||||
total_swap - sum of all children's "swap"
|
||||
total_inactive_anon - sum of all children's "inactive_anon"
|
||||
total_active_anon - sum of all children's "active_anon"
|
||||
total_inactive_file - sum of all children's "inactive_file"
|
||||
total_active_file - sum of all children's "active_file"
|
||||
total_unevictable - sum of all children's "unevictable"
|
||||
|
||||
# The following additional stats are dependent on CONFIG_DEBUG_VM.
|
||||
|
||||
inactive_ratio - VM internal parameter. (see mm/page_alloc.c)
|
||||
recent_rotated_anon - VM internal parameter. (see mm/vmscan.c)
|
||||
|
@ -327,24 +421,37 @@ recent_scanned_anon - VM internal parameter. (see mm/vmscan.c)
|
|||
recent_scanned_file - VM internal parameter. (see mm/vmscan.c)
|
||||
|
||||
Memo:
|
||||
recent_rotated means recent frequency of lru rotation.
|
||||
recent_scanned means recent # of scans to lru.
|
||||
recent_rotated means recent frequency of LRU rotation.
|
||||
recent_scanned means recent # of scans to LRU.
|
||||
showing for better debug please see the code for meanings.
|
||||
|
||||
Note:
|
||||
Only anonymous and swap cache memory is listed as part of 'rss' stat.
|
||||
This should not be confused with the true 'resident set size' or the
|
||||
amount of physical memory used by the cgroup. Per-cgroup rss
|
||||
accounting is not done yet.
|
||||
amount of physical memory used by the cgroup.
|
||||
'rss + file_mapped" will give you resident set size of cgroup.
|
||||
(Note: file and shmem may be shared among other cgroups. In that case,
|
||||
file_mapped is accounted only when the memory cgroup is owner of page
|
||||
cache.)
|
||||
|
||||
5.3 swappiness
|
||||
Similar to /proc/sys/vm/swappiness, but affecting a hierarchy of groups only.
|
||||
|
||||
Following cgroups' swappiness can't be changed.
|
||||
- root cgroup (uses /proc/sys/vm/swappiness).
|
||||
- a cgroup which uses hierarchy and it has child cgroup.
|
||||
- a cgroup which uses hierarchy and not the root of hierarchy.
|
||||
Similar to /proc/sys/vm/swappiness, but affecting a hierarchy of groups only.
|
||||
|
||||
Following cgroups' swappiness can't be changed.
|
||||
- root cgroup (uses /proc/sys/vm/swappiness).
|
||||
- a cgroup which uses hierarchy and it has other cgroup(s) below it.
|
||||
- a cgroup which uses hierarchy and not the root of hierarchy.
|
||||
|
||||
5.4 failcnt
|
||||
|
||||
A memory cgroup provides memory.failcnt and memory.memsw.failcnt files.
|
||||
This failcnt(== failure count) shows the number of times that a usage counter
|
||||
hit its limit. When a memory cgroup hits a limit, failcnt increases and
|
||||
memory under it will be reclaimed.
|
||||
|
||||
You can reset failcnt by writing 0 to failcnt file.
|
||||
# echo 0 > .../memory.failcnt
|
||||
|
||||
6. Hierarchy support
|
||||
|
||||
|
@ -363,13 +470,13 @@ hierarchy
|
|||
|
||||
In the diagram above, with hierarchical accounting enabled, all memory
|
||||
usage of e, is accounted to its ancestors up until the root (i.e, c and root),
|
||||
that has memory.use_hierarchy enabled. If one of the ancestors goes over its
|
||||
that has memory.use_hierarchy enabled. If one of the ancestors goes over its
|
||||
limit, the reclaim algorithm reclaims from the tasks in the ancestor and the
|
||||
children of the ancestor.
|
||||
|
||||
6.1 Enabling hierarchical accounting and reclaim
|
||||
|
||||
The memory controller by default disables the hierarchy feature. Support
|
||||
A memory cgroup by default disables the hierarchy feature. Support
|
||||
can be enabled by writing 1 to memory.use_hierarchy file of the root cgroup
|
||||
|
||||
# echo 1 > memory.use_hierarchy
|
||||
|
@ -379,10 +486,10 @@ The feature can be disabled by
|
|||
# echo 0 > memory.use_hierarchy
|
||||
|
||||
NOTE1: Enabling/disabling will fail if the cgroup already has other
|
||||
cgroups created below it.
|
||||
cgroups created below it.
|
||||
|
||||
NOTE2: When panic_on_oom is set to "2", the whole system will panic in
|
||||
case of an oom event in any cgroup.
|
||||
case of an OOM event in any cgroup.
|
||||
|
||||
7. Soft limits
|
||||
|
||||
|
@ -392,7 +499,7 @@ is to allow control groups to use as much of the memory as needed, provided
|
|||
a. There is no memory contention
|
||||
b. They do not exceed their hard limit
|
||||
|
||||
When the system detects memory contention or low memory control groups
|
||||
When the system detects memory contention or low memory, control groups
|
||||
are pushed back to their soft limits. If the soft limit of each control
|
||||
group is very high, they are pushed back as much as possible to make
|
||||
sure that one control group does not starve the others of memory.
|
||||
|
@ -406,7 +513,7 @@ it gets invoked from balance_pgdat (kswapd).
|
|||
7.1 Interface
|
||||
|
||||
Soft limits can be setup by using the following commands (in this example we
|
||||
assume a soft limit of 256 megabytes)
|
||||
assume a soft limit of 256 MiB)
|
||||
|
||||
# echo 256M > memory.soft_limit_in_bytes
|
||||
|
||||
|
@ -442,7 +549,7 @@ Note: Charges are moved only when you move mm->owner, IOW, a leader of a thread
|
|||
Note: If we cannot find enough space for the task in the destination cgroup, we
|
||||
try to make space by reclaiming memory. Task migration may fail if we
|
||||
cannot make enough space.
|
||||
Note: It can take several seconds if you move charges in giga bytes order.
|
||||
Note: It can take several seconds if you move charges much.
|
||||
|
||||
And if you want disable it again:
|
||||
|
||||
|
@ -451,21 +558,27 @@ And if you want disable it again:
|
|||
8.2 Type of charges which can be move
|
||||
|
||||
Each bits of move_charge_at_immigrate has its own meaning about what type of
|
||||
charges should be moved.
|
||||
charges should be moved. But in any cases, it must be noted that an account of
|
||||
a page or a swap can be moved only when it is charged to the task's current(old)
|
||||
memory cgroup.
|
||||
|
||||
bit | what type of charges would be moved ?
|
||||
-----+------------------------------------------------------------------------
|
||||
0 | A charge of an anonymous page(or swap of it) used by the target task.
|
||||
| Those pages and swaps must be used only by the target task. You must
|
||||
| enable Swap Extension(see 2.4) to enable move of swap charges.
|
||||
|
||||
Note: Those pages and swaps must be charged to the old cgroup.
|
||||
Note: More type of pages(e.g. file cache, shmem,) will be supported by other
|
||||
bits in future.
|
||||
-----+------------------------------------------------------------------------
|
||||
1 | A charge of file pages(normal file, tmpfs file(e.g. ipc shared memory)
|
||||
| and swaps of tmpfs file) mmapped by the target task. Unlike the case of
|
||||
| anonymous pages, file pages(and swaps) in the range mmapped by the task
|
||||
| will be moved even if the task hasn't done page fault, i.e. they might
|
||||
| not be the task's "RSS", but other task's "RSS" that maps the same file.
|
||||
| And mapcount of the page is ignored(the page can be moved even if
|
||||
| page_mapcount(page) > 1). You must enable Swap Extension(see 2.4) to
|
||||
| enable move of swap charges.
|
||||
|
||||
8.3 TODO
|
||||
|
||||
- Add support for other types of pages(e.g. file cache, shmem, etc.).
|
||||
- Implement madvise(2) to let users decide the vma to be moved or not to be
|
||||
moved.
|
||||
- All of moving charge operations are done under cgroup_mutex. It's not good
|
||||
|
@ -473,22 +586,61 @@ Note: More type of pages(e.g. file cache, shmem,) will be supported by other
|
|||
|
||||
9. Memory thresholds
|
||||
|
||||
Memory controler implements memory thresholds using cgroups notification
|
||||
Memory cgroup implements memory thresholds using cgroups notification
|
||||
API (see cgroups.txt). It allows to register multiple memory and memsw
|
||||
thresholds and gets notifications when it crosses.
|
||||
|
||||
To register a threshold application need:
|
||||
- create an eventfd using eventfd(2);
|
||||
- open memory.usage_in_bytes or memory.memsw.usage_in_bytes;
|
||||
- write string like "<event_fd> <memory.usage_in_bytes> <threshold>" to
|
||||
cgroup.event_control.
|
||||
- create an eventfd using eventfd(2);
|
||||
- open memory.usage_in_bytes or memory.memsw.usage_in_bytes;
|
||||
- write string like "<event_fd> <fd of memory.usage_in_bytes> <threshold>" to
|
||||
cgroup.event_control.
|
||||
|
||||
Application will be notified through eventfd when memory usage crosses
|
||||
threshold in any direction.
|
||||
|
||||
It's applicable for root and non-root cgroup.
|
||||
|
||||
10. TODO
|
||||
10. OOM Control
|
||||
|
||||
memory.oom_control file is for OOM notification and other controls.
|
||||
|
||||
Memory cgroup implements OOM notifier using cgroup notification
|
||||
API (See cgroups.txt). It allows to register multiple OOM notification
|
||||
delivery and gets notification when OOM happens.
|
||||
|
||||
To register a notifier, application need:
|
||||
- create an eventfd using eventfd(2)
|
||||
- open memory.oom_control file
|
||||
- write string like "<event_fd> <fd of memory.oom_control>" to
|
||||
cgroup.event_control
|
||||
|
||||
Application will be notified through eventfd when OOM happens.
|
||||
OOM notification doesn't work for root cgroup.
|
||||
|
||||
You can disable OOM-killer by writing "1" to memory.oom_control file, as:
|
||||
|
||||
#echo 1 > memory.oom_control
|
||||
|
||||
This operation is only allowed to the top cgroup of sub-hierarchy.
|
||||
If OOM-killer is disabled, tasks under cgroup will hang/sleep
|
||||
in memory cgroup's OOM-waitqueue when they request accountable memory.
|
||||
|
||||
For running them, you have to relax the memory cgroup's OOM status by
|
||||
* enlarge limit or reduce usage.
|
||||
To reduce usage,
|
||||
* kill some tasks.
|
||||
* move some tasks to other group with account migration.
|
||||
* remove some files (on tmpfs?)
|
||||
|
||||
Then, stopped tasks will work again.
|
||||
|
||||
At reading, current status of OOM is shown.
|
||||
oom_kill_disable 0 or 1 (if 1, oom-killer is disabled)
|
||||
under_oom 0 or 1 (if 1, the memory cgroup is under OOM, tasks may
|
||||
be stopped.)
|
||||
|
||||
11. TODO
|
||||
|
||||
1. Add support for accounting huge pages (as a separate controller)
|
||||
2. Make per-cgroup scanner reclaim not-shared pages first
|
||||
|
|
|
@ -646,3 +646,13 @@ Who: Thomas Gleixner <tglx@linutronix.de>
|
|||
|
||||
----------------------------
|
||||
|
||||
What: old ieee1394 subsystem (CONFIG_IEEE1394)
|
||||
When: 2.6.37
|
||||
Files: drivers/ieee1394/ except init_ohci1394_dma.c
|
||||
Why: superseded by drivers/firewire/ (CONFIG_FIREWIRE) which offers more
|
||||
features, better performance, and better security, all with smaller
|
||||
and more modern code base
|
||||
Who: Stefan Richter <stefanr@s5r6.in-berlin.de>
|
||||
|
||||
----------------------------
|
||||
|
||||
|
|
|
@ -380,7 +380,7 @@ prototypes:
|
|||
int (*open) (struct inode *, struct file *);
|
||||
int (*flush) (struct file *);
|
||||
int (*release) (struct inode *, struct file *);
|
||||
int (*fsync) (struct file *, struct dentry *, int datasync);
|
||||
int (*fsync) (struct file *, int datasync);
|
||||
int (*aio_fsync) (struct kiocb *, int datasync);
|
||||
int (*fasync) (int, struct file *, int);
|
||||
int (*lock) (struct file *, int, struct file_lock *);
|
||||
|
@ -429,8 +429,9 @@ check_flags: no
|
|||
implementations. If your fs is not using generic_file_llseek, you
|
||||
need to acquire and release the appropriate locks in your ->llseek().
|
||||
For many filesystems, it is probably safe to acquire the inode
|
||||
mutex. Note some filesystems (i.e. remote ones) provide no
|
||||
protection for i_size so you will need to use the BKL.
|
||||
mutex or just to use i_size_read() instead.
|
||||
Note: this does not protect the file->f_pos against concurrent modifications
|
||||
since this is something the userspace has to take care about.
|
||||
|
||||
Note: ext2_release() was *the* source of contention on fs-intensive
|
||||
loads and dropping BKL on ->release() helps to get rid of that (we still
|
||||
|
|
|
@ -401,11 +401,16 @@ otherwise noted.
|
|||
started might not be in the page cache at the end of the
|
||||
walk).
|
||||
|
||||
truncate: called by the VFS to change the size of a file. The
|
||||
truncate: Deprecated. This will not be called if ->setsize is defined.
|
||||
Called by the VFS to change the size of a file. The
|
||||
i_size field of the inode is set to the desired size by the
|
||||
VFS before this method is called. This method is called by
|
||||
the truncate(2) system call and related functionality.
|
||||
|
||||
Note: ->truncate and vmtruncate are deprecated. Do not add new
|
||||
instances/calls of these. Filesystems should be converted to do their
|
||||
truncate sequence via ->setattr().
|
||||
|
||||
permission: called by the VFS to check for access rights on a POSIX-like
|
||||
filesystem.
|
||||
|
||||
|
@ -729,7 +734,7 @@ struct file_operations {
|
|||
int (*open) (struct inode *, struct file *);
|
||||
int (*flush) (struct file *);
|
||||
int (*release) (struct inode *, struct file *);
|
||||
int (*fsync) (struct file *, struct dentry *, int datasync);
|
||||
int (*fsync) (struct file *, int datasync);
|
||||
int (*aio_fsync) (struct kiocb *, int datasync);
|
||||
int (*fasync) (int, struct file *, int);
|
||||
int (*lock) (struct file *, int, struct file_lock *);
|
||||
|
|
|
@ -9,11 +9,15 @@ Supported chips:
|
|||
* SMSC SCH3112, SCH3114, SCH3116
|
||||
Prefix: 'sch311x'
|
||||
Addresses scanned: none, address read from Super-I/O config space
|
||||
Datasheet: http://www.nuhorizons.com/FeaturedProducts/Volume1/SMSC/311x.pdf
|
||||
Datasheet: Available on the Internet
|
||||
* SMSC SCH5027
|
||||
Prefix: 'sch5027'
|
||||
Addresses scanned: I2C 0x2c, 0x2d, 0x2e
|
||||
Datasheet: Provided by SMSC upon request and under NDA
|
||||
* SMSC SCH5127
|
||||
Prefix: 'sch5127'
|
||||
Addresses scanned: none, address read from Super-I/O config space
|
||||
Datasheet: Provided by SMSC upon request and under NDA
|
||||
|
||||
Authors:
|
||||
Juerg Haefliger <juergh@gmail.com>
|
||||
|
@ -36,8 +40,8 @@ Description
|
|||
-----------
|
||||
|
||||
This driver implements support for the hardware monitoring capabilities of the
|
||||
SMSC DME1737 and Asus A8000 (which are the same), SMSC SCH5027, and SMSC
|
||||
SCH311x Super-I/O chips. These chips feature monitoring of 3 temp sensors
|
||||
SMSC DME1737 and Asus A8000 (which are the same), SMSC SCH5027, SCH311x,
|
||||
and SCH5127 Super-I/O chips. These chips feature monitoring of 3 temp sensors
|
||||
temp[1-3] (2 remote diodes and 1 internal), 7 voltages in[0-6] (6 external and
|
||||
1 internal) and up to 6 fan speeds fan[1-6]. Additionally, the chips implement
|
||||
up to 5 PWM outputs pwm[1-3,5-6] for controlling fan speeds both manually and
|
||||
|
@ -48,14 +52,14 @@ Fan[3-6] and pwm[3,5-6] are optional features and their availability depends on
|
|||
the configuration of the chip. The driver will detect which features are
|
||||
present during initialization and create the sysfs attributes accordingly.
|
||||
|
||||
For the SCH311x, fan[1-3] and pwm[1-3] are always present and fan[4-6] and
|
||||
pwm[5-6] don't exist.
|
||||
For the SCH311x and SCH5127, fan[1-3] and pwm[1-3] are always present and
|
||||
fan[4-6] and pwm[5-6] don't exist.
|
||||
|
||||
The hardware monitoring features of the DME1737, A8000, and SCH5027 are only
|
||||
accessible via SMBus, while the SCH311x only provides access via the ISA bus.
|
||||
The driver will therefore register itself as an I2C client driver if it detects
|
||||
a DME1737, A8000, or SCH5027 and as a platform driver if it detects a SCH311x
|
||||
chip.
|
||||
accessible via SMBus, while the SCH311x and SCH5127 only provide access via
|
||||
the ISA bus. The driver will therefore register itself as an I2C client driver
|
||||
if it detects a DME1737, A8000, or SCH5027 and as a platform driver if it
|
||||
detects a SCH311x or SCH5127 chip.
|
||||
|
||||
|
||||
Voltage Monitoring
|
||||
|
@ -76,7 +80,7 @@ DME1737, A8000:
|
|||
in6: Vbat (+3.0V) 0V - 4.38V
|
||||
|
||||
SCH311x:
|
||||
in0: +2.5V 0V - 6.64V
|
||||
in0: +2.5V 0V - 3.32V
|
||||
in1: Vccp (processor core) 0V - 2V
|
||||
in2: VCC (internal +3.3V) 0V - 4.38V
|
||||
in3: +5V 0V - 6.64V
|
||||
|
@ -93,6 +97,15 @@ SCH5027:
|
|||
in5: VTR (+3.3V standby) 0V - 4.38V
|
||||
in6: Vbat (+3.0V) 0V - 4.38V
|
||||
|
||||
SCH5127:
|
||||
in0: +2.5 0V - 3.32V
|
||||
in1: Vccp (processor core) 0V - 3V
|
||||
in2: VCC (internal +3.3V) 0V - 4.38V
|
||||
in3: V2_IN 0V - 1.5V
|
||||
in4: V1_IN 0V - 1.5V
|
||||
in5: VTR (+3.3V standby) 0V - 4.38V
|
||||
in6: Vbat (+3.0V) 0V - 4.38V
|
||||
|
||||
Each voltage input has associated min and max limits which trigger an alarm
|
||||
when crossed.
|
||||
|
||||
|
@ -293,3 +306,21 @@ pwm[1-3]_auto_point1_pwm RW Auto PWM pwm point. Auto_point1 is the
|
|||
pwm[1-3]_auto_point2_pwm RO Auto PWM pwm point. Auto_point2 is the
|
||||
full-speed duty-cycle which is hard-
|
||||
wired to 255 (100% duty-cycle).
|
||||
|
||||
Chip Differences
|
||||
----------------
|
||||
|
||||
Feature dme1737 sch311x sch5027 sch5127
|
||||
-------------------------------------------------------
|
||||
temp[1-3]_offset yes yes
|
||||
vid yes
|
||||
zone3 yes yes yes
|
||||
zone[1-3]_hyst yes yes
|
||||
pwm min/off yes yes
|
||||
fan3 opt yes opt yes
|
||||
pwm3 opt yes opt yes
|
||||
fan4 opt opt
|
||||
fan5 opt opt
|
||||
pwm5 opt opt
|
||||
fan6 opt opt
|
||||
pwm6 opt opt
|
||||
|
|
|
@ -7,6 +7,11 @@ Supported chips:
|
|||
Addresses scanned: I2C 0x4c
|
||||
Datasheet: Publicly available at the National Semiconductor website
|
||||
http://www.national.com/pf/LM/LM63.html
|
||||
* National Semiconductor LM64
|
||||
Prefix: 'lm64'
|
||||
Addresses scanned: I2C 0x18 and 0x4e
|
||||
Datasheet: Publicly available at the National Semiconductor website
|
||||
http://www.national.com/pf/LM/LM64.html
|
||||
|
||||
Author: Jean Delvare <khali@linux-fr.org>
|
||||
|
||||
|
@ -55,3 +60,5 @@ The lm63 driver will not update its values more frequently than every
|
|||
second; reading them more often will do no harm, but will return 'old'
|
||||
values.
|
||||
|
||||
The LM64 is effectively an LM63 with GPIO lines. The driver does not
|
||||
support these GPIO lines at present.
|
||||
|
|
|
@ -72,9 +72,7 @@ in6_min_alarm 5v output undervoltage alarm
|
|||
in7_min_alarm 3v output undervoltage alarm
|
||||
in8_min_alarm Vee (-12v) output undervoltage alarm
|
||||
|
||||
in9_input GPIO #1 voltage data
|
||||
in10_input GPIO #2 voltage data
|
||||
in11_input GPIO #3 voltage data
|
||||
in9_input GPIO voltage data
|
||||
|
||||
power1_input 12v power usage (mW)
|
||||
power2_input 5v power usage (mW)
|
||||
|
|
|
@ -80,9 +80,9 @@ All entries (except name) are optional, and should only be created in a
|
|||
given driver if the chip has the feature.
|
||||
|
||||
|
||||
********
|
||||
* Name *
|
||||
********
|
||||
*********************
|
||||
* Global attributes *
|
||||
*********************
|
||||
|
||||
name The chip name.
|
||||
This should be a short, lowercase string, not containing
|
||||
|
@ -91,6 +91,13 @@ name The chip name.
|
|||
I2C devices get this attribute created automatically.
|
||||
RO
|
||||
|
||||
update_rate The rate at which the chip will update readings.
|
||||
Unit: millisecond
|
||||
RW
|
||||
Some devices have a variable update rate. This attribute
|
||||
can be used to change the update rate to the desired
|
||||
frequency.
|
||||
|
||||
|
||||
************
|
||||
* Voltages *
|
||||
|
|
26
Documentation/hwmon/tmp102
Normal file
26
Documentation/hwmon/tmp102
Normal file
|
@ -0,0 +1,26 @@
|
|||
Kernel driver tmp102
|
||||
====================
|
||||
|
||||
Supported chips:
|
||||
* Texas Instruments TMP102
|
||||
Prefix: 'tmp102'
|
||||
Addresses scanned: none
|
||||
Datasheet: http://focus.ti.com/docs/prod/folders/print/tmp102.html
|
||||
|
||||
Author:
|
||||
Steven King <sfking@fdwdc.com>
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
The Texas Instruments TMP102 implements one temperature sensor. Limits can be
|
||||
set through the Overtemperature Shutdown register and Hysteresis register. The
|
||||
sensor is accurate to 0.5 degree over the range of -25 to +85 C, and to 1.0
|
||||
degree from -40 to +125 C. Resolution of the sensor is 0.0625 degree. The
|
||||
operating temperature has a minimum of -55 C and a maximum of +150 C.
|
||||
|
||||
The TMP102 has a programmable update rate that can select between 8, 4, 1, and
|
||||
0.5 Hz. (Currently the driver only supports the default of 4 Hz).
|
||||
|
||||
The driver provides the common sysfs-interface for temperatures (see
|
||||
Documentation/hwmon/sysfs-interface under Temperatures).
|
|
@ -145,11 +145,10 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||
|
||||
acpi= [HW,ACPI,X86]
|
||||
Advanced Configuration and Power Interface
|
||||
Format: { force | off | ht | strict | noirq | rsdt }
|
||||
Format: { force | off | strict | noirq | rsdt }
|
||||
force -- enable ACPI if default was off
|
||||
off -- disable ACPI if default was on
|
||||
noirq -- do not use ACPI for IRQ routing
|
||||
ht -- run only enough ACPI to enable Hyper Threading
|
||||
strict -- Be less tolerant of platforms that are not
|
||||
strictly ACPI specification compliant.
|
||||
rsdt -- prefer RSDT over (default) XSDT
|
||||
|
@ -758,6 +757,10 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||
Default value is 0.
|
||||
Value can be changed at runtime via /selinux/enforce.
|
||||
|
||||
erst_disable [ACPI]
|
||||
Disable Error Record Serialization Table (ERST)
|
||||
support.
|
||||
|
||||
ether= [HW,NET] Ethernet cards parameters
|
||||
This option is obsoleted by the "netdev=" option, which
|
||||
has equivalent usage. See its documentation for details.
|
||||
|
@ -852,6 +855,11 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||
hd= [EIDE] (E)IDE hard drive subsystem geometry
|
||||
Format: <cyl>,<head>,<sect>
|
||||
|
||||
hest_disable [ACPI]
|
||||
Disable Hardware Error Source Table (HEST) support;
|
||||
corresponding firmware-first mode error processing
|
||||
logic will be disabled.
|
||||
|
||||
highmem=nn[KMG] [KNL,BOOT] forces the highmem zone to have an exact
|
||||
size of <nn>. This works even on boxes that have no
|
||||
highmem otherwise. This also works to reduce highmem
|
||||
|
@ -1252,6 +1260,8 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||
* nohrst, nosrst, norst: suppress hard, soft
|
||||
and both resets.
|
||||
|
||||
* dump_id: dump IDENTIFY data.
|
||||
|
||||
If there are multiple matching configurations changing
|
||||
the same attribute, the last one is used.
|
||||
|
||||
|
|
|
@ -1,41 +1,149 @@
|
|||
Started Nov 1999 by Kanoj Sarcar <kanoj@sgi.com>
|
||||
|
||||
The intent of this file is to have an uptodate, running commentary
|
||||
from different people about NUMA specific code in the Linux vm.
|
||||
What is NUMA?
|
||||
|
||||
What is NUMA? It is an architecture where the memory access times
|
||||
for different regions of memory from a given processor varies
|
||||
according to the "distance" of the memory region from the processor.
|
||||
Each region of memory to which access times are the same from any
|
||||
cpu, is called a node. On such architectures, it is beneficial if
|
||||
the kernel tries to minimize inter node communications. Schemes
|
||||
for this range from kernel text and read-only data replication
|
||||
across nodes, and trying to house all the data structures that
|
||||
key components of the kernel need on memory on that node.
|
||||
This question can be answered from a couple of perspectives: the
|
||||
hardware view and the Linux software view.
|
||||
|
||||
Currently, all the numa support is to provide efficient handling
|
||||
of widely discontiguous physical memory, so architectures which
|
||||
are not NUMA but can have huge holes in the physical address space
|
||||
can use the same code. All this code is bracketed by CONFIG_DISCONTIGMEM.
|
||||
From the hardware perspective, a NUMA system is a computer platform that
|
||||
comprises multiple components or assemblies each of which may contain 0
|
||||
or more CPUs, local memory, and/or IO buses. For brevity and to
|
||||
disambiguate the hardware view of these physical components/assemblies
|
||||
from the software abstraction thereof, we'll call the components/assemblies
|
||||
'cells' in this document.
|
||||
|
||||
The initial port includes NUMAizing the bootmem allocator code by
|
||||
encapsulating all the pieces of information into a bootmem_data_t
|
||||
structure. Node specific calls have been added to the allocator.
|
||||
In theory, any platform which uses the bootmem allocator should
|
||||
be able to put the bootmem and mem_map data structures anywhere
|
||||
it deems best.
|
||||
Each of the 'cells' may be viewed as an SMP [symmetric multi-processor] subset
|
||||
of the system--although some components necessary for a stand-alone SMP system
|
||||
may not be populated on any given cell. The cells of the NUMA system are
|
||||
connected together with some sort of system interconnect--e.g., a crossbar or
|
||||
point-to-point link are common types of NUMA system interconnects. Both of
|
||||
these types of interconnects can be aggregated to create NUMA platforms with
|
||||
cells at multiple distances from other cells.
|
||||
|
||||
Each node's page allocation data structures have also been encapsulated
|
||||
into a pg_data_t. The bootmem_data_t is just one part of this. To
|
||||
make the code look uniform between NUMA and regular UMA platforms,
|
||||
UMA platforms have a statically allocated pg_data_t too (contig_page_data).
|
||||
For the sake of uniformity, the function num_online_nodes() is also defined
|
||||
for all platforms. As we run benchmarks, we might decide to NUMAize
|
||||
more variables like low_on_memory, nr_free_pages etc into the pg_data_t.
|
||||
For Linux, the NUMA platforms of interest are primarily what is known as Cache
|
||||
Coherent NUMA or ccNUMA systems. With ccNUMA systems, all memory is visible
|
||||
to and accessible from any CPU attached to any cell and cache coherency
|
||||
is handled in hardware by the processor caches and/or the system interconnect.
|
||||
|
||||
The NUMA aware page allocation code currently tries to allocate pages
|
||||
from different nodes in a round robin manner. This will be changed to
|
||||
do concentratic circle search, starting from current node, once the
|
||||
NUMA port achieves more maturity. The call alloc_pages_node has been
|
||||
added, so that drivers can make the call and not worry about whether
|
||||
it is running on a NUMA or UMA platform.
|
||||
Memory access time and effective memory bandwidth varies depending on how far
|
||||
away the cell containing the CPU or IO bus making the memory access is from the
|
||||
cell containing the target memory. For example, access to memory by CPUs
|
||||
attached to the same cell will experience faster access times and higher
|
||||
bandwidths than accesses to memory on other, remote cells. NUMA platforms
|
||||
can have cells at multiple remote distances from any given cell.
|
||||
|
||||
Platform vendors don't build NUMA systems just to make software developers'
|
||||
lives interesting. Rather, this architecture is a means to provide scalable
|
||||
memory bandwidth. However, to achieve scalable memory bandwidth, system and
|
||||
application software must arrange for a large majority of the memory references
|
||||
[cache misses] to be to "local" memory--memory on the same cell, if any--or
|
||||
to the closest cell with memory.
|
||||
|
||||
This leads to the Linux software view of a NUMA system:
|
||||
|
||||
Linux divides the system's hardware resources into multiple software
|
||||
abstractions called "nodes". Linux maps the nodes onto the physical cells
|
||||
of the hardware platform, abstracting away some of the details for some
|
||||
architectures. As with physical cells, software nodes may contain 0 or more
|
||||
CPUs, memory and/or IO buses. And, again, memory accesses to memory on
|
||||
"closer" nodes--nodes that map to closer cells--will generally experience
|
||||
faster access times and higher effective bandwidth than accesses to more
|
||||
remote cells.
|
||||
|
||||
For some architectures, such as x86, Linux will "hide" any node representing a
|
||||
physical cell that has no memory attached, and reassign any CPUs attached to
|
||||
that cell to a node representing a cell that does have memory. Thus, on
|
||||
these architectures, one cannot assume that all CPUs that Linux associates with
|
||||
a given node will see the same local memory access times and bandwidth.
|
||||
|
||||
In addition, for some architectures, again x86 is an example, Linux supports
|
||||
the emulation of additional nodes. For NUMA emulation, linux will carve up
|
||||
the existing nodes--or the system memory for non-NUMA platforms--into multiple
|
||||
nodes. Each emulated node will manage a fraction of the underlying cells'
|
||||
physical memory. NUMA emluation is useful for testing NUMA kernel and
|
||||
application features on non-NUMA platforms, and as a sort of memory resource
|
||||
management mechanism when used together with cpusets.
|
||||
[see Documentation/cgroups/cpusets.txt]
|
||||
|
||||
For each node with memory, Linux constructs an independent memory management
|
||||
subsystem, complete with its own free page lists, in-use page lists, usage
|
||||
statistics and locks to mediate access. In addition, Linux constructs for
|
||||
each memory zone [one or more of DMA, DMA32, NORMAL, HIGH_MEMORY, MOVABLE],
|
||||
an ordered "zonelist". A zonelist specifies the zones/nodes to visit when a
|
||||
selected zone/node cannot satisfy the allocation request. This situation,
|
||||
when a zone has no available memory to satisfy a request, is called
|
||||
"overflow" or "fallback".
|
||||
|
||||
Because some nodes contain multiple zones containing different types of
|
||||
memory, Linux must decide whether to order the zonelists such that allocations
|
||||
fall back to the same zone type on a different node, or to a different zone
|
||||
type on the same node. This is an important consideration because some zones,
|
||||
such as DMA or DMA32, represent relatively scarce resources. Linux chooses
|
||||
a default zonelist order based on the sizes of the various zone types relative
|
||||
to the total memory of the node and the total memory of the system. The
|
||||
default zonelist order may be overridden using the numa_zonelist_order kernel
|
||||
boot parameter or sysctl. [see Documentation/kernel-parameters.txt and
|
||||
Documentation/sysctl/vm.txt]
|
||||
|
||||
By default, Linux will attempt to satisfy memory allocation requests from the
|
||||
node to which the CPU that executes the request is assigned. Specifically,
|
||||
Linux will attempt to allocate from the first node in the appropriate zonelist
|
||||
for the node where the request originates. This is called "local allocation."
|
||||
If the "local" node cannot satisfy the request, the kernel will examine other
|
||||
nodes' zones in the selected zonelist looking for the first zone in the list
|
||||
that can satisfy the request.
|
||||
|
||||
Local allocation will tend to keep subsequent access to the allocated memory
|
||||
"local" to the underlying physical resources and off the system interconnect--
|
||||
as long as the task on whose behalf the kernel allocated some memory does not
|
||||
later migrate away from that memory. The Linux scheduler is aware of the
|
||||
NUMA topology of the platform--embodied in the "scheduling domains" data
|
||||
structures [see Documentation/scheduler/sched-domains.txt]--and the scheduler
|
||||
attempts to minimize task migration to distant scheduling domains. However,
|
||||
the scheduler does not take a task's NUMA footprint into account directly.
|
||||
Thus, under sufficient imbalance, tasks can migrate between nodes, remote
|
||||
from their initial node and kernel data structures.
|
||||
|
||||
System administrators and application designers can restrict a task's migration
|
||||
to improve NUMA locality using various CPU affinity command line interfaces,
|
||||
such as taskset(1) and numactl(1), and program interfaces such as
|
||||
sched_setaffinity(2). Further, one can modify the kernel's default local
|
||||
allocation behavior using Linux NUMA memory policy.
|
||||
[see Documentation/vm/numa_memory_policy.]
|
||||
|
||||
System administrators can restrict the CPUs and nodes' memories that a non-
|
||||
privileged user can specify in the scheduling or NUMA commands and functions
|
||||
using control groups and CPUsets. [see Documentation/cgroups/CPUsets.txt]
|
||||
|
||||
On architectures that do not hide memoryless nodes, Linux will include only
|
||||
zones [nodes] with memory in the zonelists. This means that for a memoryless
|
||||
node the "local memory node"--the node of the first zone in CPU's node's
|
||||
zonelist--will not be the node itself. Rather, it will be the node that the
|
||||
kernel selected as the nearest node with memory when it built the zonelists.
|
||||
So, default, local allocations will succeed with the kernel supplying the
|
||||
closest available memory. This is a consequence of the same mechanism that
|
||||
allows such allocations to fallback to other nearby nodes when a node that
|
||||
does contain memory overflows.
|
||||
|
||||
Some kernel allocations do not want or cannot tolerate this allocation fallback
|
||||
behavior. Rather they want to be sure they get memory from the specified node
|
||||
or get notified that the node has no free memory. This is usually the case when
|
||||
a subsystem allocates per CPU memory resources, for example.
|
||||
|
||||
A typical model for making such an allocation is to obtain the node id of the
|
||||
node to which the "current CPU" is attached using one of the kernel's
|
||||
numa_node_id() or CPU_to_node() functions and then request memory from only
|
||||
the node id returned. When such an allocation fails, the requesting subsystem
|
||||
may revert to its own fallback path. The slab kernel memory allocator is an
|
||||
example of this. Or, the subsystem may choose to disable or not to enable
|
||||
itself on allocation failure. The kernel profiling subsystem is an example of
|
||||
this.
|
||||
|
||||
If the architecture supports--does not hide--memoryless nodes, then CPUs
|
||||
attached to memoryless nodes would always incur the fallback path overhead
|
||||
or some subsystems would fail to initialize if they attempted to allocated
|
||||
memory exclusively from a node without memory. To support such
|
||||
architectures transparently, kernel subsystems can use the numa_mem_id()
|
||||
or cpu_to_mem() function to locate the "local memory node" for the calling or
|
||||
specified CPU. Again, this is the same node from which default, local page
|
||||
allocations will be attempted.
|
||||
|
|
16
MAINTAINERS
16
MAINTAINERS
|
@ -2887,6 +2887,13 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git
|
|||
S: Maintained
|
||||
F: drivers/input/
|
||||
|
||||
INTEL IDLE DRIVER
|
||||
M: Len Brown <lenb@kernel.org>
|
||||
L: linux-pm@lists.linux-foundation.org
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6.git
|
||||
S: Supported
|
||||
F: drivers/idle/intel_idle.c
|
||||
|
||||
INTEL FRAMEBUFFER DRIVER (excluding 810 and 815)
|
||||
M: Maik Broemme <mbroemme@plusserver.de>
|
||||
L: linux-fbdev@vger.kernel.org
|
||||
|
@ -4836,6 +4843,9 @@ W: http://www.ibm.com/developerworks/linux/linux390/
|
|||
S: Supported
|
||||
F: arch/s390/
|
||||
F: drivers/s390/
|
||||
F: fs/partitions/ibm.c
|
||||
F: Documentation/s390/
|
||||
F: Documentation/DocBook/s390*
|
||||
|
||||
S390 NETWORK DRIVERS
|
||||
M: Ursula Braun <ursula.braun@de.ibm.com>
|
||||
|
@ -5004,6 +5014,12 @@ L: linux-mmc@vger.kernel.org
|
|||
S: Maintained
|
||||
F: drivers/mmc/host/sdhci-s3c.c
|
||||
|
||||
SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) ST SPEAR DRIVER
|
||||
M: Viresh Kumar <viresh.kumar@st.com>
|
||||
L: linux-mmc@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/mmc/host/sdhci-spear.c
|
||||
|
||||
SECURITY SUBSYSTEM
|
||||
M: James Morris <jmorris@namei.org>
|
||||
L: linux-security-module@vger.kernel.org (suggested Cc:)
|
||||
|
|
4
Makefile
4
Makefile
|
@ -1,7 +1,7 @@
|
|||
VERSION = 2
|
||||
PATCHLEVEL = 6
|
||||
SUBLEVEL = 34
|
||||
EXTRAVERSION =
|
||||
SUBLEVEL = 35
|
||||
EXTRAVERSION = -rc1
|
||||
NAME = Sheep on Meth
|
||||
|
||||
# *DOCUMENTATION*
|
||||
|
|
|
@ -61,6 +61,9 @@ config ZONE_DMA
|
|||
config NEED_DMA_MAP_STATE
|
||||
def_bool y
|
||||
|
||||
config NEED_SG_DMA_LENGTH
|
||||
def_bool y
|
||||
|
||||
config GENERIC_ISA_DMA
|
||||
bool
|
||||
default y
|
||||
|
|
|
@ -1,24 +1,7 @@
|
|||
#ifndef _ALPHA_SCATTERLIST_H
|
||||
#define _ALPHA_SCATTERLIST_H
|
||||
|
||||
#include <asm/page.h>
|
||||
#include <asm/types.h>
|
||||
|
||||
struct scatterlist {
|
||||
#ifdef CONFIG_DEBUG_SG
|
||||
unsigned long sg_magic;
|
||||
#endif
|
||||
unsigned long page_link;
|
||||
unsigned int offset;
|
||||
|
||||
unsigned int length;
|
||||
|
||||
dma_addr_t dma_address;
|
||||
__u32 dma_length;
|
||||
};
|
||||
|
||||
#define sg_dma_address(sg) ((sg)->dma_address)
|
||||
#define sg_dma_len(sg) ((sg)->dma_length)
|
||||
#include <asm-generic/scatterlist.h>
|
||||
|
||||
#define ISA_DMA_THRESHOLD (~0UL)
|
||||
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.34
|
||||
# Sat May 22 03:17:31 2010
|
||||
# Fri May 28 19:15:48 2010
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_HAVE_PWM=y
|
||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||
CONFIG_GENERIC_GPIO=y
|
||||
CONFIG_GENERIC_TIME=y
|
||||
CONFIG_ARCH_USES_GETTIMEOFFSET=y
|
||||
CONFIG_HAVE_PROC_CPU=y
|
||||
CONFIG_NO_IOPORT=y
|
||||
CONFIG_GENERIC_HARDIRQS=y
|
||||
|
@ -35,6 +37,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
|
|||
CONFIG_LOCALVERSION=""
|
||||
CONFIG_LOCALVERSION_AUTO=y
|
||||
CONFIG_HAVE_KERNEL_GZIP=y
|
||||
CONFIG_HAVE_KERNEL_LZMA=y
|
||||
CONFIG_HAVE_KERNEL_LZO=y
|
||||
CONFIG_KERNEL_GZIP=y
|
||||
# CONFIG_KERNEL_BZIP2 is not set
|
||||
|
@ -186,9 +189,11 @@ CONFIG_MMU=y
|
|||
# CONFIG_ARCH_INTEGRATOR is not set
|
||||
# CONFIG_ARCH_REALVIEW is not set
|
||||
# CONFIG_ARCH_VERSATILE is not set
|
||||
# CONFIG_ARCH_VEXPRESS is not set
|
||||
# CONFIG_ARCH_AT91 is not set
|
||||
# CONFIG_ARCH_BCMRING is not set
|
||||
# CONFIG_ARCH_CLPS711X is not set
|
||||
# CONFIG_ARCH_CNS3XXX is not set
|
||||
# CONFIG_ARCH_GEMINI is not set
|
||||
# CONFIG_ARCH_EBSA110 is not set
|
||||
# CONFIG_ARCH_EP93XX is not set
|
||||
|
@ -224,7 +229,7 @@ CONFIG_ARCH_S3C2410=y
|
|||
# CONFIG_ARCH_S3C64XX is not set
|
||||
# CONFIG_ARCH_S5P6440 is not set
|
||||
# CONFIG_ARCH_S5P6442 is not set
|
||||
# CONFIG_ARCH_S5PC1XX is not set
|
||||
# CONFIG_ARCH_S5PC100 is not set
|
||||
# CONFIG_ARCH_S5PV210 is not set
|
||||
# CONFIG_ARCH_SHARK is not set
|
||||
# CONFIG_ARCH_LH7A40X is not set
|
||||
|
@ -233,6 +238,7 @@ CONFIG_ARCH_S3C2410=y
|
|||
# CONFIG_ARCH_NOMADIK is not set
|
||||
# CONFIG_ARCH_DAVINCI is not set
|
||||
# CONFIG_ARCH_OMAP is not set
|
||||
# CONFIG_PLAT_SPEAR is not set
|
||||
CONFIG_PLAT_SAMSUNG=y
|
||||
|
||||
#
|
||||
|
@ -243,11 +249,18 @@ CONFIG_S3C_BOOT_ERROR_RESET=y
|
|||
CONFIG_S3C_BOOT_UART_FORCE_FIFO=y
|
||||
CONFIG_S3C_LOWLEVEL_UART_PORT=0
|
||||
CONFIG_SAMSUNG_CLKSRC=y
|
||||
CONFIG_S3C_GPIO_CFG_S3C24XX=y
|
||||
CONFIG_S3C_GPIO_PULL_UPDOWN=y
|
||||
CONFIG_S3C_GPIO_PULL_UP=y
|
||||
CONFIG_SAMSUNG_GPIO_EXTRA=0
|
||||
CONFIG_S3C_GPIO_SPACE=0
|
||||
CONFIG_S3C_ADC=y
|
||||
CONFIG_S3C_DEV_HSMMC=y
|
||||
CONFIG_S3C_DEV_HSMMC1=y
|
||||
CONFIG_S3C_DEV_HWMON=y
|
||||
CONFIG_S3C_DEV_FB=y
|
||||
CONFIG_S3C_DEV_USB_HOST=y
|
||||
CONFIG_S3C_DEV_WDT=y
|
||||
CONFIG_S3C_DEV_NAND=y
|
||||
CONFIG_S3C_DMA=y
|
||||
|
||||
|
@ -260,6 +273,7 @@ CONFIG_PLAT_S3C24XX=y
|
|||
CONFIG_CPU_LLSERIAL_S3C2410=y
|
||||
CONFIG_CPU_LLSERIAL_S3C2440=y
|
||||
CONFIG_S3C2410_CLOCK=y
|
||||
CONFIG_S3C2443_CLOCK=y
|
||||
CONFIG_S3C24XX_DCLK=y
|
||||
CONFIG_S3C24XX_PWM=y
|
||||
CONFIG_S3C24XX_GPIO_EXTRA=128
|
||||
|
@ -270,6 +284,7 @@ CONFIG_S3C2410_DMA=y
|
|||
# CONFIG_S3C2410_DMA_DEBUG is not set
|
||||
CONFIG_MACH_SMDK=y
|
||||
CONFIG_S3C24XX_SIMTEC_AUDIO=y
|
||||
CONFIG_S3C2410_SETUP_TS=y
|
||||
|
||||
#
|
||||
# S3C2400 Machines
|
||||
|
@ -289,6 +304,7 @@ CONFIG_ARCH_H1940=y
|
|||
# CONFIG_H1940BT is not set
|
||||
CONFIG_PM_H1940=y
|
||||
CONFIG_MACH_N30=y
|
||||
CONFIG_MACH_N35=y
|
||||
CONFIG_ARCH_BAST=y
|
||||
CONFIG_MACH_OTOM=y
|
||||
CONFIG_MACH_AML_M5900=y
|
||||
|
@ -309,6 +325,13 @@ CONFIG_MACH_SMDK2413=y
|
|||
CONFIG_MACH_S3C2413=y
|
||||
CONFIG_MACH_SMDK2412=y
|
||||
CONFIG_MACH_VSTMS=y
|
||||
CONFIG_CPU_S3C2416=y
|
||||
CONFIG_S3C2416_DMA=y
|
||||
|
||||
#
|
||||
# S3C2416 Machines
|
||||
#
|
||||
CONFIG_MACH_SMDK2416=y
|
||||
CONFIG_CPU_S3C2440=y
|
||||
CONFIG_CPU_S3C2442=y
|
||||
CONFIG_CPU_S3C244X=y
|
||||
|
@ -320,9 +343,9 @@ CONFIG_S3C2440_DMA=y
|
|||
# S3C2440 and S3C2442 Machines
|
||||
#
|
||||
CONFIG_MACH_ANUBIS=y
|
||||
# CONFIG_MACH_NEO1973_GTA02 is not set
|
||||
CONFIG_MACH_NEO1973_GTA02=y
|
||||
CONFIG_MACH_OSIRIS=y
|
||||
# CONFIG_MACH_OSIRIS_DVS is not set
|
||||
CONFIG_MACH_OSIRIS_DVS=m
|
||||
CONFIG_MACH_RX3715=y
|
||||
CONFIG_ARCH_S3C2440=y
|
||||
CONFIG_MACH_NEXCODER_2440=y
|
||||
|
@ -330,6 +353,7 @@ CONFIG_SMDK2440_CPU2440=y
|
|||
CONFIG_SMDK2440_CPU2442=y
|
||||
CONFIG_MACH_AT2440EVB=y
|
||||
CONFIG_MACH_MINI2440=y
|
||||
CONFIG_MACH_RX1950=y
|
||||
CONFIG_CPU_S3C2443=y
|
||||
CONFIG_S3C2443_DMA=y
|
||||
|
||||
|
@ -410,6 +434,7 @@ CONFIG_ALIGNMENT_TRAP=y
|
|||
CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||
CONFIG_CMDLINE="root=/dev/hda1 ro init=/bin/bash console=ttySAC0"
|
||||
# CONFIG_CMDLINE_FORCE is not set
|
||||
# CONFIG_XIP_KERNEL is not set
|
||||
# CONFIG_KEXEC is not set
|
||||
|
||||
|
@ -509,7 +534,9 @@ CONFIG_TCP_CONG_ILLINOIS=m
|
|||
# CONFIG_DEFAULT_BIC is not set
|
||||
CONFIG_DEFAULT_CUBIC=y
|
||||
# CONFIG_DEFAULT_HTCP is not set
|
||||
# CONFIG_DEFAULT_HYBLA is not set
|
||||
# CONFIG_DEFAULT_VEGAS is not set
|
||||
# CONFIG_DEFAULT_VENO is not set
|
||||
# CONFIG_DEFAULT_WESTWOOD is not set
|
||||
# CONFIG_DEFAULT_RENO is not set
|
||||
CONFIG_DEFAULT_TCP_CONG="cubic"
|
||||
|
@ -566,6 +593,16 @@ CONFIG_NF_CONNTRACK_TFTP=m
|
|||
CONFIG_NF_CT_NETLINK=m
|
||||
# CONFIG_NETFILTER_TPROXY is not set
|
||||
CONFIG_NETFILTER_XTABLES=m
|
||||
|
||||
#
|
||||
# Xtables combined modules
|
||||
#
|
||||
CONFIG_NETFILTER_XT_MARK=m
|
||||
CONFIG_NETFILTER_XT_CONNMARK=m
|
||||
|
||||
#
|
||||
# Xtables targets
|
||||
#
|
||||
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
|
||||
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
|
||||
# CONFIG_NETFILTER_XT_TARGET_CT is not set
|
||||
|
@ -577,9 +614,14 @@ CONFIG_NETFILTER_XT_TARGET_NFLOG=m
|
|||
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
|
||||
# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
|
||||
CONFIG_NETFILTER_XT_TARGET_RATEEST=m
|
||||
# CONFIG_NETFILTER_XT_TARGET_TEE is not set
|
||||
# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
|
||||
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
|
||||
# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
|
||||
|
||||
#
|
||||
# Xtables matches
|
||||
#
|
||||
CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
|
||||
CONFIG_NETFILTER_XT_MATCH_COMMENT=m
|
||||
CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
|
||||
|
@ -598,6 +640,7 @@ CONFIG_NETFILTER_XT_MATCH_LIMIT=m
|
|||
CONFIG_NETFILTER_XT_MATCH_MAC=m
|
||||
CONFIG_NETFILTER_XT_MATCH_MARK=m
|
||||
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
|
||||
# CONFIG_NETFILTER_XT_MATCH_OSF is not set
|
||||
CONFIG_NETFILTER_XT_MATCH_OWNER=m
|
||||
CONFIG_NETFILTER_XT_MATCH_POLICY=m
|
||||
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
|
||||
|
@ -605,7 +648,6 @@ CONFIG_NETFILTER_XT_MATCH_QUOTA=m
|
|||
CONFIG_NETFILTER_XT_MATCH_RATEEST=m
|
||||
CONFIG_NETFILTER_XT_MATCH_REALM=m
|
||||
CONFIG_NETFILTER_XT_MATCH_RECENT=m
|
||||
# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
|
||||
CONFIG_NETFILTER_XT_MATCH_SCTP=m
|
||||
CONFIG_NETFILTER_XT_MATCH_STATE=m
|
||||
CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
|
||||
|
@ -613,7 +655,6 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
|
|||
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
|
||||
CONFIG_NETFILTER_XT_MATCH_TIME=m
|
||||
CONFIG_NETFILTER_XT_MATCH_U32=m
|
||||
# CONFIG_NETFILTER_XT_MATCH_OSF is not set
|
||||
CONFIG_IP_VS=m
|
||||
# CONFIG_IP_VS_IPV6 is not set
|
||||
# CONFIG_IP_VS_DEBUG is not set
|
||||
|
@ -713,6 +754,7 @@ CONFIG_IP6_NF_RAW=m
|
|||
# CONFIG_RDS is not set
|
||||
# CONFIG_TIPC is not set
|
||||
# CONFIG_ATM is not set
|
||||
# CONFIG_L2TP is not set
|
||||
# CONFIG_BRIDGE is not set
|
||||
# CONFIG_NET_DSA is not set
|
||||
# CONFIG_VLAN_8021Q is not set
|
||||
|
@ -739,6 +781,7 @@ CONFIG_NET_CLS_ROUTE=y
|
|||
# CONFIG_IRDA is not set
|
||||
CONFIG_BT=m
|
||||
CONFIG_BT_L2CAP=m
|
||||
# CONFIG_BT_L2CAP_EXT_FEATURES is not set
|
||||
CONFIG_BT_SCO=m
|
||||
CONFIG_BT_RFCOMM=m
|
||||
CONFIG_BT_RFCOMM_TTY=y
|
||||
|
@ -775,6 +818,7 @@ CONFIG_CFG80211_WEXT=y
|
|||
CONFIG_WIRELESS_EXT_SYSFS=y
|
||||
# CONFIG_LIB80211 is not set
|
||||
CONFIG_MAC80211=m
|
||||
CONFIG_MAC80211_HAS_RC=y
|
||||
CONFIG_MAC80211_RC_MINSTREL=y
|
||||
# CONFIG_MAC80211_RC_DEFAULT_PID is not set
|
||||
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
|
||||
|
@ -785,6 +829,7 @@ CONFIG_MAC80211_LEDS=y
|
|||
# CONFIG_WIMAX is not set
|
||||
# CONFIG_RFKILL is not set
|
||||
# CONFIG_NET_9P is not set
|
||||
# CONFIG_CAIF is not set
|
||||
|
||||
#
|
||||
# Device Drivers
|
||||
|
@ -828,6 +873,7 @@ CONFIG_MTD_BLOCK=y
|
|||
# CONFIG_INFTL is not set
|
||||
# CONFIG_RFD_FTL is not set
|
||||
# CONFIG_SSFDC is not set
|
||||
# CONFIG_SM_FTL is not set
|
||||
# CONFIG_MTD_OOPS is not set
|
||||
|
||||
#
|
||||
|
@ -882,9 +928,12 @@ CONFIG_MTD_ROM=y
|
|||
# CONFIG_MTD_DOC2001 is not set
|
||||
# CONFIG_MTD_DOC2001PLUS is not set
|
||||
CONFIG_MTD_NAND=y
|
||||
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
|
||||
CONFIG_MTD_NAND_ECC=y
|
||||
# CONFIG_MTD_NAND_ECC_SMC is not set
|
||||
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
|
||||
# CONFIG_MTD_SM_COMMON is not set
|
||||
# CONFIG_MTD_NAND_MUSEUM_IDS is not set
|
||||
CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xFF108018
|
||||
# CONFIG_MTD_NAND_GPIO is not set
|
||||
CONFIG_MTD_NAND_IDS=y
|
||||
CONFIG_MTD_NAND_S3C2410=y
|
||||
|
@ -1149,6 +1198,7 @@ CONFIG_KEYBOARD_ATKBD=y
|
|||
# CONFIG_QT2160 is not set
|
||||
# CONFIG_KEYBOARD_LKKBD is not set
|
||||
# CONFIG_KEYBOARD_GPIO is not set
|
||||
# CONFIG_KEYBOARD_TCA6416 is not set
|
||||
# CONFIG_KEYBOARD_MATRIX is not set
|
||||
# CONFIG_KEYBOARD_LM8323 is not set
|
||||
# CONFIG_KEYBOARD_MAX7359 is not set
|
||||
|
@ -1212,6 +1262,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
|
|||
# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
|
||||
# CONFIG_TOUCHSCREEN_AD7879 is not set
|
||||
# CONFIG_TOUCHSCREEN_DYNAPRO is not set
|
||||
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
|
||||
# CONFIG_TOUCHSCREEN_EETI is not set
|
||||
# CONFIG_TOUCHSCREEN_FUJITSU is not set
|
||||
# CONFIG_TOUCHSCREEN_S3C2410 is not set
|
||||
|
@ -1248,6 +1299,7 @@ CONFIG_TOUCHSCREEN_USB_NEXIO=y
|
|||
# CONFIG_TOUCHSCREEN_TSC2007 is not set
|
||||
# CONFIG_TOUCHSCREEN_W90X900 is not set
|
||||
CONFIG_INPUT_MISC=y
|
||||
# CONFIG_INPUT_AD714X is not set
|
||||
CONFIG_INPUT_ATI_REMOTE=m
|
||||
CONFIG_INPUT_ATI_REMOTE2=m
|
||||
CONFIG_INPUT_KEYSPAN_REMOTE=m
|
||||
|
@ -1255,6 +1307,8 @@ CONFIG_INPUT_POWERMATE=m
|
|||
CONFIG_INPUT_YEALINK=m
|
||||
CONFIG_INPUT_CM109=m
|
||||
CONFIG_INPUT_UINPUT=m
|
||||
# CONFIG_INPUT_PCF50633_PMU is not set
|
||||
# CONFIG_INPUT_PCF8574 is not set
|
||||
CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
|
||||
|
||||
#
|
||||
|
@ -1287,6 +1341,7 @@ CONFIG_SERIAL_NONSTANDARD=y
|
|||
# CONFIG_MOXA_INTELLIO is not set
|
||||
# CONFIG_MOXA_SMARTIO is not set
|
||||
# CONFIG_N_HDLC is not set
|
||||
# CONFIG_N_GSM is not set
|
||||
# CONFIG_RISCOM8 is not set
|
||||
# CONFIG_SPECIALIX is not set
|
||||
# CONFIG_STALDRV is not set
|
||||
|
@ -1324,6 +1379,8 @@ CONFIG_SERIAL_S3C2440=y
|
|||
CONFIG_SERIAL_CORE=y
|
||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
|
||||
# CONFIG_SERIAL_ALTERA_UART is not set
|
||||
CONFIG_UNIX98_PTYS=y
|
||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||
CONFIG_LEGACY_PTYS=y
|
||||
|
@ -1439,7 +1496,16 @@ CONFIG_GPIOLIB=y
|
|||
# AC97 GPIO expanders:
|
||||
#
|
||||
# CONFIG_W1 is not set
|
||||
# CONFIG_POWER_SUPPLY is not set
|
||||
CONFIG_POWER_SUPPLY=y
|
||||
# CONFIG_POWER_SUPPLY_DEBUG is not set
|
||||
# CONFIG_PDA_POWER is not set
|
||||
# CONFIG_APM_POWER is not set
|
||||
# CONFIG_TEST_POWER is not set
|
||||
# CONFIG_BATTERY_DS2760 is not set
|
||||
# CONFIG_BATTERY_DS2782 is not set
|
||||
# CONFIG_BATTERY_BQ27x00 is not set
|
||||
# CONFIG_BATTERY_MAX17040 is not set
|
||||
# CONFIG_CHARGER_PCF50633 is not set
|
||||
CONFIG_HWMON=y
|
||||
CONFIG_HWMON_VID=m
|
||||
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||
|
@ -1499,6 +1565,7 @@ CONFIG_SENSORS_LM85=m
|
|||
# CONFIG_SENSORS_SMSC47M192 is not set
|
||||
# CONFIG_SENSORS_SMSC47B397 is not set
|
||||
# CONFIG_SENSORS_ADS7828 is not set
|
||||
# CONFIG_SENSORS_ADS7871 is not set
|
||||
# CONFIG_SENSORS_AMC6821 is not set
|
||||
# CONFIG_SENSORS_THMC50 is not set
|
||||
# CONFIG_SENSORS_TMP401 is not set
|
||||
|
@ -1555,7 +1622,7 @@ CONFIG_MFD_SM501=y
|
|||
# CONFIG_HTC_PASIC3 is not set
|
||||
# CONFIG_HTC_I2CPLD is not set
|
||||
# CONFIG_UCB1400_CORE is not set
|
||||
# CONFIG_TPS65010 is not set
|
||||
CONFIG_TPS65010=m
|
||||
# CONFIG_TWL4030_CORE is not set
|
||||
# CONFIG_MFD_TMIO is not set
|
||||
# CONFIG_MFD_T7L66XB is not set
|
||||
|
@ -1568,8 +1635,10 @@ CONFIG_MFD_SM501=y
|
|||
# CONFIG_MFD_WM831X is not set
|
||||
# CONFIG_MFD_WM8350_I2C is not set
|
||||
# CONFIG_MFD_WM8994 is not set
|
||||
# CONFIG_MFD_PCF50633 is not set
|
||||
CONFIG_MFD_PCF50633=y
|
||||
# CONFIG_MFD_MC13783 is not set
|
||||
# CONFIG_PCF50633_ADC is not set
|
||||
CONFIG_PCF50633_GPIO=y
|
||||
# CONFIG_AB3100_CORE is not set
|
||||
# CONFIG_EZX_PCAP is not set
|
||||
# CONFIG_AB4500_CORE is not set
|
||||
|
@ -1685,6 +1754,7 @@ CONFIG_SND_S3C24XX_SOC_I2S=y
|
|||
CONFIG_SND_S3C_I2SV2_SOC=m
|
||||
CONFIG_SND_S3C2412_SOC_I2S=m
|
||||
CONFIG_SND_S3C_SOC_AC97=m
|
||||
# CONFIG_SND_S3C24XX_SOC_NEO1973_GTA02_WM8753 is not set
|
||||
CONFIG_SND_S3C24XX_SOC_JIVE_WM8750=m
|
||||
CONFIG_SND_S3C24XX_SOC_SMDK2443_WM9710=m
|
||||
CONFIG_SND_S3C24XX_SOC_LN2440SBC_ALC650=m
|
||||
|
@ -1836,10 +1906,12 @@ CONFIG_USB_SERIAL_PL2303=y
|
|||
# CONFIG_USB_SERIAL_TI is not set
|
||||
# CONFIG_USB_SERIAL_CYBERJACK is not set
|
||||
# CONFIG_USB_SERIAL_XIRCOM is not set
|
||||
CONFIG_USB_SERIAL_WWAN=m
|
||||
CONFIG_USB_SERIAL_OPTION=m
|
||||
# CONFIG_USB_SERIAL_OMNINET is not set
|
||||
# CONFIG_USB_SERIAL_OPTICON is not set
|
||||
# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set
|
||||
# CONFIG_USB_SERIAL_ZIO is not set
|
||||
# CONFIG_USB_SERIAL_DEBUG is not set
|
||||
|
||||
#
|
||||
|
@ -1991,6 +2063,7 @@ CONFIG_RTC_INTF_DEV=y
|
|||
# CONFIG_RTC_DRV_BQ4802 is not set
|
||||
# CONFIG_RTC_DRV_RP5C01 is not set
|
||||
# CONFIG_RTC_DRV_V3020 is not set
|
||||
# CONFIG_RTC_DRV_PCF50633 is not set
|
||||
|
||||
#
|
||||
# on-CPU RTC drivers
|
||||
|
@ -1999,10 +2072,6 @@ CONFIG_RTC_DRV_S3C=y
|
|||
# CONFIG_DMADEVICES is not set
|
||||
# CONFIG_AUXDISPLAY is not set
|
||||
# CONFIG_UIO is not set
|
||||
|
||||
#
|
||||
# TI VLYNQ
|
||||
#
|
||||
# CONFIG_STAGING is not set
|
||||
|
||||
#
|
||||
|
@ -2274,6 +2343,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
|
|||
CONFIG_TRACING_SUPPORT=y
|
||||
CONFIG_FTRACE=y
|
||||
# CONFIG_FUNCTION_TRACER is not set
|
||||
# CONFIG_IRQSOFF_TRACER is not set
|
||||
# CONFIG_SCHED_TRACER is not set
|
||||
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
|
||||
# CONFIG_BOOT_TRACER is not set
|
||||
|
@ -2284,6 +2354,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
|
|||
# CONFIG_KMEMTRACE is not set
|
||||
# CONFIG_WORKQUEUE_TRACER is not set
|
||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||
# CONFIG_ATOMIC64_SELFTEST is not set
|
||||
# CONFIG_SAMPLES is not set
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
|
|
|
@ -1,11 +1,14 @@
|
|||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.34
|
||||
# Sat May 22 03:17:32 2010
|
||||
# Fri May 28 19:05:39 2010
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_HAVE_PWM=y
|
||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||
CONFIG_GENERIC_GPIO=y
|
||||
CONFIG_GENERIC_TIME=y
|
||||
CONFIG_ARCH_USES_GETTIMEOFFSET=y
|
||||
CONFIG_HAVE_PROC_CPU=y
|
||||
CONFIG_NO_IOPORT=y
|
||||
CONFIG_GENERIC_HARDIRQS=y
|
||||
|
@ -34,6 +37,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
|
|||
CONFIG_LOCALVERSION=""
|
||||
CONFIG_LOCALVERSION_AUTO=y
|
||||
CONFIG_HAVE_KERNEL_GZIP=y
|
||||
CONFIG_HAVE_KERNEL_LZMA=y
|
||||
CONFIG_HAVE_KERNEL_LZO=y
|
||||
CONFIG_KERNEL_GZIP=y
|
||||
# CONFIG_KERNEL_BZIP2 is not set
|
||||
|
@ -179,9 +183,11 @@ CONFIG_MMU=y
|
|||
# CONFIG_ARCH_INTEGRATOR is not set
|
||||
# CONFIG_ARCH_REALVIEW is not set
|
||||
# CONFIG_ARCH_VERSATILE is not set
|
||||
# CONFIG_ARCH_VEXPRESS is not set
|
||||
# CONFIG_ARCH_AT91 is not set
|
||||
# CONFIG_ARCH_BCMRING is not set
|
||||
# CONFIG_ARCH_CLPS711X is not set
|
||||
# CONFIG_ARCH_CNS3XXX is not set
|
||||
# CONFIG_ARCH_GEMINI is not set
|
||||
# CONFIG_ARCH_EBSA110 is not set
|
||||
# CONFIG_ARCH_EP93XX is not set
|
||||
|
@ -217,7 +223,7 @@ CONFIG_MMU=y
|
|||
CONFIG_ARCH_S3C64XX=y
|
||||
# CONFIG_ARCH_S5P6440 is not set
|
||||
# CONFIG_ARCH_S5P6442 is not set
|
||||
# CONFIG_ARCH_S5PC1XX is not set
|
||||
# CONFIG_ARCH_S5PC100 is not set
|
||||
# CONFIG_ARCH_S5PV210 is not set
|
||||
# CONFIG_ARCH_SHARK is not set
|
||||
# CONFIG_ARCH_LH7A40X is not set
|
||||
|
@ -226,6 +232,7 @@ CONFIG_ARCH_S3C64XX=y
|
|||
# CONFIG_ARCH_NOMADIK is not set
|
||||
# CONFIG_ARCH_DAVINCI is not set
|
||||
# CONFIG_ARCH_OMAP is not set
|
||||
# CONFIG_PLAT_SPEAR is not set
|
||||
CONFIG_PLAT_SAMSUNG=y
|
||||
|
||||
#
|
||||
|
@ -247,11 +254,17 @@ CONFIG_S3C_GPIO_TRACK=y
|
|||
# CONFIG_S3C_ADC is not set
|
||||
CONFIG_S3C_DEV_HSMMC=y
|
||||
CONFIG_S3C_DEV_HSMMC1=y
|
||||
CONFIG_S3C_DEV_HSMMC2=y
|
||||
CONFIG_S3C_DEV_HWMON=y
|
||||
CONFIG_S3C_DEV_I2C1=y
|
||||
CONFIG_S3C_DEV_FB=y
|
||||
CONFIG_S3C_DEV_USB_HOST=y
|
||||
CONFIG_S3C_DEV_USB_HSOTG=y
|
||||
CONFIG_S3C_DEV_WDT=y
|
||||
CONFIG_S3C_DEV_NAND=y
|
||||
CONFIG_S3C_DEV_RTC=y
|
||||
CONFIG_SAMSUNG_DEV_ADC=y
|
||||
CONFIG_SAMSUNG_DEV_TS=y
|
||||
CONFIG_S3C_DMA=y
|
||||
|
||||
#
|
||||
|
@ -260,7 +273,9 @@ CONFIG_S3C_DMA=y
|
|||
# CONFIG_SAMSUNG_PM_DEBUG is not set
|
||||
# CONFIG_S3C_PM_DEBUG_LED_SMDK is not set
|
||||
# CONFIG_SAMSUNG_PM_CHECK is not set
|
||||
CONFIG_SAMSUNG_WAKEMASK=y
|
||||
CONFIG_PLAT_S3C64XX=y
|
||||
CONFIG_CPU_S3C6400=y
|
||||
CONFIG_CPU_S3C6410=y
|
||||
CONFIG_S3C64XX_DMA=y
|
||||
CONFIG_S3C64XX_SETUP_SDHCI=y
|
||||
|
@ -268,15 +283,18 @@ CONFIG_S3C64XX_SETUP_I2C0=y
|
|||
CONFIG_S3C64XX_SETUP_I2C1=y
|
||||
CONFIG_S3C64XX_SETUP_FB_24BPP=y
|
||||
CONFIG_S3C64XX_SETUP_SDHCI_GPIO=y
|
||||
# CONFIG_MACH_SMDK6400 is not set
|
||||
# CONFIG_MACH_ANW6410 is not set
|
||||
CONFIG_MACH_SMDK6400=y
|
||||
CONFIG_MACH_ANW6410=y
|
||||
CONFIG_MACH_SMDK6410=y
|
||||
CONFIG_SMDK6410_SD_CH0=y
|
||||
# CONFIG_SMDK6410_SD_CH1 is not set
|
||||
# CONFIG_SMDK6410_WM1190_EV1 is not set
|
||||
# CONFIG_SMDK6410_WM1192_EV1 is not set
|
||||
# CONFIG_MACH_NCP is not set
|
||||
# CONFIG_MACH_HMT is not set
|
||||
CONFIG_MACH_NCP=y
|
||||
CONFIG_MACH_HMT=y
|
||||
CONFIG_MACH_SMARTQ=y
|
||||
CONFIG_MACH_SMARTQ5=y
|
||||
CONFIG_MACH_SMARTQ7=y
|
||||
|
||||
#
|
||||
# Processor Type
|
||||
|
@ -302,6 +320,7 @@ CONFIG_ARM_THUMB=y
|
|||
# CONFIG_CPU_DCACHE_DISABLE is not set
|
||||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||
CONFIG_ARM_L1_CACHE_SHIFT=5
|
||||
CONFIG_ARM_DMA_MEM_BUFFERABLE=y
|
||||
CONFIG_CPU_HAS_PMU=y
|
||||
# CONFIG_ARM_ERRATA_411920 is not set
|
||||
CONFIG_ARM_VIC=y
|
||||
|
@ -352,6 +371,7 @@ CONFIG_ALIGNMENT_TRAP=y
|
|||
CONFIG_ZBOOT_ROM_TEXT=0
|
||||
CONFIG_ZBOOT_ROM_BSS=0
|
||||
CONFIG_CMDLINE="console=ttySAC0,115200 root=/dev/ram init=/linuxrc initrd=0x51000000,6M ramdisk_size=6144"
|
||||
# CONFIG_CMDLINE_FORCE is not set
|
||||
# CONFIG_XIP_KERNEL is not set
|
||||
# CONFIG_KEXEC is not set
|
||||
|
||||
|
@ -430,6 +450,7 @@ CONFIG_MTD=y
|
|||
# CONFIG_INFTL is not set
|
||||
# CONFIG_RFD_FTL is not set
|
||||
# CONFIG_SSFDC is not set
|
||||
# CONFIG_SM_FTL is not set
|
||||
# CONFIG_MTD_OOPS is not set
|
||||
|
||||
#
|
||||
|
@ -460,6 +481,9 @@ CONFIG_MTD_CFI_I2=y
|
|||
#
|
||||
# Self-contained MTD device drivers
|
||||
#
|
||||
# CONFIG_MTD_DATAFLASH is not set
|
||||
# CONFIG_MTD_M25P80 is not set
|
||||
# CONFIG_MTD_SST25L is not set
|
||||
# CONFIG_MTD_SLRAM is not set
|
||||
# CONFIG_MTD_PHRAM is not set
|
||||
# CONFIG_MTD_MTDRAM is not set
|
||||
|
@ -472,9 +496,12 @@ CONFIG_MTD_CFI_I2=y
|
|||
# CONFIG_MTD_DOC2001 is not set
|
||||
# CONFIG_MTD_DOC2001PLUS is not set
|
||||
CONFIG_MTD_NAND=y
|
||||
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
|
||||
CONFIG_MTD_NAND_ECC=y
|
||||
# CONFIG_MTD_NAND_ECC_SMC is not set
|
||||
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
|
||||
# CONFIG_MTD_SM_COMMON is not set
|
||||
# CONFIG_MTD_NAND_MUSEUM_IDS is not set
|
||||
CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xFF108018
|
||||
# CONFIG_MTD_NAND_GPIO is not set
|
||||
CONFIG_MTD_NAND_IDS=y
|
||||
CONFIG_MTD_NAND_S3C2410=y
|
||||
|
@ -483,6 +510,7 @@ CONFIG_MTD_NAND_S3C2410=y
|
|||
# CONFIG_MTD_NAND_S3C2410_CLKSTOP is not set
|
||||
# CONFIG_MTD_NAND_DISKONCHIP is not set
|
||||
# CONFIG_MTD_NAND_PLATFORM is not set
|
||||
# CONFIG_MTD_ALAUDA is not set
|
||||
# CONFIG_MTD_ONENAND is not set
|
||||
|
||||
#
|
||||
|
@ -503,6 +531,7 @@ CONFIG_BLK_DEV_LOOP=y
|
|||
#
|
||||
# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
|
||||
#
|
||||
# CONFIG_BLK_DEV_UB is not set
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_COUNT=16
|
||||
CONFIG_BLK_DEV_RAM_SIZE=4096
|
||||
|
@ -516,12 +545,14 @@ CONFIG_MISC_DEVICES=y
|
|||
# CONFIG_ISL29003 is not set
|
||||
# CONFIG_SENSORS_TSL2550 is not set
|
||||
# CONFIG_DS1682 is not set
|
||||
# CONFIG_TI_DAC7512 is not set
|
||||
# CONFIG_C2PORT is not set
|
||||
|
||||
#
|
||||
# EEPROM support
|
||||
#
|
||||
CONFIG_EEPROM_AT24=y
|
||||
# CONFIG_EEPROM_AT25 is not set
|
||||
# CONFIG_EEPROM_LEGACY is not set
|
||||
# CONFIG_EEPROM_MAX6875 is not set
|
||||
# CONFIG_EEPROM_93CX6 is not set
|
||||
|
@ -569,6 +600,7 @@ CONFIG_KEYBOARD_ATKBD=y
|
|||
# CONFIG_QT2160 is not set
|
||||
# CONFIG_KEYBOARD_LKKBD is not set
|
||||
# CONFIG_KEYBOARD_GPIO is not set
|
||||
# CONFIG_KEYBOARD_TCA6416 is not set
|
||||
# CONFIG_KEYBOARD_MATRIX is not set
|
||||
# CONFIG_KEYBOARD_MAX7359 is not set
|
||||
# CONFIG_KEYBOARD_NEWTON is not set
|
||||
|
@ -635,9 +667,12 @@ CONFIG_SERIAL_SAMSUNG_UARTS=4
|
|||
# CONFIG_SERIAL_SAMSUNG_DEBUG is not set
|
||||
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
|
||||
CONFIG_SERIAL_S3C6400=y
|
||||
# CONFIG_SERIAL_MAX3100 is not set
|
||||
CONFIG_SERIAL_CORE=y
|
||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
|
||||
# CONFIG_SERIAL_ALTERA_UART is not set
|
||||
CONFIG_UNIX98_PTYS=y
|
||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||
CONFIG_LEGACY_PTYS=y
|
||||
|
@ -673,6 +708,7 @@ CONFIG_I2C_S3C2410=y
|
|||
#
|
||||
# CONFIG_I2C_PARPORT_LIGHT is not set
|
||||
# CONFIG_I2C_TAOS_EVM is not set
|
||||
# CONFIG_I2C_TINY_USB is not set
|
||||
|
||||
#
|
||||
# Other I2C/SMBus bus drivers
|
||||
|
@ -682,7 +718,24 @@ CONFIG_I2C_S3C2410=y
|
|||
# CONFIG_I2C_DEBUG_CORE is not set
|
||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||
# CONFIG_I2C_DEBUG_BUS is not set
|
||||
# CONFIG_SPI is not set
|
||||
CONFIG_SPI=y
|
||||
# CONFIG_SPI_DEBUG is not set
|
||||
CONFIG_SPI_MASTER=y
|
||||
|
||||
#
|
||||
# SPI Master Controller Drivers
|
||||
#
|
||||
CONFIG_SPI_BITBANG=m
|
||||
CONFIG_SPI_GPIO=m
|
||||
CONFIG_SPI_S3C64XX=m
|
||||
# CONFIG_SPI_XILINX is not set
|
||||
# CONFIG_SPI_DESIGNWARE is not set
|
||||
|
||||
#
|
||||
# SPI Protocol Masters
|
||||
#
|
||||
# CONFIG_SPI_SPIDEV is not set
|
||||
# CONFIG_SPI_TLE62X0 is not set
|
||||
|
||||
#
|
||||
# PPS support
|
||||
|
@ -714,6 +767,9 @@ CONFIG_GPIOLIB=y
|
|||
#
|
||||
# SPI GPIO expanders:
|
||||
#
|
||||
# CONFIG_GPIO_MAX7301 is not set
|
||||
# CONFIG_GPIO_MCP23S08 is not set
|
||||
# CONFIG_GPIO_MC33880 is not set
|
||||
|
||||
#
|
||||
# AC97 GPIO expanders:
|
||||
|
@ -729,6 +785,7 @@ CONFIG_HWMON=y
|
|||
#
|
||||
# CONFIG_SENSORS_AD7414 is not set
|
||||
# CONFIG_SENSORS_AD7418 is not set
|
||||
# CONFIG_SENSORS_ADCXX is not set
|
||||
# CONFIG_SENSORS_ADM1021 is not set
|
||||
# CONFIG_SENSORS_ADM1025 is not set
|
||||
# CONFIG_SENSORS_ADM1026 is not set
|
||||
|
@ -750,6 +807,7 @@ CONFIG_HWMON=y
|
|||
# CONFIG_SENSORS_GL520SM is not set
|
||||
# CONFIG_SENSORS_IT87 is not set
|
||||
# CONFIG_SENSORS_LM63 is not set
|
||||
# CONFIG_SENSORS_LM70 is not set
|
||||
# CONFIG_SENSORS_LM73 is not set
|
||||
# CONFIG_SENSORS_LM75 is not set
|
||||
# CONFIG_SENSORS_LM77 is not set
|
||||
|
@ -764,6 +822,7 @@ CONFIG_HWMON=y
|
|||
# CONFIG_SENSORS_LTC4215 is not set
|
||||
# CONFIG_SENSORS_LTC4245 is not set
|
||||
# CONFIG_SENSORS_LM95241 is not set
|
||||
# CONFIG_SENSORS_MAX1111 is not set
|
||||
# CONFIG_SENSORS_MAX1619 is not set
|
||||
# CONFIG_SENSORS_MAX6650 is not set
|
||||
# CONFIG_SENSORS_PC87360 is not set
|
||||
|
@ -775,6 +834,7 @@ CONFIG_HWMON=y
|
|||
# CONFIG_SENSORS_SMSC47M192 is not set
|
||||
# CONFIG_SENSORS_SMSC47B397 is not set
|
||||
# CONFIG_SENSORS_ADS7828 is not set
|
||||
# CONFIG_SENSORS_ADS7871 is not set
|
||||
# CONFIG_SENSORS_AMC6821 is not set
|
||||
# CONFIG_SENSORS_THMC50 is not set
|
||||
# CONFIG_SENSORS_TMP401 is not set
|
||||
|
@ -788,9 +848,11 @@ CONFIG_HWMON=y
|
|||
# CONFIG_SENSORS_W83L786NG is not set
|
||||
# CONFIG_SENSORS_W83627HF is not set
|
||||
# CONFIG_SENSORS_W83627EHF is not set
|
||||
# CONFIG_SENSORS_LIS3_SPI is not set
|
||||
# CONFIG_SENSORS_LIS3_I2C is not set
|
||||
# CONFIG_THERMAL is not set
|
||||
# CONFIG_WATCHDOG is not set
|
||||
CONFIG_HAVE_S3C2410_WATCHDOG=y
|
||||
CONFIG_SSB_POSSIBLE=y
|
||||
|
||||
#
|
||||
|
@ -823,7 +885,10 @@ CONFIG_SSB_POSSIBLE=y
|
|||
# CONFIG_MFD_WM8350_I2C is not set
|
||||
# CONFIG_MFD_WM8994 is not set
|
||||
# CONFIG_MFD_PCF50633 is not set
|
||||
# CONFIG_MFD_MC13783 is not set
|
||||
# CONFIG_AB3100_CORE is not set
|
||||
# CONFIG_EZX_PCAP is not set
|
||||
# CONFIG_AB4500_CORE is not set
|
||||
# CONFIG_REGULATOR is not set
|
||||
# CONFIG_MEDIA_SUPPORT is not set
|
||||
|
||||
|
@ -832,8 +897,47 @@ CONFIG_SSB_POSSIBLE=y
|
|||
#
|
||||
# CONFIG_VGASTATE is not set
|
||||
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
|
||||
# CONFIG_FB is not set
|
||||
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
|
||||
CONFIG_FB=y
|
||||
# CONFIG_FIRMWARE_EDID is not set
|
||||
# CONFIG_FB_DDC is not set
|
||||
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
|
||||
CONFIG_FB_CFB_FILLRECT=y
|
||||
CONFIG_FB_CFB_COPYAREA=y
|
||||
CONFIG_FB_CFB_IMAGEBLIT=y
|
||||
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
|
||||
# CONFIG_FB_SYS_FILLRECT is not set
|
||||
# CONFIG_FB_SYS_COPYAREA is not set
|
||||
# CONFIG_FB_SYS_IMAGEBLIT is not set
|
||||
# CONFIG_FB_FOREIGN_ENDIAN is not set
|
||||
# CONFIG_FB_SYS_FOPS is not set
|
||||
# CONFIG_FB_SVGALIB is not set
|
||||
# CONFIG_FB_MACMODES is not set
|
||||
# CONFIG_FB_BACKLIGHT is not set
|
||||
# CONFIG_FB_MODE_HELPERS is not set
|
||||
# CONFIG_FB_TILEBLITTING is not set
|
||||
|
||||
#
|
||||
# Frame buffer hardware drivers
|
||||
#
|
||||
# CONFIG_FB_S1D13XXX is not set
|
||||
CONFIG_FB_S3C=y
|
||||
# CONFIG_FB_S3C_DEBUG_REGWRITE is not set
|
||||
# CONFIG_FB_VIRTUAL is not set
|
||||
# CONFIG_FB_METRONOME is not set
|
||||
# CONFIG_FB_MB862XX is not set
|
||||
# CONFIG_FB_BROADSHEET is not set
|
||||
CONFIG_BACKLIGHT_LCD_SUPPORT=y
|
||||
CONFIG_LCD_CLASS_DEVICE=y
|
||||
# CONFIG_LCD_L4F00242T03 is not set
|
||||
# CONFIG_LCD_LMS283GF05 is not set
|
||||
CONFIG_LCD_LTV350QV=y
|
||||
# CONFIG_LCD_ILI9320 is not set
|
||||
# CONFIG_LCD_TDO24M is not set
|
||||
# CONFIG_LCD_VGG2432A4 is not set
|
||||
# CONFIG_LCD_PLATFORM is not set
|
||||
CONFIG_BACKLIGHT_CLASS_DEVICE=y
|
||||
CONFIG_BACKLIGHT_GENERIC=y
|
||||
CONFIG_BACKLIGHT_PWM=y
|
||||
|
||||
#
|
||||
# Display device support
|
||||
|
@ -845,6 +949,8 @@ CONFIG_SSB_POSSIBLE=y
|
|||
#
|
||||
# CONFIG_VGA_CONSOLE is not set
|
||||
CONFIG_DUMMY_CONSOLE=y
|
||||
# CONFIG_FRAMEBUFFER_CONSOLE is not set
|
||||
# CONFIG_LOGO is not set
|
||||
CONFIG_SOUND=y
|
||||
CONFIG_SOUND_OSS_CORE=y
|
||||
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
|
||||
|
@ -873,10 +979,16 @@ CONFIG_SND_DRIVERS=y
|
|||
# CONFIG_SND_SERIAL_U16550 is not set
|
||||
# CONFIG_SND_MPU401 is not set
|
||||
CONFIG_SND_ARM=y
|
||||
CONFIG_SND_SPI=y
|
||||
CONFIG_SND_USB=y
|
||||
# CONFIG_SND_USB_AUDIO is not set
|
||||
# CONFIG_SND_USB_UA101 is not set
|
||||
# CONFIG_SND_USB_CAIAQ is not set
|
||||
CONFIG_SND_SOC=m
|
||||
CONFIG_SND_SOC_AC97_BUS=y
|
||||
CONFIG_SND_S3C24XX_SOC=m
|
||||
CONFIG_SND_S3C_SOC_AC97=m
|
||||
# CONFIG_SND_S3C64XX_SOC_WM8580 is not set
|
||||
CONFIG_SND_SOC_SMDK_WM9713=m
|
||||
CONFIG_SND_SOC_I2C_AND_SPI=m
|
||||
# CONFIG_SND_SOC_ALL_CODECS is not set
|
||||
|
@ -886,29 +998,197 @@ CONFIG_AC97_BUS=m
|
|||
CONFIG_HID_SUPPORT=y
|
||||
CONFIG_HID=y
|
||||
# CONFIG_HIDRAW is not set
|
||||
|
||||
#
|
||||
# USB Input Devices
|
||||
#
|
||||
CONFIG_USB_HID=y
|
||||
# CONFIG_HID_PID is not set
|
||||
# CONFIG_USB_HIDDEV is not set
|
||||
|
||||
#
|
||||
# Special HID drivers
|
||||
#
|
||||
# CONFIG_HID_3M_PCT is not set
|
||||
CONFIG_HID_A4TECH=y
|
||||
CONFIG_HID_APPLE=y
|
||||
CONFIG_HID_BELKIN=y
|
||||
# CONFIG_HID_CANDO is not set
|
||||
CONFIG_HID_CHERRY=y
|
||||
CONFIG_HID_CHICONY=y
|
||||
# CONFIG_HID_PRODIKEYS is not set
|
||||
CONFIG_HID_CYPRESS=y
|
||||
# CONFIG_HID_DRAGONRISE is not set
|
||||
# CONFIG_HID_EGALAX is not set
|
||||
CONFIG_HID_EZKEY=y
|
||||
CONFIG_HID_KYE=y
|
||||
# CONFIG_HID_GYRATION is not set
|
||||
# CONFIG_HID_TWINHAN is not set
|
||||
CONFIG_HID_KENSINGTON=y
|
||||
CONFIG_HID_LOGITECH=y
|
||||
# CONFIG_LOGITECH_FF is not set
|
||||
# CONFIG_LOGIRUMBLEPAD2_FF is not set
|
||||
# CONFIG_LOGIG940_FF is not set
|
||||
CONFIG_HID_MICROSOFT=y
|
||||
# CONFIG_HID_MOSART is not set
|
||||
CONFIG_HID_MONTEREY=y
|
||||
# CONFIG_HID_NTRIG is not set
|
||||
# CONFIG_HID_ORTEK is not set
|
||||
# CONFIG_HID_PANTHERLORD is not set
|
||||
# CONFIG_HID_PETALYNX is not set
|
||||
# CONFIG_HID_PICOLCD is not set
|
||||
# CONFIG_HID_QUANTA is not set
|
||||
# CONFIG_HID_ROCCAT_KONE is not set
|
||||
# CONFIG_HID_SAMSUNG is not set
|
||||
# CONFIG_HID_SONY is not set
|
||||
# CONFIG_HID_STANTUM is not set
|
||||
# CONFIG_HID_SUNPLUS is not set
|
||||
# CONFIG_HID_GREENASIA is not set
|
||||
# CONFIG_HID_SMARTJOYPLUS is not set
|
||||
# CONFIG_HID_TOPSEED is not set
|
||||
# CONFIG_HID_THRUSTMASTER is not set
|
||||
# CONFIG_HID_ZEROPLUS is not set
|
||||
# CONFIG_HID_ZYDACRON is not set
|
||||
CONFIG_USB_SUPPORT=y
|
||||
CONFIG_USB_ARCH_HAS_HCD=y
|
||||
CONFIG_USB_ARCH_HAS_OHCI=y
|
||||
# CONFIG_USB_ARCH_HAS_EHCI is not set
|
||||
# CONFIG_USB is not set
|
||||
CONFIG_USB=y
|
||||
# CONFIG_USB_DEBUG is not set
|
||||
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
|
||||
|
||||
#
|
||||
# Enable Host or Gadget support to see Inventra options
|
||||
# Miscellaneous USB options
|
||||
#
|
||||
CONFIG_USB_DEVICEFS=y
|
||||
CONFIG_USB_DEVICE_CLASS=y
|
||||
# CONFIG_USB_DYNAMIC_MINORS is not set
|
||||
# CONFIG_USB_MON is not set
|
||||
# CONFIG_USB_WUSB is not set
|
||||
# CONFIG_USB_WUSB_CBAF is not set
|
||||
|
||||
#
|
||||
# USB Host Controller Drivers
|
||||
#
|
||||
# CONFIG_USB_C67X00_HCD is not set
|
||||
# CONFIG_USB_OXU210HP_HCD is not set
|
||||
# CONFIG_USB_ISP116X_HCD is not set
|
||||
# CONFIG_USB_ISP1760_HCD is not set
|
||||
# CONFIG_USB_ISP1362_HCD is not set
|
||||
CONFIG_USB_OHCI_HCD=y
|
||||
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
|
||||
# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
|
||||
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
|
||||
# CONFIG_USB_SL811_HCD is not set
|
||||
# CONFIG_USB_R8A66597_HCD is not set
|
||||
# CONFIG_USB_HWA_HCD is not set
|
||||
# CONFIG_USB_MUSB_HDRC is not set
|
||||
|
||||
#
|
||||
# USB Device Class drivers
|
||||
#
|
||||
CONFIG_USB_ACM=m
|
||||
CONFIG_USB_PRINTER=m
|
||||
# CONFIG_USB_WDM is not set
|
||||
# CONFIG_USB_TMC is not set
|
||||
|
||||
#
|
||||
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
|
||||
#
|
||||
|
||||
#
|
||||
# also be needed; see USB_STORAGE Help for more info
|
||||
#
|
||||
# CONFIG_USB_LIBUSUAL is not set
|
||||
|
||||
#
|
||||
# USB Imaging devices
|
||||
#
|
||||
# CONFIG_USB_MDC800 is not set
|
||||
|
||||
#
|
||||
# USB port drivers
|
||||
#
|
||||
CONFIG_USB_SERIAL=m
|
||||
# CONFIG_USB_EZUSB is not set
|
||||
CONFIG_USB_SERIAL_GENERIC=y
|
||||
# CONFIG_USB_SERIAL_AIRCABLE is not set
|
||||
# CONFIG_USB_SERIAL_ARK3116 is not set
|
||||
# CONFIG_USB_SERIAL_BELKIN is not set
|
||||
# CONFIG_USB_SERIAL_CH341 is not set
|
||||
# CONFIG_USB_SERIAL_WHITEHEAT is not set
|
||||
# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
|
||||
# CONFIG_USB_SERIAL_CP210X is not set
|
||||
# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
|
||||
CONFIG_USB_SERIAL_EMPEG=m
|
||||
CONFIG_USB_SERIAL_FTDI_SIO=m
|
||||
# CONFIG_USB_SERIAL_FUNSOFT is not set
|
||||
# CONFIG_USB_SERIAL_VISOR is not set
|
||||
# CONFIG_USB_SERIAL_IPAQ is not set
|
||||
# CONFIG_USB_SERIAL_IR is not set
|
||||
# CONFIG_USB_SERIAL_EDGEPORT is not set
|
||||
# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
|
||||
# CONFIG_USB_SERIAL_GARMIN is not set
|
||||
# CONFIG_USB_SERIAL_IPW is not set
|
||||
# CONFIG_USB_SERIAL_IUU is not set
|
||||
# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
|
||||
# CONFIG_USB_SERIAL_KEYSPAN is not set
|
||||
# CONFIG_USB_SERIAL_KLSI is not set
|
||||
# CONFIG_USB_SERIAL_KOBIL_SCT is not set
|
||||
# CONFIG_USB_SERIAL_MCT_U232 is not set
|
||||
# CONFIG_USB_SERIAL_MOS7720 is not set
|
||||
# CONFIG_USB_SERIAL_MOS7840 is not set
|
||||
# CONFIG_USB_SERIAL_MOTOROLA is not set
|
||||
# CONFIG_USB_SERIAL_NAVMAN is not set
|
||||
CONFIG_USB_SERIAL_PL2303=m
|
||||
# CONFIG_USB_SERIAL_OTI6858 is not set
|
||||
# CONFIG_USB_SERIAL_QCAUX is not set
|
||||
# CONFIG_USB_SERIAL_QUALCOMM is not set
|
||||
# CONFIG_USB_SERIAL_SPCP8X5 is not set
|
||||
# CONFIG_USB_SERIAL_HP4X is not set
|
||||
# CONFIG_USB_SERIAL_SAFE is not set
|
||||
# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
|
||||
# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
|
||||
# CONFIG_USB_SERIAL_SYMBOL is not set
|
||||
# CONFIG_USB_SERIAL_TI is not set
|
||||
# CONFIG_USB_SERIAL_CYBERJACK is not set
|
||||
# CONFIG_USB_SERIAL_XIRCOM is not set
|
||||
# CONFIG_USB_SERIAL_OPTION is not set
|
||||
# CONFIG_USB_SERIAL_OMNINET is not set
|
||||
# CONFIG_USB_SERIAL_OPTICON is not set
|
||||
# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set
|
||||
# CONFIG_USB_SERIAL_ZIO is not set
|
||||
# CONFIG_USB_SERIAL_DEBUG is not set
|
||||
|
||||
#
|
||||
# USB Miscellaneous drivers
|
||||
#
|
||||
# CONFIG_USB_EMI62 is not set
|
||||
# CONFIG_USB_EMI26 is not set
|
||||
# CONFIG_USB_ADUTUX is not set
|
||||
# CONFIG_USB_SEVSEG is not set
|
||||
# CONFIG_USB_RIO500 is not set
|
||||
# CONFIG_USB_LEGOTOWER is not set
|
||||
# CONFIG_USB_LCD is not set
|
||||
# CONFIG_USB_LED is not set
|
||||
# CONFIG_USB_CYPRESS_CY7C63 is not set
|
||||
# CONFIG_USB_CYTHERM is not set
|
||||
# CONFIG_USB_IDMOUSE is not set
|
||||
# CONFIG_USB_FTDI_ELAN is not set
|
||||
# CONFIG_USB_APPLEDISPLAY is not set
|
||||
# CONFIG_USB_LD is not set
|
||||
# CONFIG_USB_TRANCEVIBRATOR is not set
|
||||
# CONFIG_USB_IOWARRIOR is not set
|
||||
# CONFIG_USB_TEST is not set
|
||||
# CONFIG_USB_ISIGHTFW is not set
|
||||
# CONFIG_USB_GADGET is not set
|
||||
|
||||
#
|
||||
# OTG and related infrastructure
|
||||
#
|
||||
# CONFIG_USB_GPIO_VBUS is not set
|
||||
# CONFIG_USB_ULPI is not set
|
||||
# CONFIG_NOP_USB_XCEIV is not set
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_DEBUG=y
|
||||
CONFIG_MMC_UNSAFE_RESUME=y
|
||||
|
@ -928,18 +1208,80 @@ CONFIG_MMC_SDHCI=y
|
|||
# CONFIG_MMC_SDHCI_PLTFM is not set
|
||||
CONFIG_MMC_SDHCI_S3C=y
|
||||
# CONFIG_MMC_SDHCI_S3C_DMA is not set
|
||||
# CONFIG_MMC_SPI is not set
|
||||
# CONFIG_MEMSTICK is not set
|
||||
# CONFIG_NEW_LEDS is not set
|
||||
# CONFIG_ACCESSIBILITY is not set
|
||||
CONFIG_RTC_LIB=y
|
||||
# CONFIG_RTC_CLASS is not set
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_RTC_HCTOSYS=y
|
||||
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
|
||||
# CONFIG_RTC_DEBUG is not set
|
||||
|
||||
#
|
||||
# RTC interfaces
|
||||
#
|
||||
CONFIG_RTC_INTF_SYSFS=y
|
||||
CONFIG_RTC_INTF_PROC=y
|
||||
CONFIG_RTC_INTF_DEV=y
|
||||
# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
|
||||
# CONFIG_RTC_DRV_TEST is not set
|
||||
|
||||
#
|
||||
# I2C RTC drivers
|
||||
#
|
||||
# CONFIG_RTC_DRV_DS1307 is not set
|
||||
# CONFIG_RTC_DRV_DS1374 is not set
|
||||
# CONFIG_RTC_DRV_DS1672 is not set
|
||||
# CONFIG_RTC_DRV_MAX6900 is not set
|
||||
# CONFIG_RTC_DRV_RS5C372 is not set
|
||||
# CONFIG_RTC_DRV_ISL1208 is not set
|
||||
# CONFIG_RTC_DRV_X1205 is not set
|
||||
# CONFIG_RTC_DRV_PCF8563 is not set
|
||||
# CONFIG_RTC_DRV_PCF8583 is not set
|
||||
# CONFIG_RTC_DRV_M41T80 is not set
|
||||
# CONFIG_RTC_DRV_BQ32K is not set
|
||||
# CONFIG_RTC_DRV_S35390A is not set
|
||||
# CONFIG_RTC_DRV_FM3130 is not set
|
||||
# CONFIG_RTC_DRV_RX8581 is not set
|
||||
# CONFIG_RTC_DRV_RX8025 is not set
|
||||
|
||||
#
|
||||
# SPI RTC drivers
|
||||
#
|
||||
# CONFIG_RTC_DRV_M41T94 is not set
|
||||
# CONFIG_RTC_DRV_DS1305 is not set
|
||||
# CONFIG_RTC_DRV_DS1390 is not set
|
||||
# CONFIG_RTC_DRV_MAX6902 is not set
|
||||
# CONFIG_RTC_DRV_R9701 is not set
|
||||
# CONFIG_RTC_DRV_RS5C348 is not set
|
||||
# CONFIG_RTC_DRV_DS3234 is not set
|
||||
# CONFIG_RTC_DRV_PCF2123 is not set
|
||||
|
||||
#
|
||||
# Platform RTC drivers
|
||||
#
|
||||
# CONFIG_RTC_DRV_CMOS is not set
|
||||
# CONFIG_RTC_DRV_DS1286 is not set
|
||||
# CONFIG_RTC_DRV_DS1511 is not set
|
||||
# CONFIG_RTC_DRV_DS1553 is not set
|
||||
# CONFIG_RTC_DRV_DS1742 is not set
|
||||
# CONFIG_RTC_DRV_STK17TA8 is not set
|
||||
# CONFIG_RTC_DRV_M48T86 is not set
|
||||
# CONFIG_RTC_DRV_M48T35 is not set
|
||||
# CONFIG_RTC_DRV_M48T59 is not set
|
||||
# CONFIG_RTC_DRV_MSM6242 is not set
|
||||
# CONFIG_RTC_DRV_BQ4802 is not set
|
||||
# CONFIG_RTC_DRV_RP5C01 is not set
|
||||
# CONFIG_RTC_DRV_V3020 is not set
|
||||
|
||||
#
|
||||
# on-CPU RTC drivers
|
||||
#
|
||||
CONFIG_RTC_DRV_S3C=y
|
||||
# CONFIG_DMADEVICES is not set
|
||||
# CONFIG_AUXDISPLAY is not set
|
||||
# CONFIG_UIO is not set
|
||||
|
||||
#
|
||||
# TI VLYNQ
|
||||
#
|
||||
# CONFIG_STAGING is not set
|
||||
|
||||
#
|
||||
|
@ -1033,7 +1375,46 @@ CONFIG_ROMFS_ON_BLOCK=y
|
|||
#
|
||||
# CONFIG_PARTITION_ADVANCED is not set
|
||||
CONFIG_MSDOS_PARTITION=y
|
||||
# CONFIG_NLS is not set
|
||||
CONFIG_NLS=y
|
||||
CONFIG_NLS_DEFAULT="iso8859-1"
|
||||
# CONFIG_NLS_CODEPAGE_437 is not set
|
||||
# CONFIG_NLS_CODEPAGE_737 is not set
|
||||
# CONFIG_NLS_CODEPAGE_775 is not set
|
||||
# CONFIG_NLS_CODEPAGE_850 is not set
|
||||
# CONFIG_NLS_CODEPAGE_852 is not set
|
||||
# CONFIG_NLS_CODEPAGE_855 is not set
|
||||
# CONFIG_NLS_CODEPAGE_857 is not set
|
||||
# CONFIG_NLS_CODEPAGE_860 is not set
|
||||
# CONFIG_NLS_CODEPAGE_861 is not set
|
||||
# CONFIG_NLS_CODEPAGE_862 is not set
|
||||
# CONFIG_NLS_CODEPAGE_863 is not set
|
||||
# CONFIG_NLS_CODEPAGE_864 is not set
|
||||
# CONFIG_NLS_CODEPAGE_865 is not set
|
||||
# CONFIG_NLS_CODEPAGE_866 is not set
|
||||
# CONFIG_NLS_CODEPAGE_869 is not set
|
||||
# CONFIG_NLS_CODEPAGE_936 is not set
|
||||
# CONFIG_NLS_CODEPAGE_950 is not set
|
||||
# CONFIG_NLS_CODEPAGE_932 is not set
|
||||
# CONFIG_NLS_CODEPAGE_949 is not set
|
||||
# CONFIG_NLS_CODEPAGE_874 is not set
|
||||
# CONFIG_NLS_ISO8859_8 is not set
|
||||
# CONFIG_NLS_CODEPAGE_1250 is not set
|
||||
# CONFIG_NLS_CODEPAGE_1251 is not set
|
||||
# CONFIG_NLS_ASCII is not set
|
||||
# CONFIG_NLS_ISO8859_1 is not set
|
||||
# CONFIG_NLS_ISO8859_2 is not set
|
||||
# CONFIG_NLS_ISO8859_3 is not set
|
||||
# CONFIG_NLS_ISO8859_4 is not set
|
||||
# CONFIG_NLS_ISO8859_5 is not set
|
||||
# CONFIG_NLS_ISO8859_6 is not set
|
||||
# CONFIG_NLS_ISO8859_7 is not set
|
||||
# CONFIG_NLS_ISO8859_9 is not set
|
||||
# CONFIG_NLS_ISO8859_13 is not set
|
||||
# CONFIG_NLS_ISO8859_14 is not set
|
||||
# CONFIG_NLS_ISO8859_15 is not set
|
||||
# CONFIG_NLS_KOI8_R is not set
|
||||
# CONFIG_NLS_KOI8_U is not set
|
||||
# CONFIG_NLS_UTF8 is not set
|
||||
|
||||
#
|
||||
# Kernel hacking
|
||||
|
@ -1096,6 +1477,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
|
|||
CONFIG_TRACING_SUPPORT=y
|
||||
CONFIG_FTRACE=y
|
||||
# CONFIG_FUNCTION_TRACER is not set
|
||||
# CONFIG_IRQSOFF_TRACER is not set
|
||||
# CONFIG_SCHED_TRACER is not set
|
||||
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
|
||||
# CONFIG_BOOT_TRACER is not set
|
||||
|
@ -1106,6 +1488,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
|
|||
# CONFIG_KMEMTRACE is not set
|
||||
# CONFIG_WORKQUEUE_TRACER is not set
|
||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||
# CONFIG_ATOMIC64_SELFTEST is not set
|
||||
# CONFIG_SAMPLES is not set
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.34
|
||||
# Sat May 22 03:18:18 2010
|
||||
# Wed May 26 19:04:32 2010
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||
CONFIG_GENERIC_GPIO=y
|
||||
CONFIG_GENERIC_TIME=y
|
||||
CONFIG_ARCH_USES_GETTIMEOFFSET=y
|
||||
CONFIG_HAVE_PROC_CPU=y
|
||||
CONFIG_NO_IOPORT=y
|
||||
CONFIG_GENERIC_HARDIRQS=y
|
||||
|
@ -33,6 +35,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
|
|||
CONFIG_LOCALVERSION=""
|
||||
CONFIG_LOCALVERSION_AUTO=y
|
||||
CONFIG_HAVE_KERNEL_GZIP=y
|
||||
CONFIG_HAVE_KERNEL_LZMA=y
|
||||
CONFIG_HAVE_KERNEL_LZO=y
|
||||
CONFIG_KERNEL_GZIP=y
|
||||
# CONFIG_KERNEL_BZIP2 is not set
|
||||
|
@ -178,9 +181,11 @@ CONFIG_MMU=y
|
|||
# CONFIG_ARCH_INTEGRATOR is not set
|
||||
# CONFIG_ARCH_REALVIEW is not set
|
||||
# CONFIG_ARCH_VERSATILE is not set
|
||||
# CONFIG_ARCH_VEXPRESS is not set
|
||||
# CONFIG_ARCH_AT91 is not set
|
||||
# CONFIG_ARCH_BCMRING is not set
|
||||
# CONFIG_ARCH_CLPS711X is not set
|
||||
# CONFIG_ARCH_CNS3XXX is not set
|
||||
# CONFIG_ARCH_GEMINI is not set
|
||||
# CONFIG_ARCH_EBSA110 is not set
|
||||
# CONFIG_ARCH_EP93XX is not set
|
||||
|
@ -216,7 +221,7 @@ CONFIG_MMU=y
|
|||
# CONFIG_ARCH_S3C64XX is not set
|
||||
CONFIG_ARCH_S5P6440=y
|
||||
# CONFIG_ARCH_S5P6442 is not set
|
||||
# CONFIG_ARCH_S5PC1XX is not set
|
||||
# CONFIG_ARCH_S5PC100 is not set
|
||||
# CONFIG_ARCH_S5PV210 is not set
|
||||
# CONFIG_ARCH_SHARK is not set
|
||||
# CONFIG_ARCH_LH7A40X is not set
|
||||
|
@ -225,6 +230,7 @@ CONFIG_ARCH_S5P6440=y
|
|||
# CONFIG_ARCH_NOMADIK is not set
|
||||
# CONFIG_ARCH_DAVINCI is not set
|
||||
# CONFIG_ARCH_OMAP is not set
|
||||
# CONFIG_PLAT_SPEAR is not set
|
||||
CONFIG_PLAT_SAMSUNG=y
|
||||
|
||||
#
|
||||
|
@ -240,10 +246,15 @@ CONFIG_SAMSUNG_GPIOLIB_4BIT=y
|
|||
CONFIG_S3C_GPIO_CFG_S3C24XX=y
|
||||
CONFIG_S3C_GPIO_CFG_S3C64XX=y
|
||||
CONFIG_S3C_GPIO_PULL_UPDOWN=y
|
||||
CONFIG_S5P_GPIO_DRVSTR=y
|
||||
CONFIG_SAMSUNG_GPIO_EXTRA=0
|
||||
CONFIG_S3C_GPIO_SPACE=0
|
||||
CONFIG_S3C_GPIO_TRACK=y
|
||||
# CONFIG_S3C_ADC is not set
|
||||
CONFIG_S3C_DEV_WDT=y
|
||||
CONFIG_SAMSUNG_DEV_ADC=y
|
||||
CONFIG_SAMSUNG_DEV_TS=y
|
||||
CONFIG_S3C_PL330_DMA=y
|
||||
|
||||
#
|
||||
# Power management
|
||||
|
@ -276,10 +287,12 @@ CONFIG_ARM_THUMB=y
|
|||
# CONFIG_CPU_DCACHE_DISABLE is not set
|
||||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||
CONFIG_ARM_L1_CACHE_SHIFT=5
|
||||
CONFIG_ARM_DMA_MEM_BUFFERABLE=y
|
||||
CONFIG_CPU_HAS_PMU=y
|
||||
# CONFIG_ARM_ERRATA_411920 is not set
|
||||
CONFIG_ARM_VIC=y
|
||||
CONFIG_ARM_VIC_NR=2
|
||||
CONFIG_PL330=y
|
||||
|
||||
#
|
||||
# Bus support
|
||||
|
@ -326,6 +339,7 @@ CONFIG_ALIGNMENT_TRAP=y
|
|||
CONFIG_ZBOOT_ROM_TEXT=0
|
||||
CONFIG_ZBOOT_ROM_BSS=0
|
||||
CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x20800000,8M console=ttySAC1,115200 init=/linuxrc"
|
||||
# CONFIG_CMDLINE_FORCE is not set
|
||||
# CONFIG_XIP_KERNEL is not set
|
||||
# CONFIG_KEXEC is not set
|
||||
|
||||
|
@ -490,7 +504,9 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
|
|||
CONFIG_INPUT_TOUCHSCREEN=y
|
||||
# CONFIG_TOUCHSCREEN_AD7879 is not set
|
||||
# CONFIG_TOUCHSCREEN_DYNAPRO is not set
|
||||
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
|
||||
# CONFIG_TOUCHSCREEN_FUJITSU is not set
|
||||
# CONFIG_TOUCHSCREEN_S3C2410 is not set
|
||||
# CONFIG_TOUCHSCREEN_GUNZE is not set
|
||||
# CONFIG_TOUCHSCREEN_ELO is not set
|
||||
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
|
||||
|
@ -546,6 +562,8 @@ CONFIG_SERIAL_S3C6400=y
|
|||
CONFIG_SERIAL_CORE=y
|
||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
|
||||
# CONFIG_SERIAL_ALTERA_UART is not set
|
||||
CONFIG_UNIX98_PTYS=y
|
||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||
CONFIG_LEGACY_PTYS=y
|
||||
|
@ -593,6 +611,7 @@ CONFIG_GPIOLIB=y
|
|||
# CONFIG_HWMON is not set
|
||||
# CONFIG_THERMAL is not set
|
||||
# CONFIG_WATCHDOG is not set
|
||||
CONFIG_HAVE_S3C2410_WATCHDOG=y
|
||||
CONFIG_SSB_POSSIBLE=y
|
||||
|
||||
#
|
||||
|
@ -649,10 +668,6 @@ CONFIG_RTC_LIB=y
|
|||
# CONFIG_DMADEVICES is not set
|
||||
# CONFIG_AUXDISPLAY is not set
|
||||
# CONFIG_UIO is not set
|
||||
|
||||
#
|
||||
# TI VLYNQ
|
||||
#
|
||||
# CONFIG_STAGING is not set
|
||||
|
||||
#
|
||||
|
@ -850,6 +865,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
|
|||
CONFIG_TRACING_SUPPORT=y
|
||||
CONFIG_FTRACE=y
|
||||
# CONFIG_FUNCTION_TRACER is not set
|
||||
# CONFIG_IRQSOFF_TRACER is not set
|
||||
# CONFIG_SCHED_TRACER is not set
|
||||
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
|
||||
# CONFIG_BOOT_TRACER is not set
|
||||
|
@ -860,6 +876,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
|
|||
# CONFIG_KMEMTRACE is not set
|
||||
# CONFIG_WORKQUEUE_TRACER is not set
|
||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||
# CONFIG_ATOMIC64_SELFTEST is not set
|
||||
# CONFIG_SAMPLES is not set
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.34
|
||||
# Sat May 22 03:18:19 2010
|
||||
# Wed May 26 19:04:34 2010
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||
CONFIG_GENERIC_GPIO=y
|
||||
CONFIG_GENERIC_TIME=y
|
||||
CONFIG_ARCH_USES_GETTIMEOFFSET=y
|
||||
CONFIG_HAVE_PROC_CPU=y
|
||||
CONFIG_NO_IOPORT=y
|
||||
CONFIG_GENERIC_HARDIRQS=y
|
||||
|
@ -33,6 +35,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
|
|||
CONFIG_LOCALVERSION=""
|
||||
CONFIG_LOCALVERSION_AUTO=y
|
||||
CONFIG_HAVE_KERNEL_GZIP=y
|
||||
CONFIG_HAVE_KERNEL_LZMA=y
|
||||
CONFIG_HAVE_KERNEL_LZO=y
|
||||
CONFIG_KERNEL_GZIP=y
|
||||
# CONFIG_KERNEL_BZIP2 is not set
|
||||
|
@ -178,9 +181,11 @@ CONFIG_MMU=y
|
|||
# CONFIG_ARCH_INTEGRATOR is not set
|
||||
# CONFIG_ARCH_REALVIEW is not set
|
||||
# CONFIG_ARCH_VERSATILE is not set
|
||||
# CONFIG_ARCH_VEXPRESS is not set
|
||||
# CONFIG_ARCH_AT91 is not set
|
||||
# CONFIG_ARCH_BCMRING is not set
|
||||
# CONFIG_ARCH_CLPS711X is not set
|
||||
# CONFIG_ARCH_CNS3XXX is not set
|
||||
# CONFIG_ARCH_GEMINI is not set
|
||||
# CONFIG_ARCH_EBSA110 is not set
|
||||
# CONFIG_ARCH_EP93XX is not set
|
||||
|
@ -216,7 +221,7 @@ CONFIG_MMU=y
|
|||
# CONFIG_ARCH_S3C64XX is not set
|
||||
# CONFIG_ARCH_S5P6440 is not set
|
||||
CONFIG_ARCH_S5P6442=y
|
||||
# CONFIG_ARCH_S5PC1XX is not set
|
||||
# CONFIG_ARCH_S5PC100 is not set
|
||||
# CONFIG_ARCH_S5PV210 is not set
|
||||
# CONFIG_ARCH_SHARK is not set
|
||||
# CONFIG_ARCH_LH7A40X is not set
|
||||
|
@ -225,6 +230,7 @@ CONFIG_ARCH_S5P6442=y
|
|||
# CONFIG_ARCH_NOMADIK is not set
|
||||
# CONFIG_ARCH_DAVINCI is not set
|
||||
# CONFIG_ARCH_OMAP is not set
|
||||
# CONFIG_PLAT_SPEAR is not set
|
||||
CONFIG_PLAT_SAMSUNG=y
|
||||
|
||||
#
|
||||
|
@ -240,10 +246,12 @@ CONFIG_SAMSUNG_GPIOLIB_4BIT=y
|
|||
CONFIG_S3C_GPIO_CFG_S3C24XX=y
|
||||
CONFIG_S3C_GPIO_CFG_S3C64XX=y
|
||||
CONFIG_S3C_GPIO_PULL_UPDOWN=y
|
||||
CONFIG_S5P_GPIO_DRVSTR=y
|
||||
CONFIG_SAMSUNG_GPIO_EXTRA=0
|
||||
CONFIG_S3C_GPIO_SPACE=0
|
||||
CONFIG_S3C_GPIO_TRACK=y
|
||||
# CONFIG_S3C_ADC is not set
|
||||
CONFIG_S3C_PL330_DMA=y
|
||||
|
||||
#
|
||||
# Power management
|
||||
|
@ -276,10 +284,12 @@ CONFIG_ARM_THUMB=y
|
|||
# CONFIG_CPU_DCACHE_DISABLE is not set
|
||||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||
CONFIG_ARM_L1_CACHE_SHIFT=5
|
||||
CONFIG_ARM_DMA_MEM_BUFFERABLE=y
|
||||
CONFIG_CPU_HAS_PMU=y
|
||||
# CONFIG_ARM_ERRATA_411920 is not set
|
||||
CONFIG_ARM_VIC=y
|
||||
CONFIG_ARM_VIC_NR=2
|
||||
CONFIG_PL330=y
|
||||
|
||||
#
|
||||
# Bus support
|
||||
|
@ -326,6 +336,7 @@ CONFIG_ALIGNMENT_TRAP=y
|
|||
CONFIG_ZBOOT_ROM_TEXT=0
|
||||
CONFIG_ZBOOT_ROM_BSS=0
|
||||
CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x20800000,8M console=ttySAC1,115200 init=/linuxrc"
|
||||
# CONFIG_CMDLINE_FORCE is not set
|
||||
# CONFIG_XIP_KERNEL is not set
|
||||
# CONFIG_KEXEC is not set
|
||||
|
||||
|
@ -471,6 +482,7 @@ CONFIG_INPUT_EVDEV=y
|
|||
CONFIG_INPUT_TOUCHSCREEN=y
|
||||
# CONFIG_TOUCHSCREEN_AD7879 is not set
|
||||
# CONFIG_TOUCHSCREEN_DYNAPRO is not set
|
||||
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
|
||||
# CONFIG_TOUCHSCREEN_FUJITSU is not set
|
||||
# CONFIG_TOUCHSCREEN_GUNZE is not set
|
||||
# CONFIG_TOUCHSCREEN_ELO is not set
|
||||
|
@ -525,6 +537,8 @@ CONFIG_SERIAL_S5PV210=y
|
|||
CONFIG_SERIAL_CORE=y
|
||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
|
||||
# CONFIG_SERIAL_ALTERA_UART is not set
|
||||
CONFIG_UNIX98_PTYS=y
|
||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||
CONFIG_LEGACY_PTYS=y
|
||||
|
@ -624,10 +638,6 @@ CONFIG_RTC_LIB=y
|
|||
# CONFIG_DMADEVICES is not set
|
||||
# CONFIG_AUXDISPLAY is not set
|
||||
# CONFIG_UIO is not set
|
||||
|
||||
#
|
||||
# TI VLYNQ
|
||||
#
|
||||
# CONFIG_STAGING is not set
|
||||
|
||||
#
|
||||
|
@ -836,6 +846,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
|
|||
CONFIG_TRACING_SUPPORT=y
|
||||
CONFIG_FTRACE=y
|
||||
# CONFIG_FUNCTION_TRACER is not set
|
||||
# CONFIG_IRQSOFF_TRACER is not set
|
||||
# CONFIG_SCHED_TRACER is not set
|
||||
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
|
||||
# CONFIG_BOOT_TRACER is not set
|
||||
|
@ -846,6 +857,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
|
|||
# CONFIG_KMEMTRACE is not set
|
||||
# CONFIG_WORKQUEUE_TRACER is not set
|
||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||
# CONFIG_ATOMIC64_SELFTEST is not set
|
||||
# CONFIG_SAMPLES is not set
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.30
|
||||
# Wed Jul 1 15:53:07 2009
|
||||
# Linux kernel version: 2.6.34
|
||||
# Wed May 26 19:04:35 2010
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||
CONFIG_GENERIC_GPIO=y
|
||||
CONFIG_MMU=y
|
||||
CONFIG_GENERIC_TIME=y
|
||||
CONFIG_ARCH_USES_GETTIMEOFFSET=y
|
||||
CONFIG_HAVE_PROC_CPU=y
|
||||
CONFIG_NO_IOPORT=y
|
||||
CONFIG_GENERIC_HARDIRQS=y
|
||||
CONFIG_STACKTRACE_SUPPORT=y
|
||||
|
@ -18,7 +20,9 @@ CONFIG_GENERIC_IRQ_PROBE=y
|
|||
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||
CONFIG_GENERIC_HWEIGHT=y
|
||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||
CONFIG_NEED_DMA_MAP_STATE=y
|
||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||
CONFIG_ARM_L1_CACHE_SHIFT_6=y
|
||||
CONFIG_VECTORS_BASE=0xffff0000
|
||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||
CONFIG_CONSTRUCTORS=y
|
||||
|
@ -31,6 +35,13 @@ CONFIG_BROKEN_ON_SMP=y
|
|||
CONFIG_INIT_ENV_ARG_LIMIT=32
|
||||
CONFIG_LOCALVERSION=""
|
||||
CONFIG_LOCALVERSION_AUTO=y
|
||||
CONFIG_HAVE_KERNEL_GZIP=y
|
||||
CONFIG_HAVE_KERNEL_LZMA=y
|
||||
CONFIG_HAVE_KERNEL_LZO=y
|
||||
CONFIG_KERNEL_GZIP=y
|
||||
# CONFIG_KERNEL_BZIP2 is not set
|
||||
# CONFIG_KERNEL_LZMA is not set
|
||||
# CONFIG_KERNEL_LZO is not set
|
||||
CONFIG_SWAP=y
|
||||
# CONFIG_SYSVIPC is not set
|
||||
# CONFIG_BSD_PROCESS_ACCT is not set
|
||||
|
@ -38,14 +49,15 @@ CONFIG_SWAP=y
|
|||
#
|
||||
# RCU Subsystem
|
||||
#
|
||||
CONFIG_CLASSIC_RCU=y
|
||||
# CONFIG_TREE_RCU is not set
|
||||
# CONFIG_PREEMPT_RCU is not set
|
||||
CONFIG_TREE_RCU=y
|
||||
# CONFIG_TREE_PREEMPT_RCU is not set
|
||||
# CONFIG_TINY_RCU is not set
|
||||
# CONFIG_RCU_TRACE is not set
|
||||
CONFIG_RCU_FANOUT=32
|
||||
# CONFIG_RCU_FANOUT_EXACT is not set
|
||||
# CONFIG_TREE_RCU_TRACE is not set
|
||||
# CONFIG_PREEMPT_RCU_TRACE is not set
|
||||
# CONFIG_IKCONFIG is not set
|
||||
CONFIG_LOG_BUF_SHIFT=17
|
||||
# CONFIG_GROUP_SCHED is not set
|
||||
# CONFIG_CGROUPS is not set
|
||||
CONFIG_SYSFS_DEPRECATED=y
|
||||
CONFIG_SYSFS_DEPRECATED_V2=y
|
||||
|
@ -59,6 +71,7 @@ CONFIG_INITRAMFS_SOURCE=""
|
|||
CONFIG_RD_GZIP=y
|
||||
CONFIG_RD_BZIP2=y
|
||||
CONFIG_RD_LZMA=y
|
||||
CONFIG_RD_LZO=y
|
||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||
CONFIG_SYSCTL=y
|
||||
CONFIG_ANON_INODES=y
|
||||
|
@ -80,19 +93,21 @@ CONFIG_TIMERFD=y
|
|||
CONFIG_EVENTFD=y
|
||||
CONFIG_SHMEM=y
|
||||
CONFIG_AIO=y
|
||||
CONFIG_HAVE_PERF_EVENTS=y
|
||||
CONFIG_PERF_USE_VMALLOC=y
|
||||
|
||||
#
|
||||
# Performance Counters
|
||||
# Kernel Performance Events And Counters
|
||||
#
|
||||
# CONFIG_PERF_EVENTS is not set
|
||||
# CONFIG_PERF_COUNTERS is not set
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
CONFIG_SLUB_DEBUG=y
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
CONFIG_COMPAT_BRK=y
|
||||
# CONFIG_SLAB is not set
|
||||
CONFIG_SLUB=y
|
||||
# CONFIG_SLOB is not set
|
||||
# CONFIG_PROFILING is not set
|
||||
# CONFIG_MARKERS is not set
|
||||
CONFIG_HAVE_OPROFILE=y
|
||||
# CONFIG_KPROBES is not set
|
||||
CONFIG_HAVE_KPROBES=y
|
||||
|
@ -122,25 +137,56 @@ CONFIG_LBDAF=y
|
|||
# IO Schedulers
|
||||
#
|
||||
CONFIG_IOSCHED_NOOP=y
|
||||
CONFIG_IOSCHED_AS=y
|
||||
CONFIG_IOSCHED_DEADLINE=y
|
||||
CONFIG_IOSCHED_CFQ=y
|
||||
# CONFIG_DEFAULT_AS is not set
|
||||
# CONFIG_DEFAULT_DEADLINE is not set
|
||||
CONFIG_DEFAULT_CFQ=y
|
||||
# CONFIG_DEFAULT_NOOP is not set
|
||||
CONFIG_DEFAULT_IOSCHED="cfq"
|
||||
# CONFIG_INLINE_SPIN_TRYLOCK is not set
|
||||
# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
|
||||
# CONFIG_INLINE_SPIN_LOCK is not set
|
||||
# CONFIG_INLINE_SPIN_LOCK_BH is not set
|
||||
# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
|
||||
# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
|
||||
# CONFIG_INLINE_SPIN_UNLOCK is not set
|
||||
# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
|
||||
# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
|
||||
# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
|
||||
# CONFIG_INLINE_READ_TRYLOCK is not set
|
||||
# CONFIG_INLINE_READ_LOCK is not set
|
||||
# CONFIG_INLINE_READ_LOCK_BH is not set
|
||||
# CONFIG_INLINE_READ_LOCK_IRQ is not set
|
||||
# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
|
||||
# CONFIG_INLINE_READ_UNLOCK is not set
|
||||
# CONFIG_INLINE_READ_UNLOCK_BH is not set
|
||||
# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
|
||||
# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
|
||||
# CONFIG_INLINE_WRITE_TRYLOCK is not set
|
||||
# CONFIG_INLINE_WRITE_LOCK is not set
|
||||
# CONFIG_INLINE_WRITE_LOCK_BH is not set
|
||||
# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
|
||||
# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
|
||||
# CONFIG_INLINE_WRITE_UNLOCK is not set
|
||||
# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
|
||||
# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
|
||||
# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
|
||||
# CONFIG_MUTEX_SPIN_ON_OWNER is not set
|
||||
# CONFIG_FREEZER is not set
|
||||
|
||||
#
|
||||
# System Type
|
||||
#
|
||||
CONFIG_MMU=y
|
||||
# CONFIG_ARCH_AAEC2000 is not set
|
||||
# CONFIG_ARCH_INTEGRATOR is not set
|
||||
# CONFIG_ARCH_REALVIEW is not set
|
||||
# CONFIG_ARCH_VERSATILE is not set
|
||||
# CONFIG_ARCH_VEXPRESS is not set
|
||||
# CONFIG_ARCH_AT91 is not set
|
||||
# CONFIG_ARCH_BCMRING is not set
|
||||
# CONFIG_ARCH_CLPS711X is not set
|
||||
# CONFIG_ARCH_CNS3XXX is not set
|
||||
# CONFIG_ARCH_GEMINI is not set
|
||||
# CONFIG_ARCH_EBSA110 is not set
|
||||
# CONFIG_ARCH_EP93XX is not set
|
||||
|
@ -156,6 +202,7 @@ CONFIG_DEFAULT_IOSCHED="cfq"
|
|||
# CONFIG_ARCH_IXP2000 is not set
|
||||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_L7200 is not set
|
||||
# CONFIG_ARCH_DOVE is not set
|
||||
# CONFIG_ARCH_KIRKWOOD is not set
|
||||
# CONFIG_ARCH_LOKI is not set
|
||||
# CONFIG_ARCH_MV78XX0 is not set
|
||||
|
@ -164,39 +211,64 @@ CONFIG_DEFAULT_IOSCHED="cfq"
|
|||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_NS9XXX is not set
|
||||
# CONFIG_ARCH_W90X900 is not set
|
||||
# CONFIG_ARCH_NUC93X is not set
|
||||
# CONFIG_ARCH_PNX4008 is not set
|
||||
# CONFIG_ARCH_PXA is not set
|
||||
# CONFIG_ARCH_MSM is not set
|
||||
# CONFIG_ARCH_SHMOBILE is not set
|
||||
# CONFIG_ARCH_RPC is not set
|
||||
# CONFIG_ARCH_SA1100 is not set
|
||||
# CONFIG_ARCH_S3C2410 is not set
|
||||
# CONFIG_ARCH_S3C64XX is not set
|
||||
# CONFIG_ARCH_S5P6440 is not set
|
||||
# CONFIG_ARCH_S5P6442 is not set
|
||||
CONFIG_ARCH_S5PC100=y
|
||||
# CONFIG_ARCH_S5PV210 is not set
|
||||
# CONFIG_ARCH_SHARK is not set
|
||||
# CONFIG_ARCH_LH7A40X is not set
|
||||
# CONFIG_ARCH_U300 is not set
|
||||
# CONFIG_ARCH_U8500 is not set
|
||||
# CONFIG_ARCH_NOMADIK is not set
|
||||
# CONFIG_ARCH_DAVINCI is not set
|
||||
# CONFIG_ARCH_OMAP is not set
|
||||
CONFIG_PLAT_S3C=y
|
||||
# CONFIG_PLAT_SPEAR is not set
|
||||
CONFIG_PLAT_SAMSUNG=y
|
||||
|
||||
#
|
||||
# Boot options
|
||||
#
|
||||
# CONFIG_S3C_BOOT_ERROR_RESET is not set
|
||||
CONFIG_S3C_BOOT_UART_FORCE_FIFO=y
|
||||
CONFIG_S3C_LOWLEVEL_UART_PORT=0
|
||||
CONFIG_SAMSUNG_CLKSRC=y
|
||||
CONFIG_SAMSUNG_IRQ_VIC_TIMER=y
|
||||
CONFIG_SAMSUNG_IRQ_UART=y
|
||||
CONFIG_SAMSUNG_GPIOLIB_4BIT=y
|
||||
CONFIG_S3C_GPIO_CFG_S3C24XX=y
|
||||
CONFIG_S3C_GPIO_CFG_S3C64XX=y
|
||||
CONFIG_S3C_GPIO_PULL_UPDOWN=y
|
||||
CONFIG_S5P_GPIO_DRVSTR=y
|
||||
CONFIG_SAMSUNG_GPIO_EXTRA=0
|
||||
CONFIG_S3C_GPIO_SPACE=0
|
||||
CONFIG_S3C_GPIO_TRACK=y
|
||||
# CONFIG_S3C_ADC is not set
|
||||
CONFIG_S3C_DEV_HSMMC=y
|
||||
CONFIG_S3C_DEV_HSMMC1=y
|
||||
CONFIG_S3C_DEV_HSMMC2=y
|
||||
CONFIG_S3C_DEV_I2C1=y
|
||||
CONFIG_S3C_DEV_FB=y
|
||||
CONFIG_S3C_PL330_DMA=y
|
||||
|
||||
#
|
||||
# Power management
|
||||
#
|
||||
CONFIG_S3C_LOWLEVEL_UART_PORT=0
|
||||
CONFIG_S3C_GPIO_SPACE=0
|
||||
CONFIG_S3C_GPIO_TRACK=y
|
||||
CONFIG_S3C_GPIO_PULL_UPDOWN=y
|
||||
CONFIG_PLAT_S5PC1XX=y
|
||||
CONFIG_CPU_S5PC100_INIT=y
|
||||
CONFIG_CPU_S5PC100_CLOCK=y
|
||||
CONFIG_S5PC100_SETUP_I2C0=y
|
||||
CONFIG_PLAT_S5P=y
|
||||
CONFIG_S5P_EXT_INT=y
|
||||
CONFIG_CPU_S5PC100=y
|
||||
CONFIG_S5PC100_SETUP_FB_24BPP=y
|
||||
CONFIG_S5PC100_SETUP_I2C1=y
|
||||
CONFIG_S5PC100_SETUP_SDHCI=y
|
||||
CONFIG_S5PC100_SETUP_SDHCI_GPIO=y
|
||||
CONFIG_MACH_SMDKC100=y
|
||||
|
||||
#
|
||||
|
@ -206,7 +278,7 @@ CONFIG_CPU_32v6K=y
|
|||
CONFIG_CPU_V7=y
|
||||
CONFIG_CPU_32v7=y
|
||||
CONFIG_CPU_ABRT_EV7=y
|
||||
CONFIG_CPU_PABRT_IFAR=y
|
||||
CONFIG_CPU_PABRT_V7=y
|
||||
CONFIG_CPU_CACHE_V7=y
|
||||
CONFIG_CPU_CACHE_VIPT=y
|
||||
CONFIG_CPU_COPY_V6=y
|
||||
|
@ -224,11 +296,15 @@ CONFIG_ARM_THUMB=y
|
|||
# CONFIG_CPU_DCACHE_DISABLE is not set
|
||||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||
CONFIG_HAS_TLS_REG=y
|
||||
CONFIG_ARM_L1_CACHE_SHIFT=6
|
||||
CONFIG_ARM_DMA_MEM_BUFFERABLE=y
|
||||
CONFIG_CPU_HAS_PMU=y
|
||||
# CONFIG_ARM_ERRATA_430973 is not set
|
||||
# CONFIG_ARM_ERRATA_458693 is not set
|
||||
# CONFIG_ARM_ERRATA_460075 is not set
|
||||
CONFIG_ARM_VIC=y
|
||||
CONFIG_ARM_VIC_NR=2
|
||||
CONFIG_PL330=y
|
||||
|
||||
#
|
||||
# Bus support
|
||||
|
@ -244,8 +320,11 @@ CONFIG_VMSPLIT_3G=y
|
|||
# CONFIG_VMSPLIT_2G is not set
|
||||
# CONFIG_VMSPLIT_1G is not set
|
||||
CONFIG_PAGE_OFFSET=0xC0000000
|
||||
CONFIG_PREEMPT_NONE=y
|
||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||
# CONFIG_PREEMPT is not set
|
||||
CONFIG_HZ=100
|
||||
# CONFIG_THUMB2_KERNEL is not set
|
||||
CONFIG_AEABI=y
|
||||
CONFIG_OABI_COMPAT=y
|
||||
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
|
||||
|
@ -258,12 +337,11 @@ CONFIG_FLATMEM_MANUAL=y
|
|||
CONFIG_FLATMEM=y
|
||||
CONFIG_FLAT_NODE_MEM_MAP=y
|
||||
CONFIG_PAGEFLAGS_EXTENDED=y
|
||||
CONFIG_SPLIT_PTLOCK_CPUS=4
|
||||
CONFIG_SPLIT_PTLOCK_CPUS=999999
|
||||
# CONFIG_PHYS_ADDR_T_64BIT is not set
|
||||
CONFIG_ZONE_DMA_FLAG=0
|
||||
CONFIG_VIRT_TO_BUS=y
|
||||
CONFIG_HAVE_MLOCK=y
|
||||
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
|
||||
# CONFIG_KSM is not set
|
||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
||||
CONFIG_ALIGNMENT_TRAP=y
|
||||
# CONFIG_UACCESS_WITH_MEMCPY is not set
|
||||
|
@ -274,6 +352,7 @@ CONFIG_ALIGNMENT_TRAP=y
|
|||
CONFIG_ZBOOT_ROM_TEXT=0
|
||||
CONFIG_ZBOOT_ROM_BSS=0
|
||||
CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=cramfs init=/linuxrc console=ttySAC2,115200 mem=128M"
|
||||
# CONFIG_CMDLINE_FORCE is not set
|
||||
# CONFIG_XIP_KERNEL is not set
|
||||
# CONFIG_KEXEC is not set
|
||||
|
||||
|
@ -317,6 +396,7 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
|||
# Generic Driver Options
|
||||
#
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
# CONFIG_DEVTMPFS is not set
|
||||
CONFIG_STANDALONE=y
|
||||
CONFIG_PREVENT_FIRMWARE_BUILD=y
|
||||
CONFIG_FW_LOADER=y
|
||||
|
@ -331,6 +411,10 @@ CONFIG_BLK_DEV=y
|
|||
# CONFIG_BLK_DEV_COW_COMMON is not set
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
|
||||
|
||||
#
|
||||
# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
|
||||
#
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_COUNT=16
|
||||
CONFIG_BLK_DEV_RAM_SIZE=8192
|
||||
|
@ -338,9 +422,12 @@ CONFIG_BLK_DEV_RAM_SIZE=8192
|
|||
# CONFIG_CDROM_PKTCDVD is not set
|
||||
# CONFIG_MG_DISK is not set
|
||||
CONFIG_MISC_DEVICES=y
|
||||
# CONFIG_AD525X_DPOT is not set
|
||||
# CONFIG_ICS932S401 is not set
|
||||
# CONFIG_ENCLOSURE_SERVICES is not set
|
||||
# CONFIG_ISL29003 is not set
|
||||
# CONFIG_SENSORS_TSL2550 is not set
|
||||
# CONFIG_DS1682 is not set
|
||||
# CONFIG_C2PORT is not set
|
||||
|
||||
#
|
||||
|
@ -350,18 +437,21 @@ CONFIG_EEPROM_AT24=y
|
|||
# CONFIG_EEPROM_LEGACY is not set
|
||||
# CONFIG_EEPROM_MAX6875 is not set
|
||||
# CONFIG_EEPROM_93CX6 is not set
|
||||
# CONFIG_IWMC3200TOP is not set
|
||||
CONFIG_HAVE_IDE=y
|
||||
# CONFIG_IDE is not set
|
||||
|
||||
#
|
||||
# SCSI device support
|
||||
#
|
||||
CONFIG_SCSI_MOD=y
|
||||
# CONFIG_RAID_ATTRS is not set
|
||||
# CONFIG_SCSI is not set
|
||||
# CONFIG_SCSI_DMA is not set
|
||||
# CONFIG_SCSI_NETLINK is not set
|
||||
# CONFIG_ATA is not set
|
||||
# CONFIG_MD is not set
|
||||
# CONFIG_PHONE is not set
|
||||
|
||||
#
|
||||
# Input device support
|
||||
|
@ -369,6 +459,7 @@ CONFIG_HAVE_IDE=y
|
|||
CONFIG_INPUT=y
|
||||
# CONFIG_INPUT_FF_MEMLESS is not set
|
||||
# CONFIG_INPUT_POLLDEV is not set
|
||||
# CONFIG_INPUT_SPARSEKMAP is not set
|
||||
|
||||
#
|
||||
# Userland interfaces
|
||||
|
@ -385,13 +476,19 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
|
|||
# Input Device Drivers
|
||||
#
|
||||
CONFIG_INPUT_KEYBOARD=y
|
||||
# CONFIG_KEYBOARD_ADP5588 is not set
|
||||
CONFIG_KEYBOARD_ATKBD=y
|
||||
# CONFIG_KEYBOARD_SUNKBD is not set
|
||||
# CONFIG_QT2160 is not set
|
||||
# CONFIG_KEYBOARD_LKKBD is not set
|
||||
# CONFIG_KEYBOARD_XTKBD is not set
|
||||
# CONFIG_KEYBOARD_NEWTON is not set
|
||||
# CONFIG_KEYBOARD_STOWAWAY is not set
|
||||
# CONFIG_KEYBOARD_GPIO is not set
|
||||
# CONFIG_KEYBOARD_TCA6416 is not set
|
||||
# CONFIG_KEYBOARD_MATRIX is not set
|
||||
# CONFIG_KEYBOARD_MAX7359 is not set
|
||||
# CONFIG_KEYBOARD_NEWTON is not set
|
||||
# CONFIG_KEYBOARD_OPENCORES is not set
|
||||
# CONFIG_KEYBOARD_STOWAWAY is not set
|
||||
# CONFIG_KEYBOARD_SUNKBD is not set
|
||||
# CONFIG_KEYBOARD_XTKBD is not set
|
||||
CONFIG_INPUT_MOUSE=y
|
||||
CONFIG_MOUSE_PS2=y
|
||||
CONFIG_MOUSE_PS2_ALPS=y
|
||||
|
@ -399,6 +496,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
|
|||
CONFIG_MOUSE_PS2_SYNAPTICS=y
|
||||
CONFIG_MOUSE_PS2_TRACKPOINT=y
|
||||
# CONFIG_MOUSE_PS2_ELANTECH is not set
|
||||
# CONFIG_MOUSE_PS2_SENTELIC is not set
|
||||
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
|
||||
# CONFIG_MOUSE_SERIAL is not set
|
||||
# CONFIG_MOUSE_APPLETOUCH is not set
|
||||
|
@ -418,6 +516,7 @@ CONFIG_SERIO=y
|
|||
CONFIG_SERIO_SERPORT=y
|
||||
CONFIG_SERIO_LIBPS2=y
|
||||
# CONFIG_SERIO_RAW is not set
|
||||
# CONFIG_SERIO_ALTERA_PS2 is not set
|
||||
# CONFIG_GAMEPORT is not set
|
||||
|
||||
#
|
||||
|
@ -444,11 +543,16 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
|
|||
# Non-8250 serial port support
|
||||
#
|
||||
CONFIG_SERIAL_SAMSUNG=y
|
||||
CONFIG_SERIAL_SAMSUNG_UARTS=3
|
||||
CONFIG_SERIAL_SAMSUNG_UARTS_4=y
|
||||
CONFIG_SERIAL_SAMSUNG_UARTS=4
|
||||
# CONFIG_SERIAL_SAMSUNG_DEBUG is not set
|
||||
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
|
||||
CONFIG_SERIAL_S3C6400=y
|
||||
CONFIG_SERIAL_CORE=y
|
||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
|
||||
# CONFIG_SERIAL_ALTERA_UART is not set
|
||||
CONFIG_UNIX98_PTYS=y
|
||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||
CONFIG_LEGACY_PTYS=y
|
||||
|
@ -461,6 +565,7 @@ CONFIG_HW_RANDOM=y
|
|||
# CONFIG_TCG_TPM is not set
|
||||
CONFIG_I2C=y
|
||||
CONFIG_I2C_BOARDINFO=y
|
||||
CONFIG_I2C_COMPAT=y
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_I2C_HELPER_AUTO=y
|
||||
|
||||
|
@ -471,9 +576,11 @@ CONFIG_I2C_HELPER_AUTO=y
|
|||
#
|
||||
# I2C system bus drivers (mostly embedded / system-on-chip)
|
||||
#
|
||||
# CONFIG_I2C_DESIGNWARE is not set
|
||||
# CONFIG_I2C_GPIO is not set
|
||||
# CONFIG_I2C_OCORES is not set
|
||||
# CONFIG_I2C_SIMTEC is not set
|
||||
# CONFIG_I2C_XILINX is not set
|
||||
|
||||
#
|
||||
# External I2C/SMBus adapter drivers
|
||||
|
@ -486,20 +593,15 @@ CONFIG_I2C_HELPER_AUTO=y
|
|||
#
|
||||
# CONFIG_I2C_PCA_PLATFORM is not set
|
||||
# CONFIG_I2C_STUB is not set
|
||||
|
||||
#
|
||||
# Miscellaneous I2C Chip support
|
||||
#
|
||||
# CONFIG_DS1682 is not set
|
||||
# CONFIG_SENSORS_PCF8574 is not set
|
||||
# CONFIG_PCF8575 is not set
|
||||
# CONFIG_SENSORS_PCA9539 is not set
|
||||
# CONFIG_SENSORS_TSL2550 is not set
|
||||
# CONFIG_I2C_DEBUG_CORE is not set
|
||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||
# CONFIG_I2C_DEBUG_BUS is not set
|
||||
# CONFIG_I2C_DEBUG_CHIP is not set
|
||||
# CONFIG_SPI is not set
|
||||
|
||||
#
|
||||
# PPS support
|
||||
#
|
||||
# CONFIG_PPS is not set
|
||||
CONFIG_ARCH_REQUIRE_GPIOLIB=y
|
||||
CONFIG_GPIOLIB=y
|
||||
# CONFIG_DEBUG_GPIO is not set
|
||||
|
@ -508,13 +610,16 @@ CONFIG_GPIOLIB=y
|
|||
#
|
||||
# Memory mapped GPIO expanders:
|
||||
#
|
||||
# CONFIG_GPIO_IT8761E is not set
|
||||
|
||||
#
|
||||
# I2C GPIO expanders:
|
||||
#
|
||||
# CONFIG_GPIO_MAX7300 is not set
|
||||
# CONFIG_GPIO_MAX732X is not set
|
||||
# CONFIG_GPIO_PCA953X is not set
|
||||
# CONFIG_GPIO_PCF857X is not set
|
||||
# CONFIG_GPIO_ADP5588 is not set
|
||||
|
||||
#
|
||||
# PCI GPIO expanders:
|
||||
|
@ -523,10 +628,19 @@ CONFIG_GPIOLIB=y
|
|||
#
|
||||
# SPI GPIO expanders:
|
||||
#
|
||||
|
||||
#
|
||||
# AC97 GPIO expanders:
|
||||
#
|
||||
# CONFIG_W1 is not set
|
||||
# CONFIG_POWER_SUPPLY is not set
|
||||
CONFIG_HWMON=y
|
||||
# CONFIG_HWMON_VID is not set
|
||||
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||
|
||||
#
|
||||
# Native drivers
|
||||
#
|
||||
# CONFIG_SENSORS_AD7414 is not set
|
||||
# CONFIG_SENSORS_AD7418 is not set
|
||||
# CONFIG_SENSORS_ADM1021 is not set
|
||||
|
@ -535,10 +649,11 @@ CONFIG_HWMON=y
|
|||
# CONFIG_SENSORS_ADM1029 is not set
|
||||
# CONFIG_SENSORS_ADM1031 is not set
|
||||
# CONFIG_SENSORS_ADM9240 is not set
|
||||
# CONFIG_SENSORS_ADT7411 is not set
|
||||
# CONFIG_SENSORS_ADT7462 is not set
|
||||
# CONFIG_SENSORS_ADT7470 is not set
|
||||
# CONFIG_SENSORS_ADT7473 is not set
|
||||
# CONFIG_SENSORS_ADT7475 is not set
|
||||
# CONFIG_SENSORS_ASC7621 is not set
|
||||
# CONFIG_SENSORS_ATXP1 is not set
|
||||
# CONFIG_SENSORS_DS1621 is not set
|
||||
# CONFIG_SENSORS_F71805F is not set
|
||||
|
@ -549,6 +664,7 @@ CONFIG_HWMON=y
|
|||
# CONFIG_SENSORS_GL520SM is not set
|
||||
# CONFIG_SENSORS_IT87 is not set
|
||||
# CONFIG_SENSORS_LM63 is not set
|
||||
# CONFIG_SENSORS_LM73 is not set
|
||||
# CONFIG_SENSORS_LM75 is not set
|
||||
# CONFIG_SENSORS_LM77 is not set
|
||||
# CONFIG_SENSORS_LM78 is not set
|
||||
|
@ -573,8 +689,10 @@ CONFIG_HWMON=y
|
|||
# CONFIG_SENSORS_SMSC47M192 is not set
|
||||
# CONFIG_SENSORS_SMSC47B397 is not set
|
||||
# CONFIG_SENSORS_ADS7828 is not set
|
||||
# CONFIG_SENSORS_AMC6821 is not set
|
||||
# CONFIG_SENSORS_THMC50 is not set
|
||||
# CONFIG_SENSORS_TMP401 is not set
|
||||
# CONFIG_SENSORS_TMP421 is not set
|
||||
# CONFIG_SENSORS_VT1211 is not set
|
||||
# CONFIG_SENSORS_W83781D is not set
|
||||
# CONFIG_SENSORS_W83791D is not set
|
||||
|
@ -584,9 +702,8 @@ CONFIG_HWMON=y
|
|||
# CONFIG_SENSORS_W83L786NG is not set
|
||||
# CONFIG_SENSORS_W83627HF is not set
|
||||
# CONFIG_SENSORS_W83627EHF is not set
|
||||
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||
# CONFIG_SENSORS_LIS3_I2C is not set
|
||||
# CONFIG_THERMAL is not set
|
||||
# CONFIG_THERMAL_HWMON is not set
|
||||
# CONFIG_WATCHDOG is not set
|
||||
CONFIG_SSB_POSSIBLE=y
|
||||
|
||||
|
@ -599,10 +716,12 @@ CONFIG_SSB_POSSIBLE=y
|
|||
# Multifunction device drivers
|
||||
#
|
||||
# CONFIG_MFD_CORE is not set
|
||||
# CONFIG_MFD_88PM860X is not set
|
||||
# CONFIG_MFD_SM501 is not set
|
||||
# CONFIG_MFD_ASIC3 is not set
|
||||
# CONFIG_HTC_EGPIO is not set
|
||||
# CONFIG_HTC_PASIC3 is not set
|
||||
# CONFIG_HTC_I2CPLD is not set
|
||||
# CONFIG_TPS65010 is not set
|
||||
# CONFIG_TWL4030_CORE is not set
|
||||
# CONFIG_MFD_TMIO is not set
|
||||
|
@ -610,10 +729,15 @@ CONFIG_SSB_POSSIBLE=y
|
|||
# CONFIG_MFD_TC6387XB is not set
|
||||
# CONFIG_MFD_TC6393XB is not set
|
||||
# CONFIG_PMIC_DA903X is not set
|
||||
# CONFIG_PMIC_ADP5520 is not set
|
||||
# CONFIG_MFD_MAX8925 is not set
|
||||
# CONFIG_MFD_WM8400 is not set
|
||||
# CONFIG_MFD_WM831X is not set
|
||||
# CONFIG_MFD_WM8350_I2C is not set
|
||||
# CONFIG_MFD_WM8994 is not set
|
||||
# CONFIG_MFD_PCF50633 is not set
|
||||
# CONFIG_AB3100_CORE is not set
|
||||
# CONFIG_REGULATOR is not set
|
||||
# CONFIG_MEDIA_SUPPORT is not set
|
||||
|
||||
#
|
||||
|
@ -637,7 +761,6 @@ CONFIG_DUMMY_CONSOLE=y
|
|||
# CONFIG_SOUND is not set
|
||||
CONFIG_HID_SUPPORT=y
|
||||
CONFIG_HID=y
|
||||
CONFIG_HID_DEBUG=y
|
||||
# CONFIG_HIDRAW is not set
|
||||
# CONFIG_HID_PID is not set
|
||||
|
||||
|
@ -680,13 +803,12 @@ CONFIG_SDIO_UART=y
|
|||
CONFIG_MMC_SDHCI=y
|
||||
# CONFIG_MMC_SDHCI_PLTFM is not set
|
||||
# CONFIG_MEMSTICK is not set
|
||||
# CONFIG_ACCESSIBILITY is not set
|
||||
# CONFIG_NEW_LEDS is not set
|
||||
# CONFIG_ACCESSIBILITY is not set
|
||||
CONFIG_RTC_LIB=y
|
||||
# CONFIG_RTC_CLASS is not set
|
||||
# CONFIG_DMADEVICES is not set
|
||||
# CONFIG_AUXDISPLAY is not set
|
||||
# CONFIG_REGULATOR is not set
|
||||
# CONFIG_UIO is not set
|
||||
# CONFIG_STAGING is not set
|
||||
|
||||
|
@ -710,6 +832,7 @@ CONFIG_FS_POSIX_ACL=y
|
|||
# CONFIG_XFS_FS is not set
|
||||
# CONFIG_GFS2_FS is not set
|
||||
# CONFIG_BTRFS_FS is not set
|
||||
# CONFIG_NILFS2_FS is not set
|
||||
CONFIG_FILE_LOCKING=y
|
||||
CONFIG_FSNOTIFY=y
|
||||
CONFIG_DNOTIFY=y
|
||||
|
@ -758,6 +881,7 @@ CONFIG_MISC_FILESYSTEMS=y
|
|||
# CONFIG_BEFS_FS is not set
|
||||
# CONFIG_BFS_FS is not set
|
||||
# CONFIG_EFS_FS is not set
|
||||
# CONFIG_LOGFS is not set
|
||||
CONFIG_CRAMFS=y
|
||||
# CONFIG_SQUASHFS is not set
|
||||
# CONFIG_VXFS_FS is not set
|
||||
|
@ -772,7 +896,6 @@ CONFIG_ROMFS_BACKED_BY_BLOCK=y
|
|||
CONFIG_ROMFS_ON_BLOCK=y
|
||||
# CONFIG_SYSV_FS is not set
|
||||
# CONFIG_UFS_FS is not set
|
||||
# CONFIG_NILFS2_FS is not set
|
||||
|
||||
#
|
||||
# Partition Types
|
||||
|
@ -789,6 +912,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
|
|||
CONFIG_ENABLE_MUST_CHECK=y
|
||||
CONFIG_FRAME_WARN=1024
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
# CONFIG_UNUSED_SYMBOLS is not set
|
||||
# CONFIG_DEBUG_FS is not set
|
||||
# CONFIG_HEADERS_CHECK is not set
|
||||
|
@ -826,11 +950,13 @@ CONFIG_DEBUG_MEMORY_INIT=y
|
|||
# CONFIG_DEBUG_LIST is not set
|
||||
# CONFIG_DEBUG_SG is not set
|
||||
# CONFIG_DEBUG_NOTIFIERS is not set
|
||||
# CONFIG_DEBUG_CREDENTIALS is not set
|
||||
# CONFIG_BOOT_PRINTK_DELAY is not set
|
||||
# CONFIG_RCU_TORTURE_TEST is not set
|
||||
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
|
||||
# CONFIG_BACKTRACE_SELF_TEST is not set
|
||||
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
|
||||
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
|
||||
# CONFIG_FAULT_INJECTION is not set
|
||||
# CONFIG_LATENCYTOP is not set
|
||||
CONFIG_SYSCTL_SYSCALL_CHECK=y
|
||||
|
@ -839,6 +965,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
|
|||
CONFIG_TRACING_SUPPORT=y
|
||||
CONFIG_FTRACE=y
|
||||
# CONFIG_FUNCTION_TRACER is not set
|
||||
# CONFIG_IRQSOFF_TRACER is not set
|
||||
# CONFIG_SCHED_TRACER is not set
|
||||
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
|
||||
# CONFIG_BOOT_TRACER is not set
|
||||
|
@ -849,6 +976,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
|
|||
# CONFIG_KMEMTRACE is not set
|
||||
# CONFIG_WORKQUEUE_TRACER is not set
|
||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||
# CONFIG_ATOMIC64_SELFTEST is not set
|
||||
# CONFIG_SAMPLES is not set
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
|
@ -857,8 +985,9 @@ CONFIG_DEBUG_USER=y
|
|||
CONFIG_DEBUG_ERRORS=y
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
CONFIG_DEBUG_LL=y
|
||||
# CONFIG_EARLY_PRINTK is not set
|
||||
# CONFIG_DEBUG_ICEDCC is not set
|
||||
CONFIG_DEBUG_S3C_PORT=y
|
||||
# CONFIG_OC_ETM is not set
|
||||
CONFIG_DEBUG_S3C_UART=0
|
||||
|
||||
#
|
||||
|
@ -867,7 +996,11 @@ CONFIG_DEBUG_S3C_UART=0
|
|||
# CONFIG_KEYS is not set
|
||||
# CONFIG_SECURITY is not set
|
||||
# CONFIG_SECURITYFS is not set
|
||||
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
|
||||
# CONFIG_DEFAULT_SECURITY_SELINUX is not set
|
||||
# CONFIG_DEFAULT_SECURITY_SMACK is not set
|
||||
# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
|
||||
CONFIG_DEFAULT_SECURITY_DAC=y
|
||||
CONFIG_DEFAULT_SECURITY=""
|
||||
# CONFIG_CRYPTO is not set
|
||||
# CONFIG_BINARY_PRINTF is not set
|
||||
|
||||
|
@ -884,8 +1017,10 @@ CONFIG_CRC32=y
|
|||
# CONFIG_CRC7 is not set
|
||||
# CONFIG_LIBCRC32C is not set
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_LZO_DECOMPRESS=y
|
||||
CONFIG_DECOMPRESS_GZIP=y
|
||||
CONFIG_DECOMPRESS_BZIP2=y
|
||||
CONFIG_DECOMPRESS_LZMA=y
|
||||
CONFIG_DECOMPRESS_LZO=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_DMA=y
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.34
|
||||
# Sat May 22 03:18:21 2010
|
||||
# Wed May 26 19:04:37 2010
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||
CONFIG_GENERIC_GPIO=y
|
||||
CONFIG_GENERIC_TIME=y
|
||||
CONFIG_ARCH_USES_GETTIMEOFFSET=y
|
||||
CONFIG_HAVE_PROC_CPU=y
|
||||
CONFIG_NO_IOPORT=y
|
||||
CONFIG_GENERIC_HARDIRQS=y
|
||||
|
@ -35,6 +37,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
|
|||
CONFIG_LOCALVERSION=""
|
||||
CONFIG_LOCALVERSION_AUTO=y
|
||||
CONFIG_HAVE_KERNEL_GZIP=y
|
||||
CONFIG_HAVE_KERNEL_LZMA=y
|
||||
CONFIG_HAVE_KERNEL_LZO=y
|
||||
CONFIG_KERNEL_GZIP=y
|
||||
# CONFIG_KERNEL_BZIP2 is not set
|
||||
|
@ -180,9 +183,11 @@ CONFIG_MMU=y
|
|||
# CONFIG_ARCH_INTEGRATOR is not set
|
||||
# CONFIG_ARCH_REALVIEW is not set
|
||||
# CONFIG_ARCH_VERSATILE is not set
|
||||
# CONFIG_ARCH_VEXPRESS is not set
|
||||
# CONFIG_ARCH_AT91 is not set
|
||||
# CONFIG_ARCH_BCMRING is not set
|
||||
# CONFIG_ARCH_CLPS711X is not set
|
||||
# CONFIG_ARCH_CNS3XXX is not set
|
||||
# CONFIG_ARCH_GEMINI is not set
|
||||
# CONFIG_ARCH_EBSA110 is not set
|
||||
# CONFIG_ARCH_EP93XX is not set
|
||||
|
@ -218,7 +223,7 @@ CONFIG_MMU=y
|
|||
# CONFIG_ARCH_S3C64XX is not set
|
||||
# CONFIG_ARCH_S5P6440 is not set
|
||||
# CONFIG_ARCH_S5P6442 is not set
|
||||
# CONFIG_ARCH_S5PC1XX is not set
|
||||
# CONFIG_ARCH_S5PC100 is not set
|
||||
CONFIG_ARCH_S5PV210=y
|
||||
# CONFIG_ARCH_SHARK is not set
|
||||
# CONFIG_ARCH_LH7A40X is not set
|
||||
|
@ -227,6 +232,7 @@ CONFIG_ARCH_S5PV210=y
|
|||
# CONFIG_ARCH_NOMADIK is not set
|
||||
# CONFIG_ARCH_DAVINCI is not set
|
||||
# CONFIG_ARCH_OMAP is not set
|
||||
# CONFIG_PLAT_SPEAR is not set
|
||||
CONFIG_PLAT_SAMSUNG=y
|
||||
|
||||
#
|
||||
|
@ -242,16 +248,22 @@ CONFIG_SAMSUNG_GPIOLIB_4BIT=y
|
|||
CONFIG_S3C_GPIO_CFG_S3C24XX=y
|
||||
CONFIG_S3C_GPIO_CFG_S3C64XX=y
|
||||
CONFIG_S3C_GPIO_PULL_UPDOWN=y
|
||||
CONFIG_S5P_GPIO_DRVSTR=y
|
||||
CONFIG_SAMSUNG_GPIO_EXTRA=0
|
||||
CONFIG_S3C_GPIO_SPACE=0
|
||||
CONFIG_S3C_GPIO_TRACK=y
|
||||
# CONFIG_S3C_ADC is not set
|
||||
CONFIG_S3C_DEV_WDT=y
|
||||
CONFIG_S3C_PL330_DMA=y
|
||||
|
||||
#
|
||||
# Power management
|
||||
#
|
||||
CONFIG_PLAT_S5P=y
|
||||
CONFIG_S5P_EXT_INT=y
|
||||
CONFIG_CPU_S5PV210=y
|
||||
# CONFIG_MACH_AQUILA is not set
|
||||
# CONFIG_MACH_GONI is not set
|
||||
# CONFIG_MACH_SMDKV210 is not set
|
||||
CONFIG_MACH_SMDKC110=y
|
||||
|
||||
|
@ -281,12 +293,14 @@ CONFIG_ARM_THUMB=y
|
|||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||
CONFIG_HAS_TLS_REG=y
|
||||
CONFIG_ARM_L1_CACHE_SHIFT=6
|
||||
CONFIG_ARM_DMA_MEM_BUFFERABLE=y
|
||||
CONFIG_CPU_HAS_PMU=y
|
||||
# CONFIG_ARM_ERRATA_430973 is not set
|
||||
# CONFIG_ARM_ERRATA_458693 is not set
|
||||
# CONFIG_ARM_ERRATA_460075 is not set
|
||||
CONFIG_ARM_VIC=y
|
||||
CONFIG_ARM_VIC_NR=2
|
||||
CONFIG_PL330=y
|
||||
|
||||
#
|
||||
# Bus support
|
||||
|
@ -335,6 +349,7 @@ CONFIG_ALIGNMENT_TRAP=y
|
|||
CONFIG_ZBOOT_ROM_TEXT=0
|
||||
CONFIG_ZBOOT_ROM_BSS=0
|
||||
CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x20800000,8M console=ttySAC1,115200 init=/linuxrc"
|
||||
# CONFIG_CMDLINE_FORCE is not set
|
||||
# CONFIG_XIP_KERNEL is not set
|
||||
# CONFIG_KEXEC is not set
|
||||
|
||||
|
@ -481,6 +496,7 @@ CONFIG_INPUT_EVDEV=y
|
|||
CONFIG_INPUT_TOUCHSCREEN=y
|
||||
# CONFIG_TOUCHSCREEN_AD7879 is not set
|
||||
# CONFIG_TOUCHSCREEN_DYNAPRO is not set
|
||||
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
|
||||
# CONFIG_TOUCHSCREEN_FUJITSU is not set
|
||||
# CONFIG_TOUCHSCREEN_GUNZE is not set
|
||||
# CONFIG_TOUCHSCREEN_ELO is not set
|
||||
|
@ -536,6 +552,8 @@ CONFIG_SERIAL_S5PV210=y
|
|||
CONFIG_SERIAL_CORE=y
|
||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
|
||||
# CONFIG_SERIAL_ALTERA_UART is not set
|
||||
CONFIG_UNIX98_PTYS=y
|
||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||
CONFIG_LEGACY_PTYS=y
|
||||
|
@ -583,6 +601,7 @@ CONFIG_GPIOLIB=y
|
|||
# CONFIG_HWMON is not set
|
||||
# CONFIG_THERMAL is not set
|
||||
# CONFIG_WATCHDOG is not set
|
||||
CONFIG_HAVE_S3C2410_WATCHDOG=y
|
||||
CONFIG_SSB_POSSIBLE=y
|
||||
|
||||
#
|
||||
|
@ -635,10 +654,6 @@ CONFIG_RTC_LIB=y
|
|||
# CONFIG_DMADEVICES is not set
|
||||
# CONFIG_AUXDISPLAY is not set
|
||||
# CONFIG_UIO is not set
|
||||
|
||||
#
|
||||
# TI VLYNQ
|
||||
#
|
||||
# CONFIG_STAGING is not set
|
||||
|
||||
#
|
||||
|
@ -847,6 +862,8 @@ CONFIG_HAVE_FUNCTION_TRACER=y
|
|||
CONFIG_TRACING_SUPPORT=y
|
||||
CONFIG_FTRACE=y
|
||||
# CONFIG_FUNCTION_TRACER is not set
|
||||
# CONFIG_IRQSOFF_TRACER is not set
|
||||
# CONFIG_PREEMPT_TRACER is not set
|
||||
# CONFIG_SCHED_TRACER is not set
|
||||
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
|
||||
# CONFIG_BOOT_TRACER is not set
|
||||
|
@ -857,6 +874,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
|
|||
# CONFIG_KMEMTRACE is not set
|
||||
# CONFIG_WORKQUEUE_TRACER is not set
|
||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||
# CONFIG_ATOMIC64_SELFTEST is not set
|
||||
# CONFIG_SAMPLES is not set
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.34
|
||||
# Sat May 22 03:18:22 2010
|
||||
# Wed May 26 19:04:39 2010
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||
CONFIG_GENERIC_GPIO=y
|
||||
CONFIG_GENERIC_TIME=y
|
||||
CONFIG_ARCH_USES_GETTIMEOFFSET=y
|
||||
CONFIG_HAVE_PROC_CPU=y
|
||||
CONFIG_NO_IOPORT=y
|
||||
CONFIG_GENERIC_HARDIRQS=y
|
||||
|
@ -35,6 +37,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
|
|||
CONFIG_LOCALVERSION=""
|
||||
CONFIG_LOCALVERSION_AUTO=y
|
||||
CONFIG_HAVE_KERNEL_GZIP=y
|
||||
CONFIG_HAVE_KERNEL_LZMA=y
|
||||
CONFIG_HAVE_KERNEL_LZO=y
|
||||
CONFIG_KERNEL_GZIP=y
|
||||
# CONFIG_KERNEL_BZIP2 is not set
|
||||
|
@ -180,9 +183,11 @@ CONFIG_MMU=y
|
|||
# CONFIG_ARCH_INTEGRATOR is not set
|
||||
# CONFIG_ARCH_REALVIEW is not set
|
||||
# CONFIG_ARCH_VERSATILE is not set
|
||||
# CONFIG_ARCH_VEXPRESS is not set
|
||||
# CONFIG_ARCH_AT91 is not set
|
||||
# CONFIG_ARCH_BCMRING is not set
|
||||
# CONFIG_ARCH_CLPS711X is not set
|
||||
# CONFIG_ARCH_CNS3XXX is not set
|
||||
# CONFIG_ARCH_GEMINI is not set
|
||||
# CONFIG_ARCH_EBSA110 is not set
|
||||
# CONFIG_ARCH_EP93XX is not set
|
||||
|
@ -218,7 +223,7 @@ CONFIG_MMU=y
|
|||
# CONFIG_ARCH_S3C64XX is not set
|
||||
# CONFIG_ARCH_S5P6440 is not set
|
||||
# CONFIG_ARCH_S5P6442 is not set
|
||||
# CONFIG_ARCH_S5PC1XX is not set
|
||||
# CONFIG_ARCH_S5PC100 is not set
|
||||
CONFIG_ARCH_S5PV210=y
|
||||
# CONFIG_ARCH_SHARK is not set
|
||||
# CONFIG_ARCH_LH7A40X is not set
|
||||
|
@ -227,6 +232,7 @@ CONFIG_ARCH_S5PV210=y
|
|||
# CONFIG_ARCH_NOMADIK is not set
|
||||
# CONFIG_ARCH_DAVINCI is not set
|
||||
# CONFIG_ARCH_OMAP is not set
|
||||
# CONFIG_PLAT_SPEAR is not set
|
||||
CONFIG_PLAT_SAMSUNG=y
|
||||
|
||||
#
|
||||
|
@ -242,16 +248,24 @@ CONFIG_SAMSUNG_GPIOLIB_4BIT=y
|
|||
CONFIG_S3C_GPIO_CFG_S3C24XX=y
|
||||
CONFIG_S3C_GPIO_CFG_S3C64XX=y
|
||||
CONFIG_S3C_GPIO_PULL_UPDOWN=y
|
||||
CONFIG_S5P_GPIO_DRVSTR=y
|
||||
CONFIG_SAMSUNG_GPIO_EXTRA=0
|
||||
CONFIG_S3C_GPIO_SPACE=0
|
||||
CONFIG_S3C_GPIO_TRACK=y
|
||||
# CONFIG_S3C_ADC is not set
|
||||
CONFIG_S3C_DEV_WDT=y
|
||||
CONFIG_SAMSUNG_DEV_ADC=y
|
||||
CONFIG_SAMSUNG_DEV_TS=y
|
||||
CONFIG_S3C_PL330_DMA=y
|
||||
|
||||
#
|
||||
# Power management
|
||||
#
|
||||
CONFIG_PLAT_S5P=y
|
||||
CONFIG_S5P_EXT_INT=y
|
||||
CONFIG_CPU_S5PV210=y
|
||||
# CONFIG_MACH_AQUILA is not set
|
||||
# CONFIG_MACH_GONI is not set
|
||||
CONFIG_MACH_SMDKV210=y
|
||||
# CONFIG_MACH_SMDKC110 is not set
|
||||
|
||||
|
@ -281,12 +295,14 @@ CONFIG_ARM_THUMB=y
|
|||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||
CONFIG_HAS_TLS_REG=y
|
||||
CONFIG_ARM_L1_CACHE_SHIFT=6
|
||||
CONFIG_ARM_DMA_MEM_BUFFERABLE=y
|
||||
CONFIG_CPU_HAS_PMU=y
|
||||
# CONFIG_ARM_ERRATA_430973 is not set
|
||||
# CONFIG_ARM_ERRATA_458693 is not set
|
||||
# CONFIG_ARM_ERRATA_460075 is not set
|
||||
CONFIG_ARM_VIC=y
|
||||
CONFIG_ARM_VIC_NR=2
|
||||
CONFIG_PL330=y
|
||||
|
||||
#
|
||||
# Bus support
|
||||
|
@ -335,6 +351,7 @@ CONFIG_ALIGNMENT_TRAP=y
|
|||
CONFIG_ZBOOT_ROM_TEXT=0
|
||||
CONFIG_ZBOOT_ROM_BSS=0
|
||||
CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x20800000,8M console=ttySAC1,115200 init=/linuxrc"
|
||||
# CONFIG_CMDLINE_FORCE is not set
|
||||
# CONFIG_XIP_KERNEL is not set
|
||||
# CONFIG_KEXEC is not set
|
||||
|
||||
|
@ -481,7 +498,9 @@ CONFIG_INPUT_EVDEV=y
|
|||
CONFIG_INPUT_TOUCHSCREEN=y
|
||||
# CONFIG_TOUCHSCREEN_AD7879 is not set
|
||||
# CONFIG_TOUCHSCREEN_DYNAPRO is not set
|
||||
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
|
||||
# CONFIG_TOUCHSCREEN_FUJITSU is not set
|
||||
# CONFIG_TOUCHSCREEN_S3C2410 is not set
|
||||
# CONFIG_TOUCHSCREEN_GUNZE is not set
|
||||
# CONFIG_TOUCHSCREEN_ELO is not set
|
||||
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
|
||||
|
@ -536,6 +555,8 @@ CONFIG_SERIAL_S5PV210=y
|
|||
CONFIG_SERIAL_CORE=y
|
||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
|
||||
# CONFIG_SERIAL_ALTERA_UART is not set
|
||||
CONFIG_UNIX98_PTYS=y
|
||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||
CONFIG_LEGACY_PTYS=y
|
||||
|
@ -583,6 +604,7 @@ CONFIG_GPIOLIB=y
|
|||
# CONFIG_HWMON is not set
|
||||
# CONFIG_THERMAL is not set
|
||||
# CONFIG_WATCHDOG is not set
|
||||
CONFIG_HAVE_S3C2410_WATCHDOG=y
|
||||
CONFIG_SSB_POSSIBLE=y
|
||||
|
||||
#
|
||||
|
@ -635,10 +657,6 @@ CONFIG_RTC_LIB=y
|
|||
# CONFIG_DMADEVICES is not set
|
||||
# CONFIG_AUXDISPLAY is not set
|
||||
# CONFIG_UIO is not set
|
||||
|
||||
#
|
||||
# TI VLYNQ
|
||||
#
|
||||
# CONFIG_STAGING is not set
|
||||
|
||||
#
|
||||
|
@ -847,6 +865,8 @@ CONFIG_HAVE_FUNCTION_TRACER=y
|
|||
CONFIG_TRACING_SUPPORT=y
|
||||
CONFIG_FTRACE=y
|
||||
# CONFIG_FUNCTION_TRACER is not set
|
||||
# CONFIG_IRQSOFF_TRACER is not set
|
||||
# CONFIG_PREEMPT_TRACER is not set
|
||||
# CONFIG_SCHED_TRACER is not set
|
||||
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
|
||||
# CONFIG_BOOT_TRACER is not set
|
||||
|
@ -857,6 +877,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
|
|||
# CONFIG_KMEMTRACE is not set
|
||||
# CONFIG_WORKQUEUE_TRACER is not set
|
||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||
# CONFIG_ATOMIC64_SELFTEST is not set
|
||||
# CONFIG_SAMPLES is not set
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
|
|
|
@ -3,9 +3,6 @@
|
|||
|
||||
#include <asm/memory.h>
|
||||
#include <asm/types.h>
|
||||
|
||||
#include <asm-generic/scatterlist.h>
|
||||
|
||||
#undef ARCH_HAS_SG_CHAIN
|
||||
|
||||
#endif /* _ASMARM_SCATTERLIST_H */
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include <linux/i2c.h>
|
||||
#include <linux/i2c/at24.h>
|
||||
#include <linux/i2c/pca953x.h>
|
||||
#include <linux/mfd/tps6507x.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/mtd/mtd.h>
|
||||
|
@ -24,6 +25,8 @@
|
|||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/mfd/tps6507x.h>
|
||||
#include <linux/input/tps6507x-ts.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
@ -533,10 +536,24 @@ struct regulator_init_data tps65070_regulator_data[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct touchscreen_init_data tps6507x_touchscreen_data = {
|
||||
.poll_period = 30, /* ms between touch samples */
|
||||
.min_pressure = 0x30, /* minimum pressure to trigger touch */
|
||||
.vref = 0, /* turn off vref when not using A/D */
|
||||
.vendor = 0, /* /sys/class/input/input?/id/vendor */
|
||||
.product = 65070, /* /sys/class/input/input?/id/product */
|
||||
.version = 0x100, /* /sys/class/input/input?/id/version */
|
||||
};
|
||||
|
||||
static struct tps6507x_board tps_board = {
|
||||
.tps6507x_pmic_init_data = &tps65070_regulator_data[0],
|
||||
.tps6507x_ts_init_data = &tps6507x_touchscreen_data,
|
||||
};
|
||||
|
||||
static struct i2c_board_info __initdata da850evm_tps65070_info[] = {
|
||||
{
|
||||
I2C_BOARD_INFO("tps6507x", 0x48),
|
||||
.platform_data = &tps65070_regulator_data[0],
|
||||
.platform_data = &tps_board,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -22,6 +22,9 @@ struct davinci_mmc_config {
|
|||
|
||||
/* Version of the MMC/SD controller */
|
||||
u8 version;
|
||||
|
||||
/* Number of sg segments */
|
||||
u8 nr_sg;
|
||||
};
|
||||
void davinci_setup_mmc(int module, struct davinci_mmc_config *config);
|
||||
|
||||
|
|
|
@ -220,11 +220,54 @@ static struct mc13783_regulator_init_data moboard_regulators[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct mc13783_led_platform_data moboard_led[] = {
|
||||
{
|
||||
.id = MC13783_LED_R1,
|
||||
.name = "coreboard-led-4:red",
|
||||
.max_current = 2,
|
||||
},
|
||||
{
|
||||
.id = MC13783_LED_G1,
|
||||
.name = "coreboard-led-4:green",
|
||||
.max_current = 2,
|
||||
},
|
||||
{
|
||||
.id = MC13783_LED_B1,
|
||||
.name = "coreboard-led-4:blue",
|
||||
.max_current = 2,
|
||||
},
|
||||
{
|
||||
.id = MC13783_LED_R2,
|
||||
.name = "coreboard-led-5:red",
|
||||
.max_current = 3,
|
||||
},
|
||||
{
|
||||
.id = MC13783_LED_G2,
|
||||
.name = "coreboard-led-5:green",
|
||||
.max_current = 3,
|
||||
},
|
||||
{
|
||||
.id = MC13783_LED_B2,
|
||||
.name = "coreboard-led-5:blue",
|
||||
.max_current = 3,
|
||||
},
|
||||
};
|
||||
|
||||
static struct mc13783_leds_platform_data moboard_leds = {
|
||||
.num_leds = ARRAY_SIZE(moboard_led),
|
||||
.led = moboard_led,
|
||||
.flags = MC13783_LED_SLEWLIMTC,
|
||||
.abmode = MC13783_LED_AB_DISABLED,
|
||||
.tc1_period = MC13783_LED_PERIOD_10MS,
|
||||
.tc2_period = MC13783_LED_PERIOD_10MS,
|
||||
};
|
||||
|
||||
static struct mc13783_platform_data moboard_pmic = {
|
||||
.regulators = moboard_regulators,
|
||||
.num_regulators = ARRAY_SIZE(moboard_regulators),
|
||||
.leds = &moboard_leds,
|
||||
.flags = MC13783_USE_REGULATOR | MC13783_USE_RTC |
|
||||
MC13783_USE_ADC,
|
||||
MC13783_USE_ADC | MC13783_USE_LED,
|
||||
};
|
||||
|
||||
static struct spi_board_info moboard_spi_board_info[] __initdata = {
|
||||
|
|
|
@ -137,9 +137,7 @@ static void ads7846_dev_init(void)
|
|||
}
|
||||
|
||||
gpio_direction_input(ts_gpio);
|
||||
|
||||
omap_set_gpio_debounce(ts_gpio, 1);
|
||||
omap_set_gpio_debounce_time(ts_gpio, 0xa);
|
||||
gpio_set_debounce(ts_gpio, 310);
|
||||
}
|
||||
|
||||
static int ads7846_get_pendown_state(void)
|
||||
|
|
|
@ -209,8 +209,7 @@ static void ads7846_dev_init(void)
|
|||
}
|
||||
|
||||
gpio_direction_input(ts_gpio);
|
||||
omap_set_gpio_debounce(ts_gpio, 1);
|
||||
omap_set_gpio_debounce_time(ts_gpio, 0xa);
|
||||
gpio_set_debounce(ts_gpio, 310);
|
||||
}
|
||||
|
||||
static int ads7846_get_pendown_state(void)
|
||||
|
|
|
@ -579,9 +579,7 @@ static void ads7846_dev_init(void)
|
|||
printk(KERN_ERR "can't get ads7846 pen down GPIO\n");
|
||||
|
||||
gpio_direction_input(OMAP3_EVM_TS_GPIO);
|
||||
|
||||
omap_set_gpio_debounce(OMAP3_EVM_TS_GPIO, 1);
|
||||
omap_set_gpio_debounce_time(OMAP3_EVM_TS_GPIO, 0xa);
|
||||
gpio_set_debounce(OMAP3_EVM_TS_GPIO, 310);
|
||||
}
|
||||
|
||||
static int ads7846_get_pendown_state(void)
|
||||
|
|
|
@ -130,8 +130,8 @@ static struct platform_device pandora_keys_gpio = {
|
|||
static void __init pandora_keys_gpio_init(void)
|
||||
{
|
||||
/* set debounce time for GPIO banks 4 and 6 */
|
||||
omap_set_gpio_debounce_time(32 * 3, GPIO_DEBOUNCE_TIME);
|
||||
omap_set_gpio_debounce_time(32 * 5, GPIO_DEBOUNCE_TIME);
|
||||
gpio_set_debounce(32 * 3, GPIO_DEBOUNCE_TIME);
|
||||
gpio_set_debounce(32 * 5, GPIO_DEBOUNCE_TIME);
|
||||
}
|
||||
|
||||
static int board_keymap[] = {
|
||||
|
|
|
@ -328,8 +328,7 @@ static void __init omap3_ads7846_init(void)
|
|||
}
|
||||
|
||||
gpio_direction_input(OMAP3_TS_GPIO);
|
||||
omap_set_gpio_debounce(OMAP3_TS_GPIO, 1);
|
||||
omap_set_gpio_debounce_time(OMAP3_TS_GPIO, 0xa);
|
||||
gpio_set_debounce(OMAP3_TS_GPIO, 310);
|
||||
}
|
||||
|
||||
static struct ads7846_platform_data ads7846_config = {
|
||||
|
|
|
@ -240,22 +240,23 @@ static int __init dns323_read_mac_addr(void)
|
|||
|
||||
#define ORION_BLINK_HALF_PERIOD 100 /* ms */
|
||||
|
||||
static int dns323_gpio_blink_set(unsigned gpio,
|
||||
static int dns323_gpio_blink_set(unsigned gpio, int state,
|
||||
unsigned long *delay_on, unsigned long *delay_off)
|
||||
{
|
||||
static int value = 0;
|
||||
|
||||
if (!*delay_on && !*delay_off)
|
||||
if (delay_on && delay_off && !*delay_on && !*delay_off)
|
||||
*delay_on = *delay_off = ORION_BLINK_HALF_PERIOD;
|
||||
|
||||
if (ORION_BLINK_HALF_PERIOD == *delay_on
|
||||
&& ORION_BLINK_HALF_PERIOD == *delay_off) {
|
||||
value = !value;
|
||||
orion_gpio_set_blink(gpio, value);
|
||||
return 0;
|
||||
switch(state) {
|
||||
case GPIO_LED_NO_BLINK_LOW:
|
||||
case GPIO_LED_NO_BLINK_HIGH:
|
||||
orion_gpio_set_blink(gpio, 0);
|
||||
gpio_set_value(gpio, state);
|
||||
break;
|
||||
case GPIO_LED_BLINK:
|
||||
orion_gpio_set_blink(gpio, 1);
|
||||
}
|
||||
|
||||
return -EINVAL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct gpio_led dns323_leds[] = {
|
||||
|
@ -263,6 +264,7 @@ static struct gpio_led dns323_leds[] = {
|
|||
.name = "power:blue",
|
||||
.gpio = DNS323_GPIO_LED_POWER2,
|
||||
.default_trigger = "timer",
|
||||
.active_low = 1,
|
||||
}, {
|
||||
.name = "right:amber",
|
||||
.gpio = DNS323_GPIO_LED_RIGHT_AMBER,
|
||||
|
|
|
@ -263,11 +263,11 @@ const struct matrix_keymap_data palmtc_keymap_data = {
|
|||
.keymap_size = ARRAY_SIZE(palmtc_matrix_keys),
|
||||
};
|
||||
|
||||
const static unsigned int palmtc_keypad_row_gpios[] = {
|
||||
static const unsigned int palmtc_keypad_row_gpios[] = {
|
||||
0, 9, 10, 11
|
||||
};
|
||||
|
||||
const static unsigned int palmtc_keypad_col_gpios[] = {
|
||||
static const unsigned int palmtc_keypad_col_gpios[] = {
|
||||
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 79, 80
|
||||
};
|
||||
|
||||
|
|
|
@ -818,6 +818,9 @@ static struct i2c_board_info akita_i2c_board_info[] = {
|
|||
.type = "max7310",
|
||||
.addr = 0x18,
|
||||
.platform_data = &akita_ioexp,
|
||||
}, {
|
||||
.type = "wm8750",
|
||||
.addr = 0x1b,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -49,7 +49,6 @@
|
|||
#include <linux/io.h>
|
||||
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/backlight.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
|
||||
#include <linux/mfd/pcf50633/core.h>
|
||||
|
@ -57,6 +56,7 @@
|
|||
#include <linux/mfd/pcf50633/adc.h>
|
||||
#include <linux/mfd/pcf50633/gpio.h>
|
||||
#include <linux/mfd/pcf50633/pmic.h>
|
||||
#include <linux/mfd/pcf50633/backlight.h>
|
||||
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
@ -254,6 +254,12 @@ static char *gta02_batteries[] = {
|
|||
"battery",
|
||||
};
|
||||
|
||||
static struct pcf50633_bl_platform_data gta02_backlight_data = {
|
||||
.default_brightness = 0x3f,
|
||||
.default_brightness_limit = 0,
|
||||
.ramp_time = 5,
|
||||
};
|
||||
|
||||
struct pcf50633_platform_data gta02_pcf_pdata = {
|
||||
.resumers = {
|
||||
[0] = PCF50633_INT1_USBINS |
|
||||
|
@ -271,6 +277,8 @@ struct pcf50633_platform_data gta02_pcf_pdata = {
|
|||
|
||||
.charger_reference_current_ma = 1000,
|
||||
|
||||
.backlight_data = >a02_backlight_data,
|
||||
|
||||
.reg_init_data = {
|
||||
[PCF50633_REGULATOR_AUTO] = {
|
||||
.constraints = {
|
||||
|
@ -478,71 +486,6 @@ static struct s3c2410_udc_mach_info gta02_udc_cfg = {
|
|||
|
||||
};
|
||||
|
||||
|
||||
|
||||
static void gta02_bl_set_intensity(int intensity)
|
||||
{
|
||||
struct pcf50633 *pcf = gta02_pcf;
|
||||
int old_intensity = pcf50633_reg_read(pcf, PCF50633_REG_LEDOUT);
|
||||
|
||||
/* We map 8-bit intensity to 6-bit intensity in hardware. */
|
||||
intensity >>= 2;
|
||||
|
||||
/*
|
||||
* This can happen during, eg, print of panic on blanked console,
|
||||
* but we can't service i2c without interrupts active, so abort.
|
||||
*/
|
||||
if (in_atomic()) {
|
||||
printk(KERN_ERR "gta02_bl_set_intensity called while atomic\n");
|
||||
return;
|
||||
}
|
||||
|
||||
old_intensity = pcf50633_reg_read(pcf, PCF50633_REG_LEDOUT);
|
||||
if (intensity == old_intensity)
|
||||
return;
|
||||
|
||||
/* We can't do this anywhere else. */
|
||||
pcf50633_reg_write(pcf, PCF50633_REG_LEDDIM, 5);
|
||||
|
||||
if (!(pcf50633_reg_read(pcf, PCF50633_REG_LEDENA) & 3))
|
||||
old_intensity = 0;
|
||||
|
||||
/*
|
||||
* The PCF50633 cannot handle LEDOUT = 0 (datasheet p60)
|
||||
* if seen, you have to re-enable the LED unit.
|
||||
*/
|
||||
if (!intensity || !old_intensity)
|
||||
pcf50633_reg_write(pcf, PCF50633_REG_LEDENA, 0);
|
||||
|
||||
/* Illegal to set LEDOUT to 0. */
|
||||
if (!intensity)
|
||||
pcf50633_reg_set_bit_mask(pcf, PCF50633_REG_LEDOUT, 0x3f, 2);
|
||||
else
|
||||
pcf50633_reg_set_bit_mask(pcf, PCF50633_REG_LEDOUT, 0x3f,
|
||||
intensity);
|
||||
|
||||
if (intensity)
|
||||
pcf50633_reg_write(pcf, PCF50633_REG_LEDENA, 2);
|
||||
|
||||
}
|
||||
|
||||
static struct generic_bl_info gta02_bl_info = {
|
||||
.name = "gta02-bl",
|
||||
.max_intensity = 0xff,
|
||||
.default_intensity = 0xff,
|
||||
.set_bl_intensity = gta02_bl_set_intensity,
|
||||
};
|
||||
|
||||
static struct platform_device gta02_bl_dev = {
|
||||
.name = "generic-bl",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = >a02_bl_info,
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
|
||||
/* USB */
|
||||
static struct s3c2410_hcd_info gta02_usb_info __initdata = {
|
||||
.port[0] = {
|
||||
|
@ -579,7 +522,6 @@ static struct platform_device *gta02_devices[] __initdata = {
|
|||
/* These guys DO need to be children of PMU. */
|
||||
|
||||
static struct platform_device *gta02_devices_pmu_children[] = {
|
||||
>a02_bl_dev,
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -258,6 +258,12 @@ static struct clk init_clocks[] = {
|
|||
.parent = &clk_h,
|
||||
.enable = s3c64xx_hclk_ctrl,
|
||||
.ctrlbit = S3C_CLKCON_HCLK_HSMMC2,
|
||||
}, {
|
||||
.name = "otg",
|
||||
.id = -1,
|
||||
.parent = &clk_h,
|
||||
.enable = s3c64xx_hclk_ctrl,
|
||||
.ctrlbit = S3C_CLKCON_HCLK_USB,
|
||||
}, {
|
||||
.name = "timers",
|
||||
.id = -1,
|
||||
|
|
|
@ -72,7 +72,14 @@
|
|||
#define S5P_IRQ_EINT_BASE (S5P_IRQ_VIC1(31) + 6)
|
||||
|
||||
#define S5P_EINT(x) ((x) + S5P_IRQ_EINT_BASE)
|
||||
#define IRQ_EINT(x) S5P_EINT(x)
|
||||
|
||||
#define S5P_EINT_BASE1 (S5P_IRQ_EINT_BASE)
|
||||
/*
|
||||
* S5P6440 has 0-15 external interrupts in group 0. Only these can be used
|
||||
* to wake up from sleep. If request is beyond this range, by mistake, a large
|
||||
* return value for an irq number should be indication of something amiss.
|
||||
*/
|
||||
#define S5P_EINT_BASE2 (0xf0000000)
|
||||
|
||||
/*
|
||||
* Next the external interrupt groups. These are similar to the IRQ_EINT(x)
|
||||
|
|
|
@ -77,8 +77,9 @@
|
|||
|
||||
#define S5P_IRQ_EINT_BASE (IRQ_VIC_END + 1)
|
||||
|
||||
#define IRQ_EINT(x) ((x) < 16 ? S5P_IRQ_VIC0(x) : \
|
||||
(S5P_IRQ_EINT_BASE + (x)-16))
|
||||
#define S5P_EINT_BASE1 (S5P_IRQ_VIC0(0))
|
||||
#define S5P_EINT_BASE2 (S5P_IRQ_EINT_BASE)
|
||||
|
||||
/* Set the default NR_IRQS */
|
||||
|
||||
#define NR_IRQS (IRQ_EINT(31) + 1)
|
||||
|
|
|
@ -100,9 +100,6 @@
|
|||
#define S5P_EINT_BASE1 (S5P_IRQ_VIC0(0))
|
||||
#define S5P_EINT_BASE2 (IRQ_VIC_END + 1)
|
||||
|
||||
#define IRQ_EINT(x) ((x) < 16 ? S5P_IRQ_VIC0(x) : \
|
||||
(S5P_EINT_BASE2 + (x) - 16))
|
||||
|
||||
#define S3C_IRQ_GPIO_BASE (IRQ_EINT(31) + 1)
|
||||
#define S3C_IRQ_GPIO(x) (S3C_IRQ_GPIO_BASE + (x))
|
||||
|
||||
|
|
|
@ -60,12 +60,9 @@
|
|||
#define S5PC100EINT30PEND (S5P_VA_GPIO + 0xF40)
|
||||
#define S5P_EINT_PEND(x) (S5PC100EINT30PEND + ((x) * 0x4))
|
||||
|
||||
#define eint_offset(irq) ((irq) < IRQ_EINT16_31 ? ((irq) - IRQ_EINT(0)) : \
|
||||
(((irq) - S5P_EINT_BASE2)))
|
||||
#define EINT_REG_NR(x) (EINT_OFFSET(x) >> 3)
|
||||
|
||||
#define EINT_REG_NR(x) (eint_offset(x) >> 3)
|
||||
|
||||
#define eint_irq_to_bit(irq) (1 << (eint_offset(irq) & 0x7))
|
||||
#define eint_irq_to_bit(irq) (1 << (EINT_OFFSET(irq) & 0x7))
|
||||
|
||||
/* values for S5P_EXTINT0 */
|
||||
#define S5P_EXTINT_LOWLEV (0x00)
|
||||
|
|
|
@ -118,22 +118,12 @@
|
|||
#define IRQ_MDNIE3 S5P_IRQ_VIC3(8)
|
||||
#define IRQ_VIC_END S5P_IRQ_VIC3(31)
|
||||
|
||||
#define S5P_EINT_16_31_BASE (IRQ_VIC_END + 1)
|
||||
|
||||
#define EINT_MODE S3C_GPIO_SFN(0xf)
|
||||
|
||||
#define IRQ_EINT(x) ((x) < 16 ? ((x) + S5P_IRQ_VIC0(0)) \
|
||||
: ((x) + S5P_EINT_16_31_BASE))
|
||||
#define S5P_EINT_BASE1 (S5P_IRQ_VIC0(0))
|
||||
#define S5P_EINT_BASE2 (IRQ_VIC_END + 1)
|
||||
|
||||
/* Set the default NR_IRQS */
|
||||
|
||||
#define NR_IRQS (IRQ_EINT(31) + 1)
|
||||
|
||||
#define EINT_GPIO_0(x) S5PV210_GPH0(x)
|
||||
#define EINT_GPIO_1(x) S5PV210_GPH1(x)
|
||||
#define EINT_GPIO_2(x) S5PV210_GPH2(x)
|
||||
#define EINT_GPIO_3(x) S5PV210_GPH3(x)
|
||||
|
||||
/* Compatibility */
|
||||
#define IRQ_LCD_FIFO IRQ_LCD0
|
||||
#define IRQ_LCD_VSYNC IRQ_LCD1
|
||||
|
|
|
@ -27,12 +27,9 @@
|
|||
#define S5PV210_EINT30PEND (S5P_VA_GPIO + 0xF40)
|
||||
#define S5P_EINT_PEND(x) (S5PV210_EINT30PEND + ((x) * 0x4))
|
||||
|
||||
#define eint_offset(irq) ((irq) < IRQ_EINT16_31 ? ((irq) - IRQ_EINT(0)) \
|
||||
: ((irq) - S5P_EINT_16_31_BASE))
|
||||
#define EINT_REG_NR(x) (EINT_OFFSET(x) >> 3)
|
||||
|
||||
#define EINT_REG_NR(x) (eint_offset(x) >> 3)
|
||||
|
||||
#define eint_irq_to_bit(irq) (1 << (eint_offset(irq) & 0x7))
|
||||
#define eint_irq_to_bit(irq) (1 << (EINT_OFFSET(irq) & 0x7))
|
||||
|
||||
/* values for S5P_EXTINT0 */
|
||||
#define S5P_EXTINT_LOWLEV (0x00)
|
||||
|
@ -41,4 +38,11 @@
|
|||
#define S5P_EXTINT_RISEEDGE (0x03)
|
||||
#define S5P_EXTINT_BOTHEDGE (0x04)
|
||||
|
||||
#define EINT_MODE S3C_GPIO_SFN(0xf)
|
||||
|
||||
#define EINT_GPIO_0(x) S5PV210_GPH0(x)
|
||||
#define EINT_GPIO_1(x) S5PV210_GPH1(x)
|
||||
#define EINT_GPIO_2(x) S5PV210_GPH2(x)
|
||||
#define EINT_GPIO_3(x) S5PV210_GPH3(x)
|
||||
|
||||
#endif /* __ASM_ARCH_REGS_GPIO_H */
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
*/
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/mfd/ab3100.h>
|
||||
#include <linux/mfd/abx500.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/amba/bus.h>
|
||||
#include <mach/irqs.h>
|
||||
|
@ -46,6 +46,7 @@
|
|||
/* BUCK SLEEP 0xAC: 1.05V, Not used, SLEEP_A and B, Not used */
|
||||
#define BUCK_SLEEP_SETTING 0xAC
|
||||
|
||||
#ifdef CONFIG_AB3100_CORE
|
||||
static struct regulator_consumer_supply supply_ldo_c[] = {
|
||||
{
|
||||
.dev_name = "ab3100-codec",
|
||||
|
@ -253,14 +254,68 @@ static struct ab3100_platform_data ab3100_plf_data = {
|
|||
LDO_D_SETTING,
|
||||
},
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_AB3550_CORE
|
||||
static struct abx500_init_settings ab3550_init_settings[] = {
|
||||
{
|
||||
.bank = 0,
|
||||
.reg = AB3550_IMR1,
|
||||
.setting = 0xff
|
||||
},
|
||||
{
|
||||
.bank = 0,
|
||||
.reg = AB3550_IMR2,
|
||||
.setting = 0xff
|
||||
},
|
||||
{
|
||||
.bank = 0,
|
||||
.reg = AB3550_IMR3,
|
||||
.setting = 0xff
|
||||
},
|
||||
{
|
||||
.bank = 0,
|
||||
.reg = AB3550_IMR4,
|
||||
.setting = 0xff
|
||||
},
|
||||
{
|
||||
.bank = 0,
|
||||
.reg = AB3550_IMR5,
|
||||
/* The two most significant bits are not used */
|
||||
.setting = 0x3f
|
||||
},
|
||||
};
|
||||
|
||||
static struct ab3550_platform_data ab3550_plf_data = {
|
||||
.irq = {
|
||||
.base = IRQ_AB3550_BASE,
|
||||
.count = (IRQ_AB3550_END - IRQ_AB3550_BASE + 1),
|
||||
},
|
||||
.dev_data = {
|
||||
},
|
||||
.init_settings = ab3550_init_settings,
|
||||
.init_settings_sz = ARRAY_SIZE(ab3550_init_settings),
|
||||
};
|
||||
#endif
|
||||
|
||||
static struct i2c_board_info __initdata bus0_i2c_board_info[] = {
|
||||
#if defined(CONFIG_AB3550_CORE)
|
||||
{
|
||||
.type = "ab3550",
|
||||
.addr = 0x4A,
|
||||
.irq = IRQ_U300_IRQ0_EXT,
|
||||
.platform_data = &ab3550_plf_data,
|
||||
},
|
||||
#elif defined(CONFIG_AB3100_CORE)
|
||||
{
|
||||
.type = "ab3100",
|
||||
.addr = 0x48,
|
||||
.irq = IRQ_U300_IRQ0_EXT,
|
||||
.platform_data = &ab3100_plf_data,
|
||||
},
|
||||
#else
|
||||
{ },
|
||||
#endif
|
||||
};
|
||||
|
||||
static struct i2c_board_info __initdata bus1_i2c_board_info[] = {
|
||||
|
|
|
@ -109,6 +109,13 @@
|
|||
#define U300_NR_IRQS 48
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_AB3550_CORE
|
||||
#define IRQ_AB3550_BASE (U300_NR_IRQS)
|
||||
#define IRQ_AB3550_END (IRQ_AB3550_BASE + 37)
|
||||
|
||||
#define NR_IRQS (IRQ_AB3550_END + 1)
|
||||
#else
|
||||
#define NR_IRQS U300_NR_IRQS
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -50,7 +50,7 @@ struct pl022_config_chip ab4500_chip_info = {
|
|||
|
||||
static struct spi_board_info u8500_spi_devices[] = {
|
||||
{
|
||||
.modalias = "ab4500",
|
||||
.modalias = "ab8500",
|
||||
.controller_data = &ab4500_chip_info,
|
||||
.max_speed_hz = 12000000,
|
||||
.bus_num = 0,
|
||||
|
|
|
@ -502,7 +502,7 @@ static struct clk_lookup u8500_common_clks[] = {
|
|||
CLK(apetraceclk, "apetrace", NULL),
|
||||
CLK(mcdeclk, "mcde", NULL),
|
||||
CLK(ipi2clk, "ipi2", NULL),
|
||||
CLK(dmaclk, "dma40", NULL),
|
||||
CLK(dmaclk, "dma40.0", NULL),
|
||||
CLK(b2r2clk, "b2r2", NULL),
|
||||
CLK(tvclk, "tv", NULL),
|
||||
};
|
||||
|
|
|
@ -32,6 +32,7 @@ static struct platform_device *platform_devs[] __initdata = {
|
|||
&u8500_gpio_devs[6],
|
||||
&u8500_gpio_devs[7],
|
||||
&u8500_gpio_devs[8],
|
||||
&u8500_dma40_device,
|
||||
};
|
||||
|
||||
/* minimum static i/o mapping required to boot U8500 platforms */
|
||||
|
@ -71,6 +72,9 @@ void __init u8500_init_devices(void)
|
|||
{
|
||||
ux500_init_devices();
|
||||
|
||||
if (cpu_is_u8500ed())
|
||||
dma40_u8500ed_fixup();
|
||||
|
||||
/* Register the platform devices */
|
||||
platform_add_devices(platform_devs, ARRAY_SIZE(platform_devs));
|
||||
|
||||
|
|
|
@ -12,9 +12,13 @@
|
|||
#include <linux/gpio.h>
|
||||
#include <linux/amba/bus.h>
|
||||
|
||||
#include <plat/ste_dma40.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/setup.h>
|
||||
|
||||
#include "ste-dma40-db8500.h"
|
||||
|
||||
static struct nmk_gpio_platform_data u8500_gpio_data[] = {
|
||||
GPIO_DATA("GPIO-0-31", 0),
|
||||
GPIO_DATA("GPIO-32-63", 32), /* 37..63 not routed to pin */
|
||||
|
@ -105,3 +109,108 @@ struct platform_device u8500_i2c4_device = {
|
|||
.resource = u8500_i2c4_resources,
|
||||
.num_resources = ARRAY_SIZE(u8500_i2c4_resources),
|
||||
};
|
||||
|
||||
static struct resource dma40_resources[] = {
|
||||
[0] = {
|
||||
.start = U8500_DMA_BASE,
|
||||
.end = U8500_DMA_BASE + SZ_4K - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
.name = "base",
|
||||
},
|
||||
[1] = {
|
||||
.start = U8500_DMA_LCPA_BASE,
|
||||
.end = U8500_DMA_LCPA_BASE + SZ_4K - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
.name = "lcpa",
|
||||
},
|
||||
[2] = {
|
||||
.start = U8500_DMA_LCLA_BASE,
|
||||
.end = U8500_DMA_LCLA_BASE + 16 * 1024 - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
.name = "lcla",
|
||||
},
|
||||
[3] = {
|
||||
.start = IRQ_DMA,
|
||||
.end = IRQ_DMA,
|
||||
.flags = IORESOURCE_IRQ}
|
||||
};
|
||||
|
||||
/* Default configuration for physcial memcpy */
|
||||
struct stedma40_chan_cfg dma40_memcpy_conf_phy = {
|
||||
.channel_type = (STEDMA40_CHANNEL_IN_PHY_MODE |
|
||||
STEDMA40_LOW_PRIORITY_CHANNEL |
|
||||
STEDMA40_PCHAN_BASIC_MODE),
|
||||
.dir = STEDMA40_MEM_TO_MEM,
|
||||
|
||||
.src_info.endianess = STEDMA40_LITTLE_ENDIAN,
|
||||
.src_info.data_width = STEDMA40_BYTE_WIDTH,
|
||||
.src_info.psize = STEDMA40_PSIZE_PHY_1,
|
||||
|
||||
.dst_info.endianess = STEDMA40_LITTLE_ENDIAN,
|
||||
.dst_info.data_width = STEDMA40_BYTE_WIDTH,
|
||||
.dst_info.psize = STEDMA40_PSIZE_PHY_1,
|
||||
|
||||
};
|
||||
/* Default configuration for logical memcpy */
|
||||
struct stedma40_chan_cfg dma40_memcpy_conf_log = {
|
||||
.channel_type = (STEDMA40_CHANNEL_IN_LOG_MODE |
|
||||
STEDMA40_LOW_PRIORITY_CHANNEL |
|
||||
STEDMA40_LCHAN_SRC_LOG_DST_LOG |
|
||||
STEDMA40_NO_TIM_FOR_LINK),
|
||||
.dir = STEDMA40_MEM_TO_MEM,
|
||||
|
||||
.src_info.endianess = STEDMA40_LITTLE_ENDIAN,
|
||||
.src_info.data_width = STEDMA40_BYTE_WIDTH,
|
||||
.src_info.psize = STEDMA40_PSIZE_LOG_1,
|
||||
|
||||
.dst_info.endianess = STEDMA40_LITTLE_ENDIAN,
|
||||
.dst_info.data_width = STEDMA40_BYTE_WIDTH,
|
||||
.dst_info.psize = STEDMA40_PSIZE_LOG_1,
|
||||
|
||||
};
|
||||
|
||||
/*
|
||||
* Mapping between destination event lines and physical device address.
|
||||
* The event line is tied to a device and therefor the address is constant.
|
||||
*/
|
||||
static const dma_addr_t dma40_tx_map[STEDMA40_NR_DEV];
|
||||
|
||||
/* Mapping between source event lines and physical device address */
|
||||
static const dma_addr_t dma40_rx_map[STEDMA40_NR_DEV];
|
||||
|
||||
/* Reserved event lines for memcpy only */
|
||||
static int dma40_memcpy_event[] = {
|
||||
STEDMA40_MEMCPY_TX_1,
|
||||
STEDMA40_MEMCPY_TX_2,
|
||||
STEDMA40_MEMCPY_TX_3,
|
||||
STEDMA40_MEMCPY_TX_4,
|
||||
};
|
||||
|
||||
static struct stedma40_platform_data dma40_plat_data = {
|
||||
.dev_len = STEDMA40_NR_DEV,
|
||||
.dev_rx = dma40_rx_map,
|
||||
.dev_tx = dma40_tx_map,
|
||||
.memcpy = dma40_memcpy_event,
|
||||
.memcpy_len = ARRAY_SIZE(dma40_memcpy_event),
|
||||
.memcpy_conf_phy = &dma40_memcpy_conf_phy,
|
||||
.memcpy_conf_log = &dma40_memcpy_conf_log,
|
||||
.llis_per_log = 8,
|
||||
};
|
||||
|
||||
struct platform_device u8500_dma40_device = {
|
||||
.dev = {
|
||||
.platform_data = &dma40_plat_data,
|
||||
},
|
||||
.name = "dma40",
|
||||
.id = 0,
|
||||
.num_resources = ARRAY_SIZE(dma40_resources),
|
||||
.resource = dma40_resources
|
||||
};
|
||||
|
||||
void dma40_u8500ed_fixup(void)
|
||||
{
|
||||
dma40_plat_data.memcpy = NULL;
|
||||
dma40_plat_data.memcpy_len = 0;
|
||||
dma40_resources[0].start = U8500_DMA_BASE_ED;
|
||||
dma40_resources[0].end = U8500_DMA_BASE_ED + SZ_4K - 1;
|
||||
}
|
||||
|
|
|
@ -7,6 +7,18 @@
|
|||
#ifndef __MACH_DB8500_REGS_H
|
||||
#define __MACH_DB8500_REGS_H
|
||||
|
||||
/* Base address and bank offsets for ESRAM */
|
||||
#define U8500_ESRAM_BASE 0x40000000
|
||||
#define U8500_ESRAM_BANK_SIZE 0x00020000
|
||||
#define U8500_ESRAM_BANK0 U8500_ESRAM_BASE
|
||||
#define U8500_ESRAM_BANK1 (U8500_ESRAM_BASE + U8500_ESRAM_BANK_SIZE)
|
||||
#define U8500_ESRAM_BANK2 (U8500_ESRAM_BANK1 + U8500_ESRAM_BANK_SIZE)
|
||||
#define U8500_ESRAM_BANK3 (U8500_ESRAM_BANK2 + U8500_ESRAM_BANK_SIZE)
|
||||
#define U8500_ESRAM_BANK4 (U8500_ESRAM_BANK3 + U8500_ESRAM_BANK_SIZE)
|
||||
/* Use bank 4 for DMA LCLA and LCPA */
|
||||
#define U8500_DMA_LCLA_BASE U8500_ESRAM_BANK4
|
||||
#define U8500_DMA_LCPA_BASE (U8500_ESRAM_BANK4 + 0x4000)
|
||||
|
||||
#define U8500_PER3_BASE 0x80000000
|
||||
#define U8500_STM_BASE 0x80100000
|
||||
#define U8500_STM_REG_BASE (U8500_STM_BASE + 0xF000)
|
||||
|
|
|
@ -25,5 +25,8 @@ extern struct platform_device ux500_i2c3_device;
|
|||
|
||||
extern struct platform_device u8500_i2c0_device;
|
||||
extern struct platform_device u8500_i2c4_device;
|
||||
extern struct platform_device u8500_dma40_device;
|
||||
|
||||
void dma40_u8500ed_fixup(void);
|
||||
|
||||
#endif
|
||||
|
|
154
arch/arm/mach-ux500/ste-dma40-db8500.h
Normal file
154
arch/arm/mach-ux500/ste-dma40-db8500.h
Normal file
|
@ -0,0 +1,154 @@
|
|||
/*
|
||||
* arch/arm/mach-ux500/ste_dma40_db8500.h
|
||||
* DB8500-SoC-specific configuration for DMA40
|
||||
*
|
||||
* Copyright (C) ST-Ericsson 2007-2010
|
||||
* License terms: GNU General Public License (GPL) version 2
|
||||
* Author: Per Friden <per.friden@stericsson.com>
|
||||
* Author: Jonas Aaberg <jonas.aberg@stericsson.com>
|
||||
*/
|
||||
#ifndef STE_DMA40_DB8500_H
|
||||
#define STE_DMA40_DB8500_H
|
||||
|
||||
#define STEDMA40_NR_DEV 64
|
||||
|
||||
enum dma_src_dev_type {
|
||||
STEDMA40_DEV_SPI0_RX = 0,
|
||||
STEDMA40_DEV_SD_MMC0_RX = 1,
|
||||
STEDMA40_DEV_SD_MMC1_RX = 2,
|
||||
STEDMA40_DEV_SD_MMC2_RX = 3,
|
||||
STEDMA40_DEV_I2C1_RX = 4,
|
||||
STEDMA40_DEV_I2C3_RX = 5,
|
||||
STEDMA40_DEV_I2C2_RX = 6,
|
||||
STEDMA40_DEV_I2C4_RX = 7, /* Only on V1 */
|
||||
STEDMA40_DEV_SSP0_RX = 8,
|
||||
STEDMA40_DEV_SSP1_RX = 9,
|
||||
STEDMA40_DEV_MCDE_RX = 10,
|
||||
STEDMA40_DEV_UART2_RX = 11,
|
||||
STEDMA40_DEV_UART1_RX = 12,
|
||||
STEDMA40_DEV_UART0_RX = 13,
|
||||
STEDMA40_DEV_MSP2_RX = 14,
|
||||
STEDMA40_DEV_I2C0_RX = 15,
|
||||
STEDMA40_DEV_USB_OTG_IEP_8 = 16,
|
||||
STEDMA40_DEV_USB_OTG_IEP_1_9 = 17,
|
||||
STEDMA40_DEV_USB_OTG_IEP_2_10 = 18,
|
||||
STEDMA40_DEV_USB_OTG_IEP_3_11 = 19,
|
||||
STEDMA40_DEV_SLIM0_CH0_RX_HSI_RX_CH0 = 20,
|
||||
STEDMA40_DEV_SLIM0_CH1_RX_HSI_RX_CH1 = 21,
|
||||
STEDMA40_DEV_SLIM0_CH2_RX_HSI_RX_CH2 = 22,
|
||||
STEDMA40_DEV_SLIM0_CH3_RX_HSI_RX_CH3 = 23,
|
||||
STEDMA40_DEV_SRC_SXA0_RX_TX = 24,
|
||||
STEDMA40_DEV_SRC_SXA1_RX_TX = 25,
|
||||
STEDMA40_DEV_SRC_SXA2_RX_TX = 26,
|
||||
STEDMA40_DEV_SRC_SXA3_RX_TX = 27,
|
||||
STEDMA40_DEV_SD_MM2_RX = 28,
|
||||
STEDMA40_DEV_SD_MM0_RX = 29,
|
||||
STEDMA40_DEV_MSP1_RX = 30,
|
||||
/*
|
||||
* This channel is either SlimBus or MSP,
|
||||
* never both at the same time.
|
||||
*/
|
||||
STEDMA40_SLIM0_CH0_RX = 31,
|
||||
STEDMA40_DEV_MSP0_RX = 31,
|
||||
STEDMA40_DEV_SD_MM1_RX = 32,
|
||||
STEDMA40_DEV_SPI2_RX = 33,
|
||||
STEDMA40_DEV_I2C3_RX2 = 34,
|
||||
STEDMA40_DEV_SPI1_RX = 35,
|
||||
STEDMA40_DEV_USB_OTG_IEP_4_12 = 36,
|
||||
STEDMA40_DEV_USB_OTG_IEP_5_13 = 37,
|
||||
STEDMA40_DEV_USB_OTG_IEP_6_14 = 38,
|
||||
STEDMA40_DEV_USB_OTG_IEP_7_15 = 39,
|
||||
STEDMA40_DEV_SPI3_RX = 40,
|
||||
STEDMA40_DEV_SD_MM3_RX = 41,
|
||||
STEDMA40_DEV_SD_MM4_RX = 42,
|
||||
STEDMA40_DEV_SD_MM5_RX = 43,
|
||||
STEDMA40_DEV_SRC_SXA4_RX_TX = 44,
|
||||
STEDMA40_DEV_SRC_SXA5_RX_TX = 45,
|
||||
STEDMA40_DEV_SRC_SXA6_RX_TX = 46,
|
||||
STEDMA40_DEV_SRC_SXA7_RX_TX = 47,
|
||||
STEDMA40_DEV_CAC1_RX = 48,
|
||||
/* RX channels 49 and 50 are unused */
|
||||
STEDMA40_DEV_MSHC_RX = 51,
|
||||
STEDMA40_DEV_SLIM1_CH0_RX_HSI_RX_CH4 = 52,
|
||||
STEDMA40_DEV_SLIM1_CH1_RX_HSI_RX_CH5 = 53,
|
||||
STEDMA40_DEV_SLIM1_CH2_RX_HSI_RX_CH6 = 54,
|
||||
STEDMA40_DEV_SLIM1_CH3_RX_HSI_RX_CH7 = 55,
|
||||
/* RX channels 56 thru 60 are unused */
|
||||
STEDMA40_DEV_CAC0_RX = 61,
|
||||
/* RX channels 62 and 63 are unused */
|
||||
};
|
||||
|
||||
enum dma_dest_dev_type {
|
||||
STEDMA40_DEV_SPI0_TX = 0,
|
||||
STEDMA40_DEV_SD_MMC0_TX = 1,
|
||||
STEDMA40_DEV_SD_MMC1_TX = 2,
|
||||
STEDMA40_DEV_SD_MMC2_TX = 3,
|
||||
STEDMA40_DEV_I2C1_TX = 4,
|
||||
STEDMA40_DEV_I2C3_TX = 5,
|
||||
STEDMA40_DEV_I2C2_TX = 6,
|
||||
STEDMA50_DEV_I2C4_TX = 7, /* Only on V1 */
|
||||
STEDMA40_DEV_SSP0_TX = 8,
|
||||
STEDMA40_DEV_SSP1_TX = 9,
|
||||
/* TX channel 10 is unused */
|
||||
STEDMA40_DEV_UART2_TX = 11,
|
||||
STEDMA40_DEV_UART1_TX = 12,
|
||||
STEDMA40_DEV_UART0_TX= 13,
|
||||
STEDMA40_DEV_MSP2_TX = 14,
|
||||
STEDMA40_DEV_I2C0_TX = 15,
|
||||
STEDMA40_DEV_USB_OTG_OEP_8 = 16,
|
||||
STEDMA40_DEV_USB_OTG_OEP_1_9 = 17,
|
||||
STEDMA40_DEV_USB_OTG_OEP_2_10= 18,
|
||||
STEDMA40_DEV_USB_OTG_OEP_3_11 = 19,
|
||||
STEDMA40_DEV_SLIM0_CH0_TX_HSI_TX_CH0 = 20,
|
||||
STEDMA40_DEV_SLIM0_CH1_TX_HSI_TX_CH1 = 21,
|
||||
STEDMA40_DEV_SLIM0_CH2_TX_HSI_TX_CH2 = 22,
|
||||
STEDMA40_DEV_SLIM0_CH3_TX_HSI_TX_CH3 = 23,
|
||||
STEDMA40_DEV_DST_SXA0_RX_TX = 24,
|
||||
STEDMA40_DEV_DST_SXA1_RX_TX = 25,
|
||||
STEDMA40_DEV_DST_SXA2_RX_TX = 26,
|
||||
STEDMA40_DEV_DST_SXA3_RX_TX = 27,
|
||||
STEDMA40_DEV_SD_MM2_TX = 28,
|
||||
STEDMA40_DEV_SD_MM0_TX = 29,
|
||||
STEDMA40_DEV_MSP1_TX = 30,
|
||||
/*
|
||||
* This channel is either SlimBus or MSP,
|
||||
* never both at the same time.
|
||||
*/
|
||||
STEDMA40_SLIM0_CH0_TX = 31,
|
||||
STEDMA40_DEV_MSP0_TX = 31,
|
||||
STEDMA40_DEV_SD_MM1_TX = 32,
|
||||
STEDMA40_DEV_SPI2_TX = 33,
|
||||
/* Secondary I2C3 channel */
|
||||
STEDMA40_DEV_I2C3_TX2 = 34,
|
||||
STEDMA40_DEV_SPI1_TX = 35,
|
||||
STEDMA40_DEV_USB_OTG_OEP_4_12 = 36,
|
||||
STEDMA40_DEV_USB_OTG_OEP_5_13 = 37,
|
||||
STEDMA40_DEV_USB_OTG_OEP_6_14 = 38,
|
||||
STEDMA40_DEV_USB_OTG_OEP_7_15 = 39,
|
||||
STEDMA40_DEV_SPI3_TX = 40,
|
||||
STEDMA40_DEV_SD_MM3_TX = 41,
|
||||
STEDMA40_DEV_SD_MM4_TX = 42,
|
||||
STEDMA40_DEV_SD_MM5_TX = 43,
|
||||
STEDMA40_DEV_DST_SXA4_RX_TX = 44,
|
||||
STEDMA40_DEV_DST_SXA5_RX_TX = 45,
|
||||
STEDMA40_DEV_DST_SXA6_RX_TX = 46,
|
||||
STEDMA40_DEV_DST_SXA7_RX_TX = 47,
|
||||
STEDMA40_DEV_CAC1_TX = 48,
|
||||
STEDMA40_DEV_CAC1_TX_HAC1_TX = 49,
|
||||
STEDMA40_DEV_HAC1_TX = 50,
|
||||
STEDMA40_MEMXCPY_TX_0 = 51,
|
||||
STEDMA40_DEV_SLIM1_CH0_TX_HSI_TX_CH4 = 52,
|
||||
STEDMA40_DEV_SLIM1_CH1_TX_HSI_TX_CH5 = 53,
|
||||
STEDMA40_DEV_SLIM1_CH2_TX_HSI_TX_CH6 = 54,
|
||||
STEDMA40_DEV_SLIM1_CH3_TX_HSI_TX_CH7 = 55,
|
||||
STEDMA40_MEMCPY_TX_1 = 56,
|
||||
STEDMA40_MEMCPY_TX_2 = 57,
|
||||
STEDMA40_MEMCPY_TX_3 = 58,
|
||||
STEDMA40_MEMCPY_TX_4 = 59,
|
||||
STEDMA40_MEMCPY_TX_5 = 60,
|
||||
STEDMA40_DEV_CAC0_TX = 61,
|
||||
STEDMA40_DEV_CAC0_TX_HAC0_TX = 62,
|
||||
STEDMA40_DEV_HAC0_TX = 63,
|
||||
};
|
||||
|
||||
#endif
|
|
@ -624,79 +624,58 @@ do { \
|
|||
__raw_writel(l, base + reg); \
|
||||
} while(0)
|
||||
|
||||
void omap_set_gpio_debounce(int gpio, int enable)
|
||||
/**
|
||||
* _set_gpio_debounce - low level gpio debounce time
|
||||
* @bank: the gpio bank we're acting upon
|
||||
* @gpio: the gpio number on this @gpio
|
||||
* @debounce: debounce time to use
|
||||
*
|
||||
* OMAP's debounce time is in 31us steps so we need
|
||||
* to convert and round up to the closest unit.
|
||||
*/
|
||||
static void _set_gpio_debounce(struct gpio_bank *bank, unsigned gpio,
|
||||
unsigned debounce)
|
||||
{
|
||||
struct gpio_bank *bank;
|
||||
void __iomem *reg;
|
||||
unsigned long flags;
|
||||
u32 val, l = 1 << get_gpio_index(gpio);
|
||||
void __iomem *reg = bank->base;
|
||||
u32 val;
|
||||
u32 l;
|
||||
|
||||
if (cpu_class_is_omap1())
|
||||
return;
|
||||
|
||||
bank = get_gpio_bank(gpio);
|
||||
reg = bank->base;
|
||||
|
||||
if (cpu_is_omap44xx())
|
||||
reg += OMAP4_GPIO_DEBOUNCENABLE;
|
||||
if (debounce < 32)
|
||||
debounce = 0x01;
|
||||
else if (debounce > 7936)
|
||||
debounce = 0xff;
|
||||
else
|
||||
reg += OMAP24XX_GPIO_DEBOUNCE_EN;
|
||||
debounce = (debounce / 0x1f) - 1;
|
||||
|
||||
if (!(bank->mod_usage & l)) {
|
||||
printk(KERN_ERR "GPIO %d not requested\n", gpio);
|
||||
return;
|
||||
}
|
||||
|
||||
spin_lock_irqsave(&bank->lock, flags);
|
||||
val = __raw_readl(reg);
|
||||
|
||||
if (enable && !(val & l))
|
||||
val |= l;
|
||||
else if (!enable && (val & l))
|
||||
val &= ~l;
|
||||
else
|
||||
goto done;
|
||||
|
||||
if (cpu_is_omap34xx() || cpu_is_omap44xx()) {
|
||||
bank->dbck_enable_mask = val;
|
||||
if (enable)
|
||||
clk_enable(bank->dbck);
|
||||
else
|
||||
clk_disable(bank->dbck);
|
||||
}
|
||||
|
||||
__raw_writel(val, reg);
|
||||
done:
|
||||
spin_unlock_irqrestore(&bank->lock, flags);
|
||||
}
|
||||
EXPORT_SYMBOL(omap_set_gpio_debounce);
|
||||
|
||||
void omap_set_gpio_debounce_time(int gpio, int enc_time)
|
||||
{
|
||||
struct gpio_bank *bank;
|
||||
void __iomem *reg;
|
||||
|
||||
if (cpu_class_is_omap1())
|
||||
return;
|
||||
|
||||
bank = get_gpio_bank(gpio);
|
||||
reg = bank->base;
|
||||
|
||||
if (!bank->mod_usage) {
|
||||
printk(KERN_ERR "GPIO not requested\n");
|
||||
return;
|
||||
}
|
||||
|
||||
enc_time &= 0xff;
|
||||
l = 1 << get_gpio_index(gpio);
|
||||
|
||||
if (cpu_is_omap44xx())
|
||||
reg += OMAP4_GPIO_DEBOUNCINGTIME;
|
||||
else
|
||||
reg += OMAP24XX_GPIO_DEBOUNCE_VAL;
|
||||
|
||||
__raw_writel(enc_time, reg);
|
||||
__raw_writel(debounce, reg);
|
||||
|
||||
reg = bank->base;
|
||||
if (cpu_is_omap44xx())
|
||||
reg += OMAP4_GPIO_DEBOUNCENABLE;
|
||||
else
|
||||
reg += OMAP24XX_GPIO_DEBOUNCE_EN;
|
||||
|
||||
val = __raw_readl(reg);
|
||||
|
||||
if (debounce) {
|
||||
val |= l;
|
||||
if (cpu_is_omap34xx() || cpu_is_omap44xx())
|
||||
clk_enable(bank->dbck);
|
||||
} else {
|
||||
val &= ~l;
|
||||
if (cpu_is_omap34xx() || cpu_is_omap44xx())
|
||||
clk_disable(bank->dbck);
|
||||
}
|
||||
|
||||
__raw_writel(val, reg);
|
||||
}
|
||||
EXPORT_SYMBOL(omap_set_gpio_debounce_time);
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP2PLUS
|
||||
static inline void set_24xx_gpio_triggering(struct gpio_bank *bank, int gpio,
|
||||
|
@ -1656,6 +1635,20 @@ static int gpio_output(struct gpio_chip *chip, unsigned offset, int value)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int gpio_debounce(struct gpio_chip *chip, unsigned offset,
|
||||
unsigned debounce)
|
||||
{
|
||||
struct gpio_bank *bank;
|
||||
unsigned long flags;
|
||||
|
||||
bank = container_of(chip, struct gpio_bank, chip);
|
||||
spin_lock_irqsave(&bank->lock, flags);
|
||||
_set_gpio_debounce(bank, offset, debounce);
|
||||
spin_unlock_irqrestore(&bank->lock, flags);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void gpio_set(struct gpio_chip *chip, unsigned offset, int value)
|
||||
{
|
||||
struct gpio_bank *bank;
|
||||
|
@ -1909,6 +1902,7 @@ static int __init _omap_gpio_init(void)
|
|||
bank->chip.direction_input = gpio_input;
|
||||
bank->chip.get = gpio_get;
|
||||
bank->chip.direction_output = gpio_output;
|
||||
bank->chip.set_debounce = gpio_debounce;
|
||||
bank->chip.set = gpio_set;
|
||||
bank->chip.to_irq = gpio_2irq;
|
||||
if (bank_is_mpuio(bank)) {
|
||||
|
|
|
@ -29,3 +29,4 @@ config S5P_EXT_INT
|
|||
bool
|
||||
help
|
||||
Use the external interrupts (other than GPIO interrupts.)
|
||||
Note: Do not choose this for S5P6440.
|
||||
|
|
|
@ -148,6 +148,7 @@ static struct clk *s5p_clks[] __initdata = {
|
|||
&clk_fout_vpll,
|
||||
&clk_arm,
|
||||
&clk_vpll,
|
||||
&clk_xusbxti,
|
||||
};
|
||||
|
||||
void __init s5p_register_clocks(unsigned long xtal_freq)
|
||||
|
|
|
@ -87,4 +87,11 @@
|
|||
#define IRQ_TIMER3 S5P_TIMER_IRQ(3)
|
||||
#define IRQ_TIMER4 S5P_TIMER_IRQ(4)
|
||||
|
||||
#define IRQ_EINT(x) ((x) < 16 ? ((x) + S5P_EINT_BASE1) \
|
||||
: ((x) - 16 + S5P_EINT_BASE2))
|
||||
|
||||
#define EINT_OFFSET(irq) ((irq) < S5P_EINT_BASE2 ? \
|
||||
((irq) - S5P_EINT_BASE1) : \
|
||||
((irq) + 16 - S5P_EINT_BASE2))
|
||||
|
||||
#endif /* __ASM_PLAT_S5P_IRQS_H */
|
||||
|
|
|
@ -60,7 +60,7 @@ static void s5p_irq_eint_maskack(unsigned int irq)
|
|||
|
||||
static int s5p_irq_eint_set_type(unsigned int irq, unsigned int type)
|
||||
{
|
||||
int offs = eint_offset(irq);
|
||||
int offs = EINT_OFFSET(irq);
|
||||
int shift;
|
||||
u32 ctrl, mask;
|
||||
u32 newvalue = 0;
|
||||
|
@ -139,17 +139,16 @@ static struct irq_chip s5p_irq_eint = {
|
|||
*/
|
||||
static inline void s5p_irq_demux_eint(unsigned int start)
|
||||
{
|
||||
u32 status;
|
||||
u32 status = __raw_readl(S5P_EINT_PEND(EINT_REG_NR(start)));
|
||||
u32 mask = __raw_readl(S5P_EINT_MASK(EINT_REG_NR(start)));
|
||||
unsigned int irq;
|
||||
|
||||
status = __raw_readl(S5P_EINT_PEND(EINT_REG_NR(start)));
|
||||
status &= ~mask;
|
||||
status &= 0xff;
|
||||
|
||||
while (status) {
|
||||
irq = fls(status);
|
||||
generic_handle_irq(irq - 1 + start);
|
||||
irq = fls(status) - 1;
|
||||
generic_handle_irq(irq + start);
|
||||
status &= ~(1 << irq);
|
||||
}
|
||||
}
|
||||
|
@ -162,12 +161,18 @@ static void s5p_irq_demux_eint16_31(unsigned int irq, struct irq_desc *desc)
|
|||
|
||||
static inline void s5p_irq_vic_eint_mask(unsigned int irq)
|
||||
{
|
||||
void __iomem *base = get_irq_chip_data(irq);
|
||||
|
||||
s5p_irq_eint_mask(irq);
|
||||
writel(1 << EINT_OFFSET(irq), base + VIC_INT_ENABLE_CLEAR);
|
||||
}
|
||||
|
||||
static void s5p_irq_vic_eint_unmask(unsigned int irq)
|
||||
{
|
||||
void __iomem *base = get_irq_chip_data(irq);
|
||||
|
||||
s5p_irq_eint_unmask(irq);
|
||||
writel(1 << EINT_OFFSET(irq), base + VIC_INT_ENABLE);
|
||||
}
|
||||
|
||||
static inline void s5p_irq_vic_eint_ack(unsigned int irq)
|
||||
|
|
|
@ -43,6 +43,11 @@ struct s3c_gpio_chip;
|
|||
* layouts. Provide an point to vector control routine and provide any
|
||||
* per-bank configuration information that other systems such as the
|
||||
* external interrupt code will need.
|
||||
*
|
||||
* @sa s3c_gpio_cfgpin
|
||||
* @sa s3c_gpio_getcfg
|
||||
* @sa s3c_gpio_setpull
|
||||
* @sa s3c_gpio_getpull
|
||||
*/
|
||||
struct s3c_gpio_cfg {
|
||||
unsigned int cfg_eint;
|
||||
|
@ -70,11 +75,25 @@ struct s3c_gpio_cfg {
|
|||
/**
|
||||
* s3c_gpio_cfgpin() - Change the GPIO function of a pin.
|
||||
* @pin pin The pin number to configure.
|
||||
* @pin to The configuration for the pin's function.
|
||||
* @to to The configuration for the pin's function.
|
||||
*
|
||||
* Configure which function is actually connected to the external
|
||||
* pin, such as an gpio input, output or some form of special function
|
||||
* connected to an internal peripheral block.
|
||||
*
|
||||
* The @to parameter can be one of the generic S3C_GPIO_INPUT, S3C_GPIO_OUTPUT
|
||||
* or S3C_GPIO_SFN() to indicate one of the possible values that the helper
|
||||
* will then generate the correct bit mask and shift for the configuration.
|
||||
*
|
||||
* If a bank of GPIOs all needs to be set to special-function 2, then
|
||||
* the following code will work:
|
||||
*
|
||||
* for (gpio = start; gpio < end; gpio++)
|
||||
* s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
*
|
||||
* The @to parameter can also be a specific value already shifted to the
|
||||
* correct position in the control register, although these are discouraged
|
||||
* in newer kernels and are only being kept for compatibility.
|
||||
*/
|
||||
extern int s3c_gpio_cfgpin(unsigned int pin, unsigned int to);
|
||||
|
||||
|
@ -108,6 +127,8 @@ extern unsigned s3c_gpio_getcfg(unsigned int pin);
|
|||
* This function sets the state of the pull-{up,down} resistor for the
|
||||
* specified pin. It will return 0 if successfull, or a negative error
|
||||
* code if the pin cannot support the requested pull setting.
|
||||
*
|
||||
* @pull is one of S3C_GPIO_PULL_NONE, S3C_GPIO_PULL_DOWN or S3C_GPIO_PULL_UP.
|
||||
*/
|
||||
extern int s3c_gpio_setpull(unsigned int pin, s3c_gpio_pull_t pull);
|
||||
|
||||
|
|
|
@ -1,25 +1,7 @@
|
|||
#ifndef __ASM_AVR32_SCATTERLIST_H
|
||||
#define __ASM_AVR32_SCATTERLIST_H
|
||||
|
||||
#include <asm/types.h>
|
||||
|
||||
struct scatterlist {
|
||||
#ifdef CONFIG_DEBUG_SG
|
||||
unsigned long sg_magic;
|
||||
#endif
|
||||
unsigned long page_link;
|
||||
unsigned int offset;
|
||||
dma_addr_t dma_address;
|
||||
unsigned int length;
|
||||
};
|
||||
|
||||
/* These macros should be used after a pci_map_sg call has been done
|
||||
* to get bus addresses of each of the SG entries and their lengths.
|
||||
* You should only work with the number of sg entries pci_map_sg
|
||||
* returns.
|
||||
*/
|
||||
#define sg_dma_address(sg) ((sg)->dma_address)
|
||||
#define sg_dma_len(sg) ((sg)->length)
|
||||
#include <asm-generic/scatterlist.h>
|
||||
|
||||
#define ISA_DMA_THRESHOLD (0xffffffff)
|
||||
|
||||
|
|
|
@ -1,27 +1,7 @@
|
|||
#ifndef _BLACKFIN_SCATTERLIST_H
|
||||
#define _BLACKFIN_SCATTERLIST_H
|
||||
|
||||
#include <linux/mm.h>
|
||||
|
||||
struct scatterlist {
|
||||
#ifdef CONFIG_DEBUG_SG
|
||||
unsigned long sg_magic;
|
||||
#endif
|
||||
unsigned long page_link;
|
||||
unsigned int offset;
|
||||
dma_addr_t dma_address;
|
||||
unsigned int length;
|
||||
};
|
||||
|
||||
/*
|
||||
* These macros should be used after a pci_map_sg call has been done
|
||||
* to get bus addresses of each of the SG entries and their lengths.
|
||||
* You should only work with the number of sg entries pci_map_sg
|
||||
* returns, or alternatively stop on the first sg_dma_len(sg) which
|
||||
* is 0.
|
||||
*/
|
||||
#define sg_dma_address(sg) ((sg)->dma_address)
|
||||
#define sg_dma_len(sg) ((sg)->length)
|
||||
#include <asm-generic/scatterlist.h>
|
||||
|
||||
#define ISA_DMA_THRESHOLD (0xffffffff)
|
||||
|
||||
|
|
|
@ -292,28 +292,6 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
|
|||
break;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_BINFMT_ELF_FDPIC
|
||||
case PTRACE_GETFDPIC: {
|
||||
unsigned long tmp = 0;
|
||||
|
||||
switch (addr) {
|
||||
case_PTRACE_GETFDPIC_EXEC:
|
||||
case PTRACE_GETFDPIC_EXEC:
|
||||
tmp = child->mm->context.exec_fdpic_loadmap;
|
||||
break;
|
||||
case_PTRACE_GETFDPIC_INTERP:
|
||||
case PTRACE_GETFDPIC_INTERP:
|
||||
tmp = child->mm->context.interp_fdpic_loadmap;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
ret = put_user(tmp, datap);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* when I and D space are separate, this will have to be fixed. */
|
||||
case PTRACE_POKEDATA:
|
||||
pr_debug("ptrace: PTRACE_PEEKDATA\n");
|
||||
|
@ -357,8 +335,14 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
|
|||
case PTRACE_PEEKUSR:
|
||||
switch (addr) {
|
||||
#ifdef CONFIG_BINFMT_ELF_FDPIC /* backwards compat */
|
||||
case PT_FDPIC_EXEC: goto case_PTRACE_GETFDPIC_EXEC;
|
||||
case PT_FDPIC_INTERP: goto case_PTRACE_GETFDPIC_INTERP;
|
||||
case PT_FDPIC_EXEC:
|
||||
request = PTRACE_GETFDPIC;
|
||||
addr = PTRACE_GETFDPIC_EXEC;
|
||||
goto case_default;
|
||||
case PT_FDPIC_INTERP:
|
||||
request = PTRACE_GETFDPIC;
|
||||
addr = PTRACE_GETFDPIC_INTERP;
|
||||
goto case_default;
|
||||
#endif
|
||||
default:
|
||||
ret = get_reg(child, addr, datap);
|
||||
|
@ -385,6 +369,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
|
|||
0, sizeof(struct pt_regs),
|
||||
(const void __user *)data);
|
||||
|
||||
case_default:
|
||||
default:
|
||||
ret = ptrace_request(child, request, addr, data);
|
||||
break;
|
||||
|
|
|
@ -1,22 +1,7 @@
|
|||
#ifndef __ASM_CRIS_SCATTERLIST_H
|
||||
#define __ASM_CRIS_SCATTERLIST_H
|
||||
|
||||
struct scatterlist {
|
||||
#ifdef CONFIG_DEBUG_SG
|
||||
unsigned long sg_magic;
|
||||
#endif
|
||||
char * address; /* Location data is to be transferred to */
|
||||
unsigned int length;
|
||||
|
||||
/* The following is i386 highmem junk - not used by us */
|
||||
unsigned long page_link;
|
||||
unsigned int offset;/* for highmem, page offset */
|
||||
|
||||
};
|
||||
|
||||
#define sg_dma_address(sg) ((sg)->address)
|
||||
#define sg_dma_len(sg) ((sg)->length)
|
||||
/* i386 junk */
|
||||
#include <asm-generic/scatterlist.h>
|
||||
|
||||
#define ISA_DMA_THRESHOLD (0x1fffffff)
|
||||
|
||||
|
|
|
@ -17,8 +17,6 @@
|
|||
#define L1_CACHE_SHIFT (CONFIG_FRV_L1_CACHE_SHIFT)
|
||||
#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
|
||||
|
||||
#define ARCH_KMALLOC_MINALIGN L1_CACHE_BYTES
|
||||
|
||||
#define __cacheline_aligned __attribute__((aligned(L1_CACHE_BYTES)))
|
||||
#define ____cacheline_aligned __attribute__((aligned(L1_CACHE_BYTES)))
|
||||
|
||||
|
|
|
@ -35,8 +35,8 @@
|
|||
* the slab must be aligned such that load- and store-double instructions don't
|
||||
* fault if used
|
||||
*/
|
||||
#define ARCH_KMALLOC_MINALIGN 8
|
||||
#define ARCH_SLAB_MINALIGN 8
|
||||
#define ARCH_KMALLOC_MINALIGN L1_CACHE_BYTES
|
||||
#define ARCH_SLAB_MINALIGN L1_CACHE_BYTES
|
||||
|
||||
/*****************************************************************************/
|
||||
/*
|
||||
|
|
|
@ -1,45 +1,7 @@
|
|||
#ifndef _ASM_SCATTERLIST_H
|
||||
#define _ASM_SCATTERLIST_H
|
||||
|
||||
#include <asm/types.h>
|
||||
|
||||
/*
|
||||
* Drivers must set either ->address or (preferred) page and ->offset
|
||||
* to indicate where data must be transferred to/from.
|
||||
*
|
||||
* Using page is recommended since it handles highmem data as well as
|
||||
* low mem. ->address is restricted to data which has a virtual mapping, and
|
||||
* it will go away in the future. Updating to page can be automated very
|
||||
* easily -- something like
|
||||
*
|
||||
* sg->address = some_ptr;
|
||||
*
|
||||
* can be rewritten as
|
||||
*
|
||||
* sg_set_buf(sg, some_ptr, length);
|
||||
*
|
||||
* and that's it. There's no excuse for not highmem enabling YOUR driver. /jens
|
||||
*/
|
||||
struct scatterlist {
|
||||
#ifdef CONFIG_DEBUG_SG
|
||||
unsigned long sg_magic;
|
||||
#endif
|
||||
unsigned long page_link;
|
||||
unsigned int offset; /* for highmem, page offset */
|
||||
|
||||
dma_addr_t dma_address;
|
||||
unsigned int length;
|
||||
};
|
||||
|
||||
/*
|
||||
* These macros should be used after a pci_map_sg call has been done
|
||||
* to get bus addresses of each of the SG entries and their lengths.
|
||||
* You should only work with the number of sg entries pci_map_sg
|
||||
* returns, or alternatively stop on the first sg_dma_len(sg) which
|
||||
* is 0.
|
||||
*/
|
||||
#define sg_dma_address(sg) ((sg)->dma_address)
|
||||
#define sg_dma_len(sg) ((sg)->length)
|
||||
#include <asm-generic/scatterlist.h>
|
||||
|
||||
#define ISA_DMA_THRESHOLD (0xffffffffUL)
|
||||
|
||||
|
|
|
@ -344,26 +344,6 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
|
|||
0, sizeof(child->thread.user->f),
|
||||
(const void __user *)data);
|
||||
|
||||
case PTRACE_GETFDPIC:
|
||||
tmp = 0;
|
||||
switch (addr) {
|
||||
case PTRACE_GETFDPIC_EXEC:
|
||||
tmp = child->mm->context.exec_fdpic_loadmap;
|
||||
break;
|
||||
case PTRACE_GETFDPIC_INTERP:
|
||||
tmp = child->mm->context.interp_fdpic_loadmap;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
if (put_user(tmp, (unsigned long *) data)) {
|
||||
ret = -EFAULT;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
ret = ptrace_request(child, request, addr, data);
|
||||
break;
|
||||
|
|
|
@ -46,8 +46,9 @@ static void frv_change_dcache_mode(unsigned long newmode)
|
|||
/*
|
||||
* handle requests to dynamically switch the write caching mode delivered by /proc
|
||||
*/
|
||||
static int procctl_frv_cachemode(ctl_table *table, int write, struct file *filp,
|
||||
void __user *buffer, size_t *lenp, loff_t *ppos)
|
||||
static int procctl_frv_cachemode(ctl_table *table, int write,
|
||||
void __user *buffer, size_t *lenp,
|
||||
loff_t *ppos)
|
||||
{
|
||||
unsigned long hsr0;
|
||||
char buff[8];
|
||||
|
@ -84,7 +85,7 @@ static int procctl_frv_cachemode(ctl_table *table, int write, struct file *filp,
|
|||
}
|
||||
|
||||
/* read the state */
|
||||
if (filp->f_pos > 0) {
|
||||
if (*ppos > 0) {
|
||||
*lenp = 0;
|
||||
return 0;
|
||||
}
|
||||
|
@ -110,7 +111,7 @@ static int procctl_frv_cachemode(ctl_table *table, int write, struct file *filp,
|
|||
return -EFAULT;
|
||||
|
||||
*lenp = len;
|
||||
filp->f_pos = len;
|
||||
*ppos = len;
|
||||
return 0;
|
||||
|
||||
} /* end procctl_frv_cachemode() */
|
||||
|
@ -120,8 +121,9 @@ static int procctl_frv_cachemode(ctl_table *table, int write, struct file *filp,
|
|||
* permit the mm_struct the nominated process is using have its MMU context ID pinned
|
||||
*/
|
||||
#ifdef CONFIG_MMU
|
||||
static int procctl_frv_pin_cxnr(ctl_table *table, int write, struct file *filp,
|
||||
void __user *buffer, size_t *lenp, loff_t *ppos)
|
||||
static int procctl_frv_pin_cxnr(ctl_table *table, int write,
|
||||
void __user *buffer, size_t *lenp,
|
||||
loff_t *ppos)
|
||||
{
|
||||
pid_t pid;
|
||||
char buff[16], *p;
|
||||
|
@ -150,7 +152,7 @@ static int procctl_frv_pin_cxnr(ctl_table *table, int write, struct file *filp,
|
|||
}
|
||||
|
||||
/* read the currently pinned CXN */
|
||||
if (filp->f_pos > 0) {
|
||||
if (*ppos > 0) {
|
||||
*lenp = 0;
|
||||
return 0;
|
||||
}
|
||||
|
@ -163,7 +165,7 @@ static int procctl_frv_pin_cxnr(ctl_table *table, int write, struct file *filp,
|
|||
return -EFAULT;
|
||||
|
||||
*lenp = len;
|
||||
filp->f_pos = len;
|
||||
*ppos = len;
|
||||
return 0;
|
||||
|
||||
} /* end procctl_frv_pin_cxnr() */
|
||||
|
|
|
@ -1,17 +1,7 @@
|
|||
#ifndef _H8300_SCATTERLIST_H
|
||||
#define _H8300_SCATTERLIST_H
|
||||
|
||||
#include <asm/types.h>
|
||||
|
||||
struct scatterlist {
|
||||
#ifdef CONFIG_DEBUG_SG
|
||||
unsigned long sg_magic;
|
||||
#endif
|
||||
unsigned long page_link;
|
||||
unsigned int offset;
|
||||
dma_addr_t dma_address;
|
||||
unsigned int length;
|
||||
};
|
||||
#include <asm-generic/scatterlist.h>
|
||||
|
||||
#define ISA_DMA_THRESHOLD (0xffffffff)
|
||||
|
||||
|
|
|
@ -56,6 +56,9 @@ config MMU
|
|||
config NEED_DMA_MAP_STATE
|
||||
def_bool y
|
||||
|
||||
config NEED_SG_DMA_LENGTH
|
||||
def_bool y
|
||||
|
||||
config SWIOTLB
|
||||
bool
|
||||
|
||||
|
@ -495,6 +498,14 @@ config HAVE_ARCH_NODEDATA_EXTENSION
|
|||
def_bool y
|
||||
depends on NUMA
|
||||
|
||||
config USE_PERCPU_NUMA_NODE_ID
|
||||
def_bool y
|
||||
depends on NUMA
|
||||
|
||||
config HAVE_MEMORYLESS_NODES
|
||||
def_bool y
|
||||
depends on NUMA
|
||||
|
||||
config ARCH_PROC_KCORE_TEXT
|
||||
def_bool y
|
||||
depends on PROC_KCORE
|
||||
|
|
|
@ -94,7 +94,6 @@ ia64_acpi_release_global_lock (unsigned int *lock)
|
|||
#define acpi_noirq 0 /* ACPI always enabled on IA64 */
|
||||
#define acpi_pci_disabled 0 /* ACPI PCI always enabled on IA64 */
|
||||
#define acpi_strict 1 /* no ACPI spec workarounds on IA64 */
|
||||
#define acpi_ht 0 /* no HT-only mode on IA64 */
|
||||
#endif
|
||||
#define acpi_processor_cstate_check(x) (x) /* no idle limits on IA64 :) */
|
||||
static inline void disable_acpi(void) { }
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef _ASM_IA64_SCATTERLIST_H
|
||||
#define _ASM_IA64_SCATTERLIST_H
|
||||
|
||||
#include <asm-generic/scatterlist.h>
|
||||
/*
|
||||
* It used to be that ISA_DMA_THRESHOLD had something to do with the
|
||||
* DMA-limits of ISA-devices. Nowadays, its only remaining use (apart
|
||||
|
@ -10,7 +11,6 @@
|
|||
* that's 4GB - 1.
|
||||
*/
|
||||
#define ISA_DMA_THRESHOLD 0xffffffff
|
||||
|
||||
#include <asm-generic/scatterlist.h>
|
||||
#define ARCH_HAS_SG_CHAIN
|
||||
|
||||
#endif /* _ASM_IA64_SCATTERLIST_H */
|
||||
|
|
|
@ -25,11 +25,6 @@
|
|||
*/
|
||||
#define RECLAIM_DISTANCE 15
|
||||
|
||||
/*
|
||||
* Returns the number of the node containing CPU 'cpu'
|
||||
*/
|
||||
#define cpu_to_node(cpu) (int)(cpu_to_node_map[cpu])
|
||||
|
||||
/*
|
||||
* Returns a bitmask of CPUs on Node 'node'.
|
||||
*/
|
||||
|
|
|
@ -31,8 +31,6 @@ struct dma_map_ops swiotlb_dma_ops = {
|
|||
.unmap_sg = swiotlb_unmap_sg_attrs,
|
||||
.sync_single_for_cpu = swiotlb_sync_single_for_cpu,
|
||||
.sync_single_for_device = swiotlb_sync_single_for_device,
|
||||
.sync_single_range_for_cpu = swiotlb_sync_single_range_for_cpu,
|
||||
.sync_single_range_for_device = swiotlb_sync_single_range_for_device,
|
||||
.sync_sg_for_cpu = swiotlb_sync_sg_for_cpu,
|
||||
.sync_sg_for_device = swiotlb_sync_sg_for_device,
|
||||
.dma_supported = swiotlb_dma_supported,
|
||||
|
|
|
@ -638,7 +638,7 @@ ptrace_attach_sync_user_rbs (struct task_struct *child)
|
|||
*/
|
||||
|
||||
read_lock(&tasklist_lock);
|
||||
if (child->signal) {
|
||||
if (child->sighand) {
|
||||
spin_lock_irq(&child->sighand->siglock);
|
||||
if (child->state == TASK_STOPPED &&
|
||||
!test_and_set_tsk_thread_flag(child, TIF_RESTORE_RSE)) {
|
||||
|
@ -662,7 +662,7 @@ ptrace_attach_sync_user_rbs (struct task_struct *child)
|
|||
* job control stop, so that SIGCONT can be used to wake it up.
|
||||
*/
|
||||
read_lock(&tasklist_lock);
|
||||
if (child->signal) {
|
||||
if (child->sighand) {
|
||||
spin_lock_irq(&child->sighand->siglock);
|
||||
if (child->state == TASK_TRACED &&
|
||||
(child->signal->flags & SIGNAL_STOP_STOPPED)) {
|
||||
|
|
|
@ -390,6 +390,14 @@ smp_callin (void)
|
|||
|
||||
fix_b0_for_bsp();
|
||||
|
||||
#ifdef CONFIG_NUMA
|
||||
/*
|
||||
* numa_node_id() works after this.
|
||||
*/
|
||||
set_numa_node(cpu_to_node_map[cpuid]);
|
||||
set_numa_mem(local_memory_node(cpu_to_node_map[cpuid]));
|
||||
#endif
|
||||
|
||||
ipi_call_lock_irq();
|
||||
spin_lock(&vector_lock);
|
||||
/* Setup the per cpu irq handling data structures */
|
||||
|
@ -632,6 +640,9 @@ void __devinit smp_prepare_boot_cpu(void)
|
|||
{
|
||||
cpu_set(smp_processor_id(), cpu_online_map);
|
||||
cpu_set(smp_processor_id(), cpu_callin_map);
|
||||
#ifdef CONFIG_NUMA
|
||||
set_numa_node(cpu_to_node_map[smp_processor_id()]);
|
||||
#endif
|
||||
per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE;
|
||||
paravirt_post_smp_prepare_boot_cpu();
|
||||
}
|
||||
|
|
|
@ -335,8 +335,11 @@ pcibios_setup_root_windows(struct pci_bus *bus, struct pci_controller *ctrl)
|
|||
}
|
||||
|
||||
struct pci_bus * __devinit
|
||||
pci_acpi_scan_root(struct acpi_device *device, int domain, int bus)
|
||||
pci_acpi_scan_root(struct acpi_pci_root *root)
|
||||
{
|
||||
struct acpi_device *device = root->device;
|
||||
int domain = root->segment;
|
||||
int bus = root->secondary.start;
|
||||
struct pci_controller *controller;
|
||||
unsigned int windows = 0;
|
||||
struct pci_bus *pbus;
|
||||
|
|
|
@ -1,20 +1,7 @@
|
|||
#ifndef _ASM_M32R_SCATTERLIST_H
|
||||
#define _ASM_M32R_SCATTERLIST_H
|
||||
|
||||
#include <asm/types.h>
|
||||
|
||||
struct scatterlist {
|
||||
#ifdef CONFIG_DEBUG_SG
|
||||
unsigned long sg_magic;
|
||||
#endif
|
||||
char * address; /* Location data is to be transferred to, NULL for
|
||||
* highmem page */
|
||||
unsigned long page_link;
|
||||
unsigned int offset;/* for highmem, page offset */
|
||||
|
||||
dma_addr_t dma_address;
|
||||
unsigned int length;
|
||||
};
|
||||
#include <asm-generic/scatterlist.h>
|
||||
|
||||
#define ISA_DMA_THRESHOLD (0x1fffffff)
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ config M68K
|
|||
default y
|
||||
select HAVE_AOUT
|
||||
select HAVE_IDE
|
||||
select GENERIC_ATOMIC64
|
||||
|
||||
config MMU
|
||||
bool
|
||||
|
|
|
@ -97,10 +97,6 @@ static void amiga_get_model(char *model);
|
|||
static void amiga_get_hardware_list(struct seq_file *m);
|
||||
/* amiga specific timer functions */
|
||||
static unsigned long amiga_gettimeoffset(void);
|
||||
static int a3000_hwclk(int, struct rtc_time *);
|
||||
static int a2000_hwclk(int, struct rtc_time *);
|
||||
static int amiga_set_clock_mmss(unsigned long);
|
||||
static unsigned int amiga_get_ss(void);
|
||||
extern void amiga_mksound(unsigned int count, unsigned int ticks);
|
||||
static void amiga_reset(void);
|
||||
extern void amiga_init_sound(void);
|
||||
|
@ -138,10 +134,6 @@ static struct {
|
|||
}
|
||||
};
|
||||
|
||||
static struct resource rtc_resource = {
|
||||
.start = 0x00dc0000, .end = 0x00dcffff
|
||||
};
|
||||
|
||||
static struct resource ram_resource[NUM_MEMINFO];
|
||||
|
||||
|
||||
|
@ -387,15 +379,6 @@ void __init config_amiga(void)
|
|||
mach_get_model = amiga_get_model;
|
||||
mach_get_hardware_list = amiga_get_hardware_list;
|
||||
mach_gettimeoffset = amiga_gettimeoffset;
|
||||
if (AMIGAHW_PRESENT(A3000_CLK)) {
|
||||
mach_hwclk = a3000_hwclk;
|
||||
rtc_resource.name = "A3000 RTC";
|
||||
request_resource(&iomem_resource, &rtc_resource);
|
||||
} else /* if (AMIGAHW_PRESENT(A2000_CLK)) */ {
|
||||
mach_hwclk = a2000_hwclk;
|
||||
rtc_resource.name = "A2000 RTC";
|
||||
request_resource(&iomem_resource, &rtc_resource);
|
||||
}
|
||||
|
||||
/*
|
||||
* default MAX_DMA=0xffffffff on all machines. If we don't do so, the SCSI
|
||||
|
@ -404,8 +387,6 @@ void __init config_amiga(void)
|
|||
*/
|
||||
mach_max_dma_address = 0xffffffff;
|
||||
|
||||
mach_set_clock_mmss = amiga_set_clock_mmss;
|
||||
mach_get_ss = amiga_get_ss;
|
||||
mach_reset = amiga_reset;
|
||||
#if defined(CONFIG_INPUT_M68K_BEEP) || defined(CONFIG_INPUT_M68K_BEEP_MODULE)
|
||||
mach_beep = amiga_mksound;
|
||||
|
@ -530,161 +511,6 @@ static unsigned long amiga_gettimeoffset(void)
|
|||
return ticks + offset;
|
||||
}
|
||||
|
||||
static int a3000_hwclk(int op, struct rtc_time *t)
|
||||
{
|
||||
tod_3000.cntrl1 = TOD3000_CNTRL1_HOLD;
|
||||
|
||||
if (!op) { /* read */
|
||||
t->tm_sec = tod_3000.second1 * 10 + tod_3000.second2;
|
||||
t->tm_min = tod_3000.minute1 * 10 + tod_3000.minute2;
|
||||
t->tm_hour = tod_3000.hour1 * 10 + tod_3000.hour2;
|
||||
t->tm_mday = tod_3000.day1 * 10 + tod_3000.day2;
|
||||
t->tm_wday = tod_3000.weekday;
|
||||
t->tm_mon = tod_3000.month1 * 10 + tod_3000.month2 - 1;
|
||||
t->tm_year = tod_3000.year1 * 10 + tod_3000.year2;
|
||||
if (t->tm_year <= 69)
|
||||
t->tm_year += 100;
|
||||
} else {
|
||||
tod_3000.second1 = t->tm_sec / 10;
|
||||
tod_3000.second2 = t->tm_sec % 10;
|
||||
tod_3000.minute1 = t->tm_min / 10;
|
||||
tod_3000.minute2 = t->tm_min % 10;
|
||||
tod_3000.hour1 = t->tm_hour / 10;
|
||||
tod_3000.hour2 = t->tm_hour % 10;
|
||||
tod_3000.day1 = t->tm_mday / 10;
|
||||
tod_3000.day2 = t->tm_mday % 10;
|
||||
if (t->tm_wday != -1)
|
||||
tod_3000.weekday = t->tm_wday;
|
||||
tod_3000.month1 = (t->tm_mon + 1) / 10;
|
||||
tod_3000.month2 = (t->tm_mon + 1) % 10;
|
||||
if (t->tm_year >= 100)
|
||||
t->tm_year -= 100;
|
||||
tod_3000.year1 = t->tm_year / 10;
|
||||
tod_3000.year2 = t->tm_year % 10;
|
||||
}
|
||||
|
||||
tod_3000.cntrl1 = TOD3000_CNTRL1_FREE;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int a2000_hwclk(int op, struct rtc_time *t)
|
||||
{
|
||||
int cnt = 5;
|
||||
|
||||
tod_2000.cntrl1 = TOD2000_CNTRL1_HOLD;
|
||||
|
||||
while ((tod_2000.cntrl1 & TOD2000_CNTRL1_BUSY) && cnt) {
|
||||
tod_2000.cntrl1 &= ~TOD2000_CNTRL1_HOLD;
|
||||
udelay(70);
|
||||
tod_2000.cntrl1 |= TOD2000_CNTRL1_HOLD;
|
||||
--cnt;
|
||||
}
|
||||
|
||||
if (!cnt)
|
||||
printk(KERN_INFO "hwclk: timed out waiting for RTC (0x%x)\n",
|
||||
tod_2000.cntrl1);
|
||||
|
||||
if (!op) { /* read */
|
||||
t->tm_sec = tod_2000.second1 * 10 + tod_2000.second2;
|
||||
t->tm_min = tod_2000.minute1 * 10 + tod_2000.minute2;
|
||||
t->tm_hour = (tod_2000.hour1 & 3) * 10 + tod_2000.hour2;
|
||||
t->tm_mday = tod_2000.day1 * 10 + tod_2000.day2;
|
||||
t->tm_wday = tod_2000.weekday;
|
||||
t->tm_mon = tod_2000.month1 * 10 + tod_2000.month2 - 1;
|
||||
t->tm_year = tod_2000.year1 * 10 + tod_2000.year2;
|
||||
if (t->tm_year <= 69)
|
||||
t->tm_year += 100;
|
||||
|
||||
if (!(tod_2000.cntrl3 & TOD2000_CNTRL3_24HMODE)) {
|
||||
if (!(tod_2000.hour1 & TOD2000_HOUR1_PM) && t->tm_hour == 12)
|
||||
t->tm_hour = 0;
|
||||
else if ((tod_2000.hour1 & TOD2000_HOUR1_PM) && t->tm_hour != 12)
|
||||
t->tm_hour += 12;
|
||||
}
|
||||
} else {
|
||||
tod_2000.second1 = t->tm_sec / 10;
|
||||
tod_2000.second2 = t->tm_sec % 10;
|
||||
tod_2000.minute1 = t->tm_min / 10;
|
||||
tod_2000.minute2 = t->tm_min % 10;
|
||||
if (tod_2000.cntrl3 & TOD2000_CNTRL3_24HMODE)
|
||||
tod_2000.hour1 = t->tm_hour / 10;
|
||||
else if (t->tm_hour >= 12)
|
||||
tod_2000.hour1 = TOD2000_HOUR1_PM +
|
||||
(t->tm_hour - 12) / 10;
|
||||
else
|
||||
tod_2000.hour1 = t->tm_hour / 10;
|
||||
tod_2000.hour2 = t->tm_hour % 10;
|
||||
tod_2000.day1 = t->tm_mday / 10;
|
||||
tod_2000.day2 = t->tm_mday % 10;
|
||||
if (t->tm_wday != -1)
|
||||
tod_2000.weekday = t->tm_wday;
|
||||
tod_2000.month1 = (t->tm_mon + 1) / 10;
|
||||
tod_2000.month2 = (t->tm_mon + 1) % 10;
|
||||
if (t->tm_year >= 100)
|
||||
t->tm_year -= 100;
|
||||
tod_2000.year1 = t->tm_year / 10;
|
||||
tod_2000.year2 = t->tm_year % 10;
|
||||
}
|
||||
|
||||
tod_2000.cntrl1 &= ~TOD2000_CNTRL1_HOLD;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int amiga_set_clock_mmss(unsigned long nowtime)
|
||||
{
|
||||
short real_seconds = nowtime % 60, real_minutes = (nowtime / 60) % 60;
|
||||
|
||||
if (AMIGAHW_PRESENT(A3000_CLK)) {
|
||||
tod_3000.cntrl1 = TOD3000_CNTRL1_HOLD;
|
||||
|
||||
tod_3000.second1 = real_seconds / 10;
|
||||
tod_3000.second2 = real_seconds % 10;
|
||||
tod_3000.minute1 = real_minutes / 10;
|
||||
tod_3000.minute2 = real_minutes % 10;
|
||||
|
||||
tod_3000.cntrl1 = TOD3000_CNTRL1_FREE;
|
||||
} else /* if (AMIGAHW_PRESENT(A2000_CLK)) */ {
|
||||
int cnt = 5;
|
||||
|
||||
tod_2000.cntrl1 |= TOD2000_CNTRL1_HOLD;
|
||||
|
||||
while ((tod_2000.cntrl1 & TOD2000_CNTRL1_BUSY) && cnt) {
|
||||
tod_2000.cntrl1 &= ~TOD2000_CNTRL1_HOLD;
|
||||
udelay(70);
|
||||
tod_2000.cntrl1 |= TOD2000_CNTRL1_HOLD;
|
||||
--cnt;
|
||||
}
|
||||
|
||||
if (!cnt)
|
||||
printk(KERN_INFO "set_clock_mmss: timed out waiting for RTC (0x%x)\n", tod_2000.cntrl1);
|
||||
|
||||
tod_2000.second1 = real_seconds / 10;
|
||||
tod_2000.second2 = real_seconds % 10;
|
||||
tod_2000.minute1 = real_minutes / 10;
|
||||
tod_2000.minute2 = real_minutes % 10;
|
||||
|
||||
tod_2000.cntrl1 &= ~TOD2000_CNTRL1_HOLD;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static unsigned int amiga_get_ss(void)
|
||||
{
|
||||
unsigned int s;
|
||||
|
||||
if (AMIGAHW_PRESENT(A3000_CLK)) {
|
||||
tod_3000.cntrl1 = TOD3000_CNTRL1_HOLD;
|
||||
s = tod_3000.second1 * 10 + tod_3000.second2;
|
||||
tod_3000.cntrl1 = TOD3000_CNTRL1_FREE;
|
||||
} else /* if (AMIGAHW_PRESENT(A2000_CLK)) */ {
|
||||
s = tod_2000.second1 * 10 + tod_2000.second2;
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
static NORET_TYPE void amiga_reset(void)
|
||||
ATTRIB_NORET;
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <linux/zorro.h>
|
||||
|
||||
#include <asm/amigahw.h>
|
||||
#include <asm/amigayle.h>
|
||||
|
||||
|
||||
#ifdef CONFIG_ZORRO
|
||||
|
@ -55,11 +56,77 @@ static int __init amiga_init_bus(void)
|
|||
|
||||
subsys_initcall(amiga_init_bus);
|
||||
|
||||
#endif /* CONFIG_ZORRO */
|
||||
|
||||
static int z_dev_present(zorro_id id)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < zorro_num_autocon; i++)
|
||||
if (zorro_autocon[i].rom.er_Manufacturer == ZORRO_MANUF(id) &&
|
||||
zorro_autocon[i].rom.er_Product == ZORRO_PROD(id))
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#else /* !CONFIG_ZORRO */
|
||||
|
||||
static inline int z_dev_present(zorro_id id) { return 0; }
|
||||
|
||||
#endif /* !CONFIG_ZORRO */
|
||||
|
||||
|
||||
static const struct resource a3000_scsi_resource __initconst = {
|
||||
.start = 0xdd0000,
|
||||
.end = 0xdd00ff,
|
||||
.flags = IORESOURCE_MEM,
|
||||
};
|
||||
|
||||
|
||||
static const struct resource a4000t_scsi_resource __initconst = {
|
||||
.start = 0xdd0000,
|
||||
.end = 0xdd0fff,
|
||||
.flags = IORESOURCE_MEM,
|
||||
};
|
||||
|
||||
|
||||
static const struct resource a1200_ide_resource __initconst = {
|
||||
.start = 0xda0000,
|
||||
.end = 0xda1fff,
|
||||
.flags = IORESOURCE_MEM,
|
||||
};
|
||||
|
||||
static const struct gayle_ide_platform_data a1200_ide_pdata __initconst = {
|
||||
.base = 0xda0000,
|
||||
.irqport = 0xda9000,
|
||||
.explicit_ack = 1,
|
||||
};
|
||||
|
||||
|
||||
static const struct resource a4000_ide_resource __initconst = {
|
||||
.start = 0xdd2000,
|
||||
.end = 0xdd3fff,
|
||||
.flags = IORESOURCE_MEM,
|
||||
};
|
||||
|
||||
static const struct gayle_ide_platform_data a4000_ide_pdata __initconst = {
|
||||
.base = 0xdd2020,
|
||||
.irqport = 0xdd3020,
|
||||
.explicit_ack = 0,
|
||||
};
|
||||
|
||||
|
||||
static const struct resource amiga_rtc_resource __initconst = {
|
||||
.start = 0x00dc0000,
|
||||
.end = 0x00dcffff,
|
||||
.flags = IORESOURCE_MEM,
|
||||
};
|
||||
|
||||
|
||||
static int __init amiga_init_devices(void)
|
||||
{
|
||||
struct platform_device *pdev;
|
||||
|
||||
if (!MACH_IS_AMIGA)
|
||||
return -ENODEV;
|
||||
|
||||
|
@ -77,6 +144,53 @@ static int __init amiga_init_devices(void)
|
|||
if (AMIGAHW_PRESENT(AMI_FLOPPY))
|
||||
platform_device_register_simple("amiga-floppy", -1, NULL, 0);
|
||||
|
||||
if (AMIGAHW_PRESENT(A3000_SCSI))
|
||||
platform_device_register_simple("amiga-a3000-scsi", -1,
|
||||
&a3000_scsi_resource, 1);
|
||||
|
||||
if (AMIGAHW_PRESENT(A4000_SCSI))
|
||||
platform_device_register_simple("amiga-a4000t-scsi", -1,
|
||||
&a4000t_scsi_resource, 1);
|
||||
|
||||
if (AMIGAHW_PRESENT(A1200_IDE) ||
|
||||
z_dev_present(ZORRO_PROD_MTEC_VIPER_MK_V_E_MATRIX_530_SCSI_IDE)) {
|
||||
pdev = platform_device_register_simple("amiga-gayle-ide", -1,
|
||||
&a1200_ide_resource, 1);
|
||||
platform_device_add_data(pdev, &a1200_ide_pdata,
|
||||
sizeof(a1200_ide_pdata));
|
||||
}
|
||||
|
||||
if (AMIGAHW_PRESENT(A4000_IDE)) {
|
||||
pdev = platform_device_register_simple("amiga-gayle-ide", -1,
|
||||
&a4000_ide_resource, 1);
|
||||
platform_device_add_data(pdev, &a4000_ide_pdata,
|
||||
sizeof(a4000_ide_pdata));
|
||||
}
|
||||
|
||||
|
||||
/* other I/O hardware */
|
||||
if (AMIGAHW_PRESENT(AMI_KEYBOARD))
|
||||
platform_device_register_simple("amiga-keyboard", -1, NULL, 0);
|
||||
|
||||
if (AMIGAHW_PRESENT(AMI_MOUSE))
|
||||
platform_device_register_simple("amiga-mouse", -1, NULL, 0);
|
||||
|
||||
if (AMIGAHW_PRESENT(AMI_SERIAL))
|
||||
platform_device_register_simple("amiga-serial", -1, NULL, 0);
|
||||
|
||||
if (AMIGAHW_PRESENT(AMI_PARALLEL))
|
||||
platform_device_register_simple("amiga-parallel", -1, NULL, 0);
|
||||
|
||||
|
||||
/* real time clocks */
|
||||
if (AMIGAHW_PRESENT(A2000_CLK))
|
||||
platform_device_register_simple("rtc-msm6242", -1,
|
||||
&amiga_rtc_resource, 1);
|
||||
|
||||
if (AMIGAHW_PRESENT(A3000_CLK))
|
||||
platform_device_register_simple("rtc-rp5c01", -1,
|
||||
&amiga_rtc_resource, 1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -104,4 +104,10 @@ struct GAYLE {
|
|||
#define GAYLE_CFG_250NS 0x00
|
||||
#define GAYLE_CFG_720NS 0x0c
|
||||
|
||||
struct gayle_ide_platform_data {
|
||||
unsigned long base;
|
||||
unsigned long irqport;
|
||||
int explicit_ack; /* A1200 IDE needs explicit ack */
|
||||
};
|
||||
|
||||
#endif /* asm-m68k/amigayle.h */
|
||||
|
|
|
@ -3,3 +3,5 @@
|
|||
#else
|
||||
#include "atomic_mm.h"
|
||||
#endif
|
||||
|
||||
#include <asm-generic/atomic64.h>
|
||||
|
|
|
@ -8,4 +8,6 @@
|
|||
#define L1_CACHE_SHIFT 4
|
||||
#define L1_CACHE_BYTES (1<< L1_CACHE_SHIFT)
|
||||
|
||||
#define ARCH_KMALLOC_MINALIGN L1_CACHE_BYTES
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,23 +1,9 @@
|
|||
#ifndef _M68K_SCATTERLIST_H
|
||||
#define _M68K_SCATTERLIST_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct scatterlist {
|
||||
#ifdef CONFIG_DEBUG_SG
|
||||
unsigned long sg_magic;
|
||||
#endif
|
||||
unsigned long page_link;
|
||||
unsigned int offset;
|
||||
unsigned int length;
|
||||
|
||||
dma_addr_t dma_address; /* A place to hang host-specific addresses at. */
|
||||
};
|
||||
#include <asm-generic/scatterlist.h>
|
||||
|
||||
/* This is bogus and should go away. */
|
||||
#define ISA_DMA_THRESHOLD (0x00ffffff)
|
||||
|
||||
#define sg_dma_address(sg) ((sg)->dma_address)
|
||||
#define sg_dma_len(sg) ((sg)->length)
|
||||
|
||||
#endif /* !(_M68K_SCATTERLIST_H) */
|
||||
|
|
|
@ -1 +1,3 @@
|
|||
#include <asm-generic/scatterlist.h>
|
||||
|
||||
#define ISA_DMA_THRESHOLD (~0UL)
|
||||
|
|
|
@ -1,27 +1,7 @@
|
|||
#ifndef __ASM_SCATTERLIST_H
|
||||
#define __ASM_SCATTERLIST_H
|
||||
|
||||
#include <asm/types.h>
|
||||
|
||||
struct scatterlist {
|
||||
#ifdef CONFIG_DEBUG_SG
|
||||
unsigned long sg_magic;
|
||||
#endif
|
||||
unsigned long page_link;
|
||||
unsigned int offset;
|
||||
dma_addr_t dma_address;
|
||||
unsigned int length;
|
||||
};
|
||||
|
||||
/*
|
||||
* These macros should be used after a pci_map_sg call has been done
|
||||
* to get bus addresses of each of the SG entries and their lengths.
|
||||
* You should only work with the number of sg entries pci_map_sg
|
||||
* returns, or alternatively stop on the first sg_dma_len(sg) which
|
||||
* is 0.
|
||||
*/
|
||||
#define sg_dma_address(sg) ((sg)->dma_address)
|
||||
#define sg_dma_len(sg) ((sg)->length)
|
||||
#include <asm-generic/scatterlist.h>
|
||||
|
||||
#define ISA_DMA_THRESHOLD (0x00ffffffUL)
|
||||
|
||||
|
|
|
@ -11,45 +11,8 @@
|
|||
#ifndef _ASM_SCATTERLIST_H
|
||||
#define _ASM_SCATTERLIST_H
|
||||
|
||||
#include <asm/types.h>
|
||||
|
||||
/*
|
||||
* Drivers must set either ->address or (preferred) page and ->offset
|
||||
* to indicate where data must be transferred to/from.
|
||||
*
|
||||
* Using page is recommended since it handles highmem data as well as
|
||||
* low mem. ->address is restricted to data which has a virtual mapping, and
|
||||
* it will go away in the future. Updating to page can be automated very
|
||||
* easily -- something like
|
||||
*
|
||||
* sg->address = some_ptr;
|
||||
*
|
||||
* can be rewritten as
|
||||
*
|
||||
* sg_set_page(virt_to_page(some_ptr));
|
||||
* sg->offset = (unsigned long) some_ptr & ~PAGE_MASK;
|
||||
*
|
||||
* and that's it. There's no excuse for not highmem enabling YOUR driver. /jens
|
||||
*/
|
||||
struct scatterlist {
|
||||
#ifdef CONFIG_DEBUG_SG
|
||||
unsigned long sg_magic;
|
||||
#endif
|
||||
unsigned long page_link;
|
||||
unsigned int offset; /* for highmem, page offset */
|
||||
dma_addr_t dma_address;
|
||||
unsigned int length;
|
||||
};
|
||||
#include <asm-generic/scatterlist.h>
|
||||
|
||||
#define ISA_DMA_THRESHOLD (0x00ffffff)
|
||||
|
||||
/*
|
||||
* These macros should be used after a pci_map_sg call has been done
|
||||
* to get bus addresses of each of the SG entries and their lengths.
|
||||
* You should only work with the number of sg entries pci_map_sg
|
||||
* returns.
|
||||
*/
|
||||
#define sg_dma_address(sg) ((sg)->dma_address)
|
||||
#define sg_dma_len(sg) ((sg)->length)
|
||||
|
||||
#endif /* _ASM_SCATTERLIST_H */
|
||||
|
|
|
@ -98,6 +98,9 @@ config STACKTRACE_SUPPORT
|
|||
config NEED_DMA_MAP_STATE
|
||||
def_bool y
|
||||
|
||||
config NEED_SG_DMA_LENGTH
|
||||
def_bool y
|
||||
|
||||
config ISA_DMA_API
|
||||
bool
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#define _PARISC_CACHEFLUSH_H
|
||||
|
||||
#include <linux/mm.h>
|
||||
#include <linux/uaccess.h>
|
||||
|
||||
/* The usual comment is "Caches aren't brain-dead on the <architecture>".
|
||||
* Unfortunately, that doesn't apply to PA-RISC. */
|
||||
|
@ -125,11 +126,20 @@ static inline void *kmap(struct page *page)
|
|||
|
||||
#define kunmap(page) kunmap_parisc(page_address(page))
|
||||
|
||||
#define kmap_atomic(page, idx) page_address(page)
|
||||
static inline void *kmap_atomic(struct page *page, enum km_type idx)
|
||||
{
|
||||
pagefault_disable();
|
||||
return page_address(page);
|
||||
}
|
||||
|
||||
#define kunmap_atomic(addr, idx) kunmap_parisc(addr)
|
||||
static inline void kunmap_atomic(void *addr, enum km_type idx)
|
||||
{
|
||||
kunmap_parisc(addr);
|
||||
pagefault_enable();
|
||||
}
|
||||
|
||||
#define kmap_atomic_pfn(pfn, idx) page_address(pfn_to_page(pfn))
|
||||
#define kmap_atomic_prot(page, idx, prot) kmap_atomic(page, idx)
|
||||
#define kmap_atomic_pfn(pfn, idx) kmap_atomic(pfn_to_page(pfn), (idx))
|
||||
#define kmap_atomic_to_page(ptr) virt_to_page(ptr)
|
||||
#endif
|
||||
|
||||
|
|
|
@ -3,25 +3,9 @@
|
|||
|
||||
#include <asm/page.h>
|
||||
#include <asm/types.h>
|
||||
|
||||
struct scatterlist {
|
||||
#ifdef CONFIG_DEBUG_SG
|
||||
unsigned long sg_magic;
|
||||
#endif
|
||||
unsigned long page_link;
|
||||
unsigned int offset;
|
||||
|
||||
unsigned int length;
|
||||
|
||||
/* an IOVA can be 64-bits on some PA-Risc platforms. */
|
||||
dma_addr_t iova; /* I/O Virtual Address */
|
||||
__u32 iova_length; /* bytes mapped */
|
||||
};
|
||||
|
||||
#define sg_virt_addr(sg) ((unsigned long)sg_virt(sg))
|
||||
#define sg_dma_address(sg) ((sg)->iova)
|
||||
#define sg_dma_len(sg) ((sg)->iova_length)
|
||||
#include <asm-generic/scatterlist.h>
|
||||
|
||||
#define ISA_DMA_THRESHOLD (~0UL)
|
||||
#define sg_virt_addr(sg) ((unsigned long)sg_virt(sg))
|
||||
|
||||
#endif /* _ASM_PARISC_SCATTERLIST_H */
|
||||
|
|
|
@ -45,8 +45,12 @@
|
|||
#else
|
||||
#define FRAME_SIZE 64
|
||||
#endif
|
||||
#define FRAME_ALIGN 64
|
||||
|
||||
#define align(x,y) (((x)+FRAME_SIZE+(y)-1) - (((x)+(y)-1)%(y)))
|
||||
/* Add FRAME_SIZE to the size x and align it to y. All definitions
|
||||
* that use align_frame will include space for a frame.
|
||||
*/
|
||||
#define align_frame(x,y) (((x)+FRAME_SIZE+(y)-1) - (((x)+(y)-1)%(y)))
|
||||
|
||||
int main(void)
|
||||
{
|
||||
|
@ -146,7 +150,8 @@ int main(void)
|
|||
DEFINE(TASK_PT_IOR, offsetof(struct task_struct, thread.regs.ior));
|
||||
BLANK();
|
||||
DEFINE(TASK_SZ, sizeof(struct task_struct));
|
||||
DEFINE(TASK_SZ_ALGN, align(sizeof(struct task_struct), 64));
|
||||
/* TASK_SZ_ALGN includes space for a stack frame. */
|
||||
DEFINE(TASK_SZ_ALGN, align_frame(sizeof(struct task_struct), FRAME_ALIGN));
|
||||
BLANK();
|
||||
DEFINE(PT_PSW, offsetof(struct pt_regs, gr[ 0]));
|
||||
DEFINE(PT_GR1, offsetof(struct pt_regs, gr[ 1]));
|
||||
|
@ -233,7 +238,8 @@ int main(void)
|
|||
DEFINE(PT_ISR, offsetof(struct pt_regs, isr));
|
||||
DEFINE(PT_IOR, offsetof(struct pt_regs, ior));
|
||||
DEFINE(PT_SIZE, sizeof(struct pt_regs));
|
||||
DEFINE(PT_SZ_ALGN, align(sizeof(struct pt_regs), 64));
|
||||
/* PT_SZ_ALGN includes space for a stack frame. */
|
||||
DEFINE(PT_SZ_ALGN, align_frame(sizeof(struct pt_regs), FRAME_ALIGN));
|
||||
BLANK();
|
||||
DEFINE(TI_TASK, offsetof(struct thread_info, task));
|
||||
DEFINE(TI_EXEC_DOMAIN, offsetof(struct thread_info, exec_domain));
|
||||
|
@ -242,7 +248,8 @@ int main(void)
|
|||
DEFINE(TI_SEGMENT, offsetof(struct thread_info, addr_limit));
|
||||
DEFINE(TI_PRE_COUNT, offsetof(struct thread_info, preempt_count));
|
||||
DEFINE(THREAD_SZ, sizeof(struct thread_info));
|
||||
DEFINE(THREAD_SZ_ALGN, align(sizeof(struct thread_info), 64));
|
||||
/* THREAD_SZ_ALGN includes space for a stack frame. */
|
||||
DEFINE(THREAD_SZ_ALGN, align_frame(sizeof(struct thread_info), FRAME_ALIGN));
|
||||
BLANK();
|
||||
DEFINE(ICACHE_BASE, offsetof(struct pdc_cache_info, ic_base));
|
||||
DEFINE(ICACHE_STRIDE, offsetof(struct pdc_cache_info, ic_stride));
|
||||
|
|
|
@ -364,32 +364,6 @@
|
|||
.align 32
|
||||
.endm
|
||||
|
||||
/* The following are simple 32 vs 64 bit instruction
|
||||
* abstractions for the macros */
|
||||
.macro EXTR reg1,start,length,reg2
|
||||
#ifdef CONFIG_64BIT
|
||||
extrd,u \reg1,32+(\start),\length,\reg2
|
||||
#else
|
||||
extrw,u \reg1,\start,\length,\reg2
|
||||
#endif
|
||||
.endm
|
||||
|
||||
.macro DEP reg1,start,length,reg2
|
||||
#ifdef CONFIG_64BIT
|
||||
depd \reg1,32+(\start),\length,\reg2
|
||||
#else
|
||||
depw \reg1,\start,\length,\reg2
|
||||
#endif
|
||||
.endm
|
||||
|
||||
.macro DEPI val,start,length,reg
|
||||
#ifdef CONFIG_64BIT
|
||||
depdi \val,32+(\start),\length,\reg
|
||||
#else
|
||||
depwi \val,\start,\length,\reg
|
||||
#endif
|
||||
.endm
|
||||
|
||||
/* In LP64, the space contains part of the upper 32 bits of the
|
||||
* fault. We have to extract this and place it in the va,
|
||||
* zeroing the corresponding bits in the space register */
|
||||
|
@ -442,19 +416,19 @@
|
|||
*/
|
||||
.macro L2_ptep pmd,pte,index,va,fault
|
||||
#if PT_NLEVELS == 3
|
||||
EXTR \va,31-ASM_PMD_SHIFT,ASM_BITS_PER_PMD,\index
|
||||
extru \va,31-ASM_PMD_SHIFT,ASM_BITS_PER_PMD,\index
|
||||
#else
|
||||
EXTR \va,31-ASM_PGDIR_SHIFT,ASM_BITS_PER_PGD,\index
|
||||
extru \va,31-ASM_PGDIR_SHIFT,ASM_BITS_PER_PGD,\index
|
||||
#endif
|
||||
DEP %r0,31,PAGE_SHIFT,\pmd /* clear offset */
|
||||
dep %r0,31,PAGE_SHIFT,\pmd /* clear offset */
|
||||
copy %r0,\pte
|
||||
ldw,s \index(\pmd),\pmd
|
||||
bb,>=,n \pmd,_PxD_PRESENT_BIT,\fault
|
||||
DEP %r0,31,PxD_FLAG_SHIFT,\pmd /* clear flags */
|
||||
dep %r0,31,PxD_FLAG_SHIFT,\pmd /* clear flags */
|
||||
copy \pmd,%r9
|
||||
SHLREG %r9,PxD_VALUE_SHIFT,\pmd
|
||||
EXTR \va,31-PAGE_SHIFT,ASM_BITS_PER_PTE,\index
|
||||
DEP %r0,31,PAGE_SHIFT,\pmd /* clear offset */
|
||||
extru \va,31-PAGE_SHIFT,ASM_BITS_PER_PTE,\index
|
||||
dep %r0,31,PAGE_SHIFT,\pmd /* clear offset */
|
||||
shladd \index,BITS_PER_PTE_ENTRY,\pmd,\pmd
|
||||
LDREG %r0(\pmd),\pte /* pmd is now pte */
|
||||
bb,>=,n \pte,_PAGE_PRESENT_BIT,\fault
|
||||
|
@ -605,7 +579,7 @@
|
|||
depdi 0,31,32,\tmp
|
||||
#endif
|
||||
copy \va,\tmp1
|
||||
DEPI 0,31,23,\tmp1
|
||||
depi 0,31,23,\tmp1
|
||||
cmpb,COND(<>),n \tmp,\tmp1,\fault
|
||||
ldi (_PAGE_DIRTY|_PAGE_WRITE|_PAGE_READ),\prot
|
||||
depd,z \prot,8,7,\prot
|
||||
|
@ -997,13 +971,6 @@ intr_restore:
|
|||
|
||||
rfi
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
|
||||
#ifndef CONFIG_PREEMPT
|
||||
# define intr_do_preempt intr_restore
|
||||
|
@ -2076,9 +2043,10 @@ syscall_restore:
|
|||
LDREG TASK_PT_GR31(%r1),%r31 /* restore syscall rp */
|
||||
|
||||
/* NOTE: We use rsm/ssm pair to make this operation atomic */
|
||||
LDREG TASK_PT_GR30(%r1),%r1 /* Get user sp */
|
||||
rsm PSW_SM_I, %r0
|
||||
LDREG TASK_PT_GR30(%r1),%r30 /* restore user sp */
|
||||
mfsp %sr3,%r1 /* Get users space id */
|
||||
copy %r1,%r30 /* Restore user sp */
|
||||
mfsp %sr3,%r1 /* Get user space id */
|
||||
mtsp %r1,%sr7 /* Restore sr7 */
|
||||
ssm PSW_SM_I, %r0
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue