#include <asm/pgalloc.h>
#include <asm/uaccess.h>
+
static struct proc_dir_entry * proc_gsc_root = NULL;
static int pcxl_proc_info(char *buffer, char **start, off_t offset, int length);
static unsigned long pcxl_used_bytes = 0;
if (!pte_none(*pte))
printk(KERN_ERR "map_pte_uncached: page already exists\n");
set_pte(pte, __mk_pte(*paddr_ptr, PAGE_KERNEL_UNC));
+ purge_tlb_start();
pdtlb_kernel(orig_vaddr);
+ purge_tlb_end();
vaddr += PAGE_SIZE;
orig_vaddr += PAGE_SIZE;
(*paddr_ptr) += PAGE_SIZE;
end = PMD_SIZE;
do {
pte_t page = *pte;
- pte_clear(pte);
+ pte_clear(&init_mm, vaddr, pte);
+ purge_tlb_start();
pdtlb_kernel(orig_vaddr);
+ purge_tlb_end();
vaddr += PAGE_SIZE;
orig_vaddr += PAGE_SIZE;
pte++;
u_long mask, flags;
unsigned int pages_needed = size >> PAGE_SHIFT;
- ASSERT(pages_needed);
- ASSERT((pages_needed * PAGE_SIZE) < DMA_CHUNK_SIZE);
- ASSERT(pages_needed < (BITS_PER_LONG - PAGE_SHIFT));
-
mask = (u_long) -1L;
mask >>= BITS_PER_LONG - pages_needed;
#define PCXL_FREE_MAPPINGS(idx, m, size) \
u##size *res_ptr = (u##size *)&(pcxl_res_map[(idx) + (((size >> 3) - 1) & (~((size >> 3) - 1)))]); \
- ASSERT((*res_ptr & m) == m); \
+ /* BUG_ON((*res_ptr & m) != m); */ \
*res_ptr &= ~m;
/*
unsigned int res_idx = (vaddr - pcxl_dma_start) >> (PAGE_SHIFT + 3);
unsigned int pages_mapped = size >> PAGE_SHIFT;
- ASSERT(pages_mapped);
- ASSERT((pages_mapped * PAGE_SIZE) < DMA_CHUNK_SIZE);
- ASSERT(pages_mapped < (BITS_PER_LONG - PAGE_SHIFT));
-
mask = (u_long) -1L;
mask >>= BITS_PER_LONG - pages_mapped;
.unmap_single = pa11_dma_unmap_single,
.map_sg = pa11_dma_map_sg,
.unmap_sg = pa11_dma_unmap_sg,
- .dma_sync_single_cpu = pa11_dma_sync_single_cpu,
- .dma_sync_single_device = pa11_dma_sync_single_device,
- .dma_sync_sg_cpu = pa11_dma_sync_sg_cpu,
- .dma_sync_sg_device = pa11_dma_sync_sg_device,
+ .dma_sync_single_for_cpu = pa11_dma_sync_single_for_cpu,
+ .dma_sync_single_for_device = pa11_dma_sync_single_for_device,
+ .dma_sync_sg_for_cpu = pa11_dma_sync_sg_for_cpu,
+ .dma_sync_sg_for_device = pa11_dma_sync_sg_for_device,
};