aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-s5p
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/plat-s5p')
-rw-r--r--arch/arm/plat-s5p/bootmem.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/arch/arm/plat-s5p/bootmem.c b/arch/arm/plat-s5p/bootmem.c
index d931cd2..11fbcdc 100644
--- a/arch/arm/plat-s5p/bootmem.c
+++ b/arch/arm/plat-s5p/bootmem.c
@@ -80,8 +80,8 @@ EXPORT_SYMBOL(s5p_get_media_memsize_bank);
void s5p_reserve_bootmem(struct s5p_media_device *mdevs, int nr_mdevs)
{
struct s5p_media_device *mdev;
- int i;
- int ret;
+ u64 start, end;
+ int i, ret;
media_devs = mdevs;
nr_media_devs = nr_mdevs;
@@ -92,16 +92,19 @@ void s5p_reserve_bootmem(struct s5p_media_device *mdevs, int nr_mdevs)
continue;
if (!mdev->paddr) {
- mdev->paddr = memblock_alloc(mdev->memsize, PAGE_SIZE);
- memblock_free(mdev->paddr, mdev->memsize);
+ start = meminfo.bank[mdev->bank].start;
+ end = start + meminfo.bank[mdev->bank].size;
+
+ mdev->paddr = memblock_find_in_range(start, end,
+ mdev->memsize, PAGE_SIZE);
}
ret = memblock_remove(mdev->paddr, mdev->memsize);
if (ret < 0)
- pr_err("memblock_reserve(%x, %x) failed\n",
+ pr_err("memblock_reserve(%x, %x) failed\n",
mdev->paddr, mdev->memsize);
- printk(KERN_INFO "s5pv210: %lu bytes system memory reserved "
+ printk(KERN_INFO "s5p: %lu bytes system memory reserved "
"for %s at 0x%08x\n", (unsigned long) mdev->memsize,
mdev->name, mdev->paddr);
}