Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5f9a3e89 authored by Aubrey Li's avatar Aubrey Li Committed by Linus Torvalds
Browse files

Blackfin arch: dma_memcpy borken for > 64K

parent 5079df99
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -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)