|
@@ -595,7 +595,7 @@ unsigned short get_dma_curr_ycount(unsigned int channel)
|
|
|
}
|
|
|
EXPORT_SYMBOL(get_dma_curr_ycount);
|
|
|
|
|
|
-void *dma_memcpy(void *dest, const void *src, size_t size)
|
|
|
+void *_dma_memcpy(void *dest, const void *src, size_t size)
|
|
|
{
|
|
|
int direction; /* 1 - address decrease, 0 - address increase */
|
|
|
int flag_align; /* 1 - address aligned, 0 - address unaligned */
|
|
@@ -734,6 +734,21 @@ void *dma_memcpy(void *dest, const void *src, size_t size)
|
|
|
|
|
|
return dest;
|
|
|
}
|
|
|
+
|
|
|
+void *dma_memcpy(void *dest, const void *src, size_t size)
|
|
|
+{
|
|
|
+ size_t bulk;
|
|
|
+ size_t rest;
|
|
|
+ void * addr;
|
|
|
+
|
|
|
+ bulk = (size >> 16) << 16;
|
|
|
+ rest = size - bulk;
|
|
|
+ if (bulk)
|
|
|
+ _dma_memcpy(dest, src, bulk);
|
|
|
+ addr = _dma_memcpy(dest+bulk, src+bulk, rest);
|
|
|
+ return addr;
|
|
|
+}
|
|
|
+
|
|
|
EXPORT_SYMBOL(dma_memcpy);
|
|
|
|
|
|
void *safe_dma_memcpy(void *dest, const void *src, size_t size)
|