microblaze: Preliminary support for dma drivers
I found several problems for ll_temac driver and on system with WB. This early fix should fix it. I will clean this patch before I will add it to mainline Signed-off-by: Michal Simek <monstr@monstr.eu>
This commit is contained in:
parent
4c912c1a33
commit
dcbae4be90
1 changed files with 3 additions and 6 deletions
|
@ -20,18 +20,15 @@
|
|||
* can set archdata.dma_data to an unsigned long holding the offset. By
|
||||
* default the offset is PCI_DRAM_OFFSET.
|
||||
*/
|
||||
|
||||
static inline void __dma_sync_page(void *paddr, unsigned long offset,
|
||||
static inline void __dma_sync_page(unsigned long paddr, unsigned long offset,
|
||||
size_t size, enum dma_data_direction direction)
|
||||
{
|
||||
unsigned long start = (unsigned long)paddr;
|
||||
|
||||
switch (direction) {
|
||||
case DMA_TO_DEVICE:
|
||||
flush_dcache_range(start + offset, start + offset + size);
|
||||
flush_dcache_range(paddr + offset, paddr + offset + size);
|
||||
break;
|
||||
case DMA_FROM_DEVICE:
|
||||
invalidate_dcache_range(start + offset, start + offset + size);
|
||||
invalidate_dcache_range(paddr + offset, paddr + offset + size);
|
||||
break;
|
||||
default:
|
||||
BUG();
|
||||
|
|
Loading…
Reference in a new issue