Skip to content

Commit

Permalink
ARM: dma-mapping: simplify dma_cache_maint_page
Browse files Browse the repository at this point in the history
dma_cache_maint_contiguous is now simple enough to live inside
dma_cache_maint_page, so move it there.

Signed-off-by: Russell King <[email protected]>
Tested-By: Santosh Shilimkar <[email protected]>
  • Loading branch information
Russell King committed Feb 15, 2010
1 parent 65af191 commit 93f1d62
Showing 1 changed file with 18 additions and 24 deletions.
42 changes: 18 additions & 24 deletions arch/arm/mm/dma-mapping.c
Original file line number Diff line number Diff line change
Expand Up @@ -446,24 +446,6 @@ void ___dma_single_dev_to_cpu(const void *kaddr, size_t size,
}
EXPORT_SYMBOL(___dma_single_dev_to_cpu);

static void dma_cache_maint_contiguous(struct page *page, unsigned long offset,
size_t size, void (*op)(const void *, const void *))
{
void *vaddr;

if (!PageHighMem(page)) {
vaddr = page_address(page) + offset;
op(vaddr, vaddr + size);
} else {
vaddr = kmap_high_get(page);
if (vaddr) {
vaddr += offset;
op(vaddr, vaddr + size);
kunmap_high(page);
}
}
}

static void dma_cache_maint_page(struct page *page, unsigned long offset,
size_t size, void (*op)(const void *, const void *))
{
Expand All @@ -476,14 +458,26 @@ static void dma_cache_maint_page(struct page *page, unsigned long offset,
size_t left = size;
do {
size_t len = left;
if (PageHighMem(page) && len + offset > PAGE_SIZE) {
if (offset >= PAGE_SIZE) {
page += offset / PAGE_SIZE;
offset %= PAGE_SIZE;
void *vaddr;

if (PageHighMem(page)) {
if (len + offset > PAGE_SIZE) {
if (offset >= PAGE_SIZE) {
page += offset / PAGE_SIZE;
offset %= PAGE_SIZE;
}
len = PAGE_SIZE - offset;
}
vaddr = kmap_high_get(page);
if (vaddr) {
vaddr += offset;
op(vaddr, vaddr + len);
kunmap_high(page);
}
len = PAGE_SIZE - offset;
} else {
vaddr = page_address(page) + offset;
op(vaddr, vaddr + len);
}
dma_cache_maint_contiguous(page, offset, len, op);
offset = 0;
page++;
left -= len;
Expand Down

0 comments on commit 93f1d62

Please sign in to comment.