#include <linux/delay.h>
#include <mach/pmu.h>
#include <mach/cru.h>
+#define IOREMAP_IN_NOPAGE 0
#if !USE_NEW_LINUX_SIGNAL
#define USER_SIGNAL_TABLE_LEN_INIT 64
gctINT numPages;
PLINUX_MDL mdl;
PLINUX_MDL_MAP mdlMap = 0;
+#if IOREMAP_IN_NOPAGE
gctSTRING addr;
+#endif
#ifdef NO_DMA_COHERENT
struct page * page;
reserved_size -= PAGE_SIZE;
}
-// dkm: gcdENABLE_MEM_CACHE
-#if (1==gcdENABLE_MEM_CACHE)
- addr = ioremap_cached(virt_to_phys(vaddr), size);
-#else
- addr = ioremap_nocache(virt_to_phys(vaddr), size);
+#if IOREMAP_IN_NOPAGE
+ // dkm: gcdENABLE_MEM_CACHE
+ #if (1==gcdENABLE_MEM_CACHE)
+ addr = ioremap_cached(virt_to_phys(vaddr), size);
+ #else
+ addr = ioremap_nocache(virt_to_phys(vaddr), size);
+ #endif
#endif
+
mdl->dmaHandle = virt_to_phys(vaddr);
mdl->kaddr = vaddr;
#endif
+#if IOREMAP_IN_NOPAGE
if (addr == gcvNULL)
{
gcmkTRACE_ZONE(gcvLEVEL_INFO,
return gcvSTATUS_OUT_OF_MEMORY;
}
+#endif
if ((Os->baseAddress & 0x80000000) != (mdl->dmaHandle & 0x80000000))
{
| (Os->baseAddress & 0x80000000);
}
+#if IOREMAP_IN_NOPAGE
mdl->addr = addr;
+#else
+ mdl->addr = vaddr;
+#endif
/*
* We will not do any mapping from here.
free_pages((unsigned long)mdl->kaddr, get_order(mdl->numPages * PAGE_SIZE));
#endif
+#if IOREMAP_IN_NOPAGE
iounmap(mdl->addr);
+#endif
#endif /* NO_DMA_COHERENT */
mdlMap = mdl->maps;