Hi Jacopo, On Wed, Nov 8, 2017 at 7:05 PM, Jacopo Mondi <jacopo+renesas@xxxxxxxxxx> wrote: > A memory region for CEU video buffer has to be reserved during machine > initialization. > > Originally, it was allocated through DMA API helpers and stored in the > second IORESOURCE_MEM entry, to be later remapped by the CEU driver with > a call to 'dma_declare_coherent_memory()' > > As Linux does not allow anymore to remap system RAM regions with > 'memremap' function, sh_mobile_ceu driver fails when trying to remap the > memory area: > > WARN_ONCE(1, "memremap attempted on ram %pa size: %#lx\n", > &offset, (unsigned long) size) > > from 'memremap()' function in kernel/memremap.c > > To avoid hitting that WARN_ONCE() and have memory successfully remapped, > reserve a region using '.mv_mem_reserve' member of SH's 'struct > sh_machine_vector' to make sure memory is reserved early enough, and > removed from the available system RAM. > > This is similar to what happens on ARM architecture with > 'arm_memblock_steal()' function. > > Suggested-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > Signed-off-by: Jacopo Mondi <jacopo+renesas@xxxxxxxxxx> I assume this failure isnot limited to CEU on Migo-R, but applies to the other 24 callers of platform_resource_setup_memory(), too? Can platform_resource_setup_memory() be fixed instead, or is that difficult due to the need to reserve the memory very early in the boot process? Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds