video: tegra: dc: Add quick for Vizio P series
[linux-3.10.git] / lib / ioremap.c
index 29c810e..0c9216c 100644 (file)
@@ -5,18 +5,19 @@
  *
  * (C) Copyright 1995 1996 Linus Torvalds
  */
-#include <linux/io.h>
 #include <linux/vmalloc.h>
 #include <linux/mm.h>
-
+#include <linux/sched.h>
+#include <linux/io.h>
+#include <linux/export.h>
 #include <asm/cacheflush.h>
 #include <asm/pgtable.h>
 
 static int ioremap_pte_range(pmd_t *pmd, unsigned long addr,
-               unsigned long end, unsigned long phys_addr, pgprot_t prot)
+               unsigned long end, phys_addr_t phys_addr, pgprot_t prot)
 {
        pte_t *pte;
-       unsigned long pfn;
+       u64 pfn;
 
        pfn = phys_addr >> PAGE_SHIFT;
        pte = pte_alloc_kernel(pmd, addr);
@@ -31,7 +32,7 @@ static int ioremap_pte_range(pmd_t *pmd, unsigned long addr,
 }
 
 static inline int ioremap_pmd_range(pud_t *pud, unsigned long addr,
-               unsigned long end, unsigned long phys_addr, pgprot_t prot)
+               unsigned long end, phys_addr_t phys_addr, pgprot_t prot)
 {
        pmd_t *pmd;
        unsigned long next;
@@ -49,7 +50,7 @@ static inline int ioremap_pmd_range(pud_t *pud, unsigned long addr,
 }
 
 static inline int ioremap_pud_range(pgd_t *pgd, unsigned long addr,
-               unsigned long end, unsigned long phys_addr, pgprot_t prot)
+               unsigned long end, phys_addr_t phys_addr, pgprot_t prot)
 {
        pud_t *pud;
        unsigned long next;
@@ -67,7 +68,7 @@ static inline int ioremap_pud_range(pgd_t *pgd, unsigned long addr,
 }
 
 int ioremap_page_range(unsigned long addr,
-                      unsigned long end, unsigned long phys_addr, pgprot_t prot)
+                      unsigned long end, phys_addr_t phys_addr, pgprot_t prot)
 {
        pgd_t *pgd;
        unsigned long start;
@@ -76,8 +77,6 @@ int ioremap_page_range(unsigned long addr,
 
        BUG_ON(addr >= end);
 
-       flush_cache_all();
-
        start = addr;
        phys_addr -= addr;
        pgd = pgd_offset_k(addr);
@@ -88,7 +87,8 @@ int ioremap_page_range(unsigned long addr,
                        break;
        } while (pgd++, addr = next, addr != end);
 
-       flush_tlb_all();
+       flush_cache_vmap(start, end);
 
        return err;
 }
+EXPORT_SYMBOL_GPL(ioremap_page_range);