android_kernel_google_msm/drivers/base
Marek Szyprowski c5334fd415 drivers: add Contiguous Memory Allocator
The Contiguous Memory Allocator is a set of helper functions for DMA
mapping framework that improves allocations of contiguous memory chunks.

CMA grabs memory on system boot, marks it with MIGRATE_CMA migrate type
and gives back to the system. Kernel is allowed to allocate only movable
pages within CMA's managed memory so that it can be used for example for
page cache when DMA mapping do not use it. On
dma_alloc_from_contiguous() request such pages are migrated out of CMA
area to free required contiguous block and fulfill the request. This
allows to allocate large contiguous chunks of memory at any time
assuming that there is enough free memory available in the system.

This code is heavily based on earlier works by Michal Nazarewicz.

Change-Id: I8a04c58b0d39ee7343ac0b58b6dad9d57912c91d
[lauraa: fixed Kconfig conflict]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Michal Nazarewicz <mina86@mina86.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Rob Clark <rob.clark@linaro.org>
Tested-by: Ohad Ben-Cohen <ohad@wizery.com>
Tested-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Tested-by: Robert Nelson <robertcnelson@gmail.com>
Tested-by: Barry Song <Baohua.Song@csr.com>
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
2013-02-27 18:14:15 -08:00
..
power drivers: power: Add watchdog timer to catch drivers which lockup during suspend. 2012-04-09 13:53:08 -07:00
regmap regmap: fix possible memory corruption in regmap_bulk_read() 2012-05-09 15:44:11 +01:00
attribute_container.c
base.h drivers: Resurrect sysdev 2013-02-25 11:29:18 -08:00
bus.c Merge 3.3-rc2 into the driver-core-next branch. 2012-02-02 11:24:44 -08:00
class.c driver-core: implement 'sysdev' functionality for regular devices and buses 2011-12-14 14:29:38 -08:00
core.c Core device tree changes for Linux v3.4 2012-03-21 10:30:03 -07:00
cpu.c Merge 3.3-rc6 into driver-core-next 2012-03-09 12:35:53 -08:00
dd.c driver core: minor comment formatting cleanups 2012-03-08 12:20:37 -08:00
devres.c devres: Fix a typo in devm_kfree comment 2011-12-21 00:31:47 +01:00
devtmpfs.c Merge branch 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2012-01-08 12:19:57 -08:00
dma-buf.c dma-buf: mmap support 2012-05-22 14:01:06 -07:00
dma-coherent.c drivers/base: dma-coherent.c is a module and needs module.h 2011-10-31 19:31:38 -04:00
dma-contiguous.c drivers: add Contiguous Memory Allocator 2013-02-27 18:14:15 -08:00
dma-mapping.c drivers/base: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required. 2011-10-31 19:31:38 -04:00
driver.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-03-21 18:55:10 -07:00
firmware.c
firmware_class.c firmware_class: Move request_firmware_nowait() to workqueues 2012-03-28 23:31:00 +02:00
genlock.c base: genlock: add magic to protect attach from non-genlock file 2013-02-27 18:11:03 -08:00
hypervisor.c drivers/base: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required. 2011-10-31 19:31:38 -04:00
init.c driver-core: implement 'sysdev' functionality for regular devices and buses 2011-12-14 14:29:38 -08:00
isa.c
Kconfig drivers: add Contiguous Memory Allocator 2013-02-27 18:14:15 -08:00
Makefile drivers: add Contiguous Memory Allocator 2013-02-27 18:14:15 -08:00
map.c
memory.c Linux 3.3-rc7 2012-03-14 07:44:11 +01:00
module.c
node.c drivers/base/memory.c: fix memory_dev_init() long delay 2012-02-02 15:50:05 -08:00
platform.c drivercore: Output common devicetree information in uevent 2012-02-01 14:26:30 -07:00
soc.c drivers/base: fix compiler warning in SoC export driver - idr should be ida 2012-04-09 14:54:22 -07:00
sw_sync.c sw_sync: export sw_sync API 2012-05-30 13:12:40 -07:00
sync.c base: sync: signal a sync pt when not adding to the active_list 2013-01-10 10:36:27 -08:00
sys.c drivers: Resurrect sysdev 2013-02-25 11:29:18 -08:00
syscore.c
topology.c cpu: convert 'cpu' and 'machinecheck' sysdev_class to a regular subsystem 2011-12-21 14:29:42 -08:00
transport_class.c