linux/drivers
Akinobu Mita 5ea3b1b2f8 cma: add placement specifier for "cma=" kernel parameter
Currently, "cma=" kernel parameter is used to specify the size of CMA,
but we can't specify where it is located.  We want to locate CMA below
4GB for devices only supporting 32-bit addressing on 64-bit systems
without iommu.

This enables to specify the placement of CMA by extending "cma=" kernel
parameter.

Examples:
 1. locate 64MB CMA below 4GB by "cma=64M@0-4G"
 2. locate 64MB CMA exact at 512MB by "cma=64M@512M"

Note that the DMA contiguous memory allocator on x86 assumes that
page_address() works for the pages to allocate.  So this change requires
to limit end address of contiguous memory area upto max_pfn_mapped to
prevent from locating it on highmem area by the argument of
dma_contiguous_reserve().

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Don Dutile <ddutile@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-06-04 16:53:57 -07:00
..
accessibility
acpi ACPI and power management updates for 3.16-rc1 2014-06-04 08:57:16 -07:00
amba ARM: SoC: driver changes 2014-04-05 15:37:40 -07:00
ata Merge branch 'for-3.15-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2014-05-21 18:35:42 +09:00
atm atm: idt77105: Use del_timer_sync() in exit path 2014-03-25 21:06:02 -04:00
auxdisplay
base cma: add placement specifier for "cma=" kernel parameter 2014-06-04 16:53:57 -07:00
bcma bcma: gpio: register 32 GPIOs on BCM5357 2014-03-27 14:20:04 -04:00
block Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next 2014-06-03 14:00:15 -07:00
bluetooth TTY/Serial driver patches for 3.16-rc1 2014-06-03 09:01:02 -07:00
bus ARM: SoC driver changes 2014-06-02 16:35:49 -07:00
cdrom cdrom: Remove unnecessary prototype for cdrom_get_disc_info 2014-05-05 14:58:06 -06:00
char ACPI and power management updates for 3.16-rc1 2014-06-04 08:57:16 -07:00
clk DeviceTree for 3.16: 2014-06-04 10:02:38 -07:00
clocksource DeviceTree for 3.16: 2014-06-04 10:02:38 -07:00
connector Char / misc driver patches for 3.16-rc1 2014-06-03 08:06:56 -07:00
cpufreq ACPI and power management updates for 3.16-rc1 2014-06-04 08:57:16 -07:00
cpuidle ACPI and power management updates for 3.16-rc1 2014-06-04 08:57:16 -07:00
crypto crypto/nx/nx-842: dev_set_drvdata can no longer fail 2014-05-28 13:39:51 -07:00
dca dca: convert to idr_alloc() 2013-02-27 19:10:15 -08:00
devfreq PM / devfreq: remove checks for CONFIG_EXYNOS_ASV 2014-05-24 22:33:51 +09:00
dio
dma ARM: SoC driver changes 2014-06-02 16:35:49 -07:00
edac PCI changes for the v3.16 merge window: 2014-06-02 12:15:19 -07:00
eisa Revert "EISA: Initialize device before its resources" 2014-01-17 14:57:29 -07:00
extcon
firewire sound updates for 3.16-rc1 2014-06-04 09:08:25 -07:00
firmware iscsi_ibft: Fix finding Broadcom specific ibft sign 2014-05-13 14:54:14 -04:00
fmc Merge 3.14-rc5 into char-misc-next 2014-03-02 19:53:09 -08:00
gpio This is the bulk of GPIO changes for the v3.16 series: 2014-06-02 08:46:03 -07:00
gpu ACPI and power management updates for 3.16-rc1 2014-06-04 08:57:16 -07:00
hid Merge branches 'for-3.16/i2c-hid', 'for-3.16/rmi4', 'for-3.16/sony' and 'for-3.16/thingm' into for-linus 2014-06-04 13:09:43 +02:00
hsi HSI: Introduce Nokia N900 modem driver 2014-05-16 00:55:42 +02:00
hv
hwmon New driver for NCT6683D 2014-06-03 11:09:43 -07:00
hwspinlock
i2c i2c: rcar: bail out on zero length transfers 2014-05-14 18:59:57 +02:00
ide block: remove struct request buffer member 2014-04-15 14:03:02 -06:00
idle intel_idle: fix IVT idle state table setting 2014-04-21 23:36:07 +02:00
iio Staging driver patches for 3.16-rc1 2014-06-03 08:34:00 -07:00
infiniband Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-05-23 15:29:43 -07:00
input
iommu intel-iommu: integrate DMA CMA 2014-06-04 16:53:57 -07:00
ipack ipack: convert bus code to use dev_groups 2013-10-16 18:40:57 -07:00
irqchip DeviceTree for 3.16: 2014-06-04 10:02:38 -07:00
isdn hisax/icc: add missing semicolon after label 2014-04-22 21:22:47 -04:00
leds Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid into next 2014-06-04 08:52:36 -07:00
lguest
macintosh macintosh/adb: Change platform power management to use dev_pm_ops 2014-03-07 15:54:48 +11:00
mailbox drivers/mailbox/omap: make mbox->irq signed for error handling 2014-01-23 16:36:53 -08:00
mcb mcb: Add support for shared PCI IRQs 2014-05-27 17:38:11 -07:00
md Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next 2014-06-03 12:57:53 -07:00
media Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next 2014-06-03 12:57:53 -07:00
memory memory: mvebu-devbus: add a devbus, keep-config property 2014-04-29 13:17:10 +00:00
memstick
message PCI changes for the v3.15 merge window: 2014-04-01 15:14:04 -07:00
mfd sound updates for 3.16-rc1 2014-06-04 09:08:25 -07:00
misc Merge branch 'x86-uv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next 2014-06-03 15:48:23 -07:00
mmc Updates for mmci driver: 2014-06-02 09:22:24 -07:00
mtd Merge branch 'for-3.16/core' of git://git.kernel.dk/linux-block into next 2014-06-02 09:29:34 -07:00
net ACPI and power management updates for 3.16-rc1 2014-06-04 08:57:16 -07:00
nfc NFC: trf7970a: Add ISO/IEC 15693 and Type 5 tag Support 2014-03-11 00:47:09 +01:00
ntb ntb: Use pci_enable_msix_range() instead of pci_enable_msix() 2014-04-07 10:59:20 -07:00
nubus
of DeviceTree for 3.16: 2014-06-04 10:02:38 -07:00
oprofile oprofile, nmi-timer: Fix CPU hotplug callback registration 2014-03-20 13:43:46 +01:00
parisc PCI changes for the v3.12 merge window: 2013-09-03 16:24:35 -07:00
parport parport: Add support for the WCH353 1S/1P multi-IO card 2014-05-28 12:30:48 -07:00
pci Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial into next 2014-06-04 08:50:34 -07:00
pcmcia pcmcia: Use pci_is_bridge() to simplify code 2014-05-27 14:58:24 -06:00
phy phy: usb: sunxi: Introduce Allwinner A31 USB PHY support 2014-05-14 19:41:13 +05:30
pinctrl This is the bulk of pin control changes for the v3.16 2014-06-03 11:20:32 -07:00
platform ACPI and power management updates for 3.16-rc1 2014-06-04 08:57:16 -07:00
pnp Merge branches 'pnp', 'powercap', 'pm-runtime' and 'pm-opp' 2014-06-03 23:13:00 +02:00
power ACPI and power management updates for 3.16-rc1 2014-06-04 08:57:16 -07:00
powercap powercap / RAPL: add new CPU IDs 2014-05-01 01:34:51 +02:00
pps drivers/pps/clients/pps-gpio.c: remove redundant of_match_ptr 2013-11-13 12:09:35 +09:00
ps3 ps3-vuart: don't use PREPARE_WORK 2014-03-07 10:24:48 -05:00
ptp ptp: fix kconfig dependency warnings 2014-05-12 00:27:26 -04:00
pwm Shiraz has moved 2014-04-18 16:40:08 -07:00
rapidio rapidio: rework device hierarchy and introduce mport class of devices 2014-04-07 16:36:07 -07:00
regulator regulator: Updates for v3.16 2014-06-03 11:44:48 -07:00
remoteproc remoteproc/ste_modem: staticize local symbols 2014-02-24 11:16:16 +02:00
reset
rpmsg A small pull request consisting of: 2013-05-07 14:02:00 -07:00
rtc drivers/rtc/rtc-hym8563.c: set uie_unsupported 2014-05-11 17:55:48 +09:00
s390 At over 200 commits, covering almost all supported architectures, this 2014-06-04 08:47:12 -07:00
sbus jsflash: missed conversion from rq->buffer to bio_data(rq->bio) 2014-04-16 14:15:25 -06:00
scsi Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial into next 2014-06-04 08:50:34 -07:00
sfi
sh Merge back earlier cpufreq material. 2014-06-03 15:03:27 +02:00
sn
soc soc: qcom: fix of_device_id table 2014-05-26 21:27:09 +02:00
spi Merge remote-tracking branch 'spi/topic/workqueue' into spi-next 2014-06-02 17:08:43 +01:00
spmi spmi: pm: drop bus-level PM suspend/resume routines 2014-03-08 22:15:52 -08:00
ssb
staging Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial into next 2014-06-04 08:50:34 -07:00
target Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next 2014-06-03 12:57:53 -07:00
tc
thermal thermal: cpu_cooling: Use cpufreq_for_each_valid_entry macro for iteration 2014-04-30 00:06:49 +02:00
tty DeviceTree for 3.16: 2014-06-04 10:02:38 -07:00
uio uio: fix vma io range check in mmap 2014-05-27 14:11:06 -07:00
usb
uwb uwb: fix variable set but not used warnings 2014-05-27 15:18:48 -07:00
vfio driver core: dev_set_drvdata can no longer fail 2014-05-27 13:40:51 -07:00
vhost arch: Mass conversion of smp_mb__*() 2014-04-18 14:20:48 +02:00
video fbdev changes for 3.16 (omap) 2014-06-04 09:07:08 -07:00
virt drivers: clean-up prom.h implicit includes 2013-10-09 20:04:04 -05:00
virtio virtio: fail adding buffer on broken queues. 2014-03-13 11:27:57 +10:30
vlynq
vme
w1 Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next 2014-06-03 12:57:53 -07:00
watchdog
xen
zorro zorro/UAPI: Use proper types (endianness/size) in <linux/zorro.h> 2013-11-26 11:09:09 +01:00
Kconfig soc: Introduce drivers/soc place-holder for SOC specific drivers 2014-05-23 11:37:46 -05:00
Makefile Char / misc driver patches for 3.16-rc1 2014-06-03 08:06:56 -07:00