On 13 December 2010 16:29, Russell King - ARM Linux <linux@xxxxxxxxxxxxxxxx> wrote: > On Mon, Dec 13, 2010 at 03:52:20PM +0000, Catalin Marinas wrote: >> On 10 December 2010 17:03, Russell King - ARM Linux >> <linux@xxxxxxxxxxxxxxxx> wrote: >> > On Fri, Dec 10, 2010 at 12:03:07PM +0100, Janusz Krzysztofik wrote: >> >> Âvoid __init omap1_camera_init(void *info) >> >> Â{ >> >> Â Â Â struct platform_device *dev = &omap1_camera_device; >> >> + Â Â dma_addr_t paddr = omap1_camera_phys_mempool_base; >> >> + Â Â dma_addr_t size = omap1_camera_phys_mempool_size; >> >> Â Â Â int ret; >> >> >> >> Â Â Â dev->dev.platform_data = info; >> >> >> >> + Â Â if (paddr) { >> >> + Â Â Â Â Â Â if (dma_declare_coherent_memory(&dev->dev, paddr, paddr, size, >> >> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â DMA_MEMORY_MAP | DMA_MEMORY_EXCLUSIVE)) >> > >> > Although this works, you're ending up with SDRAM being mapped via >> > ioremap, which uses MT_DEVICE - so what is SDRAM ends up being >> > mapped as if it were a device. >> >> BTW, does the generic dma_declare_coherent_memory() does the correct >> thing in using ioremap()? > > I argue it doesn't, as I said above. ÂIt means we map SDRAM as device > memory, and as I understand the way interconnects work, it's entirely > possible that this may not result in the SDRAM being accessible. [...] > So, not only does this fail the kernel's own rules, but as we already know, > it fails the architecture's restrictions with multiple mappings of memory > when used with SDRAM, and it also maps main memory as a device. ÂI wonder > how many more things this broken API needs to do wrong before it's current > implementation is consigned to the circular filing cabinet. Should we not try to fix the generic code and still allow platforms to use dma_declare_coherent_memory() in a safer way? I guess it may need some arguing/explanation on linux-arch. -- Catalin -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html