]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/sfi/sfi_core.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
[linux.git] / drivers / sfi / sfi_core.c
index 296db7a69c27548c2529c52d532832c39f0db1aa..153b3f3cc795fdd5b7d0e31ff5a18043b738b4c8 100644 (file)
@@ -68,6 +68,7 @@
 #include <linux/init.h>
 #include <linux/sfi.h>
 #include <linux/slab.h>
+#include <linux/io.h>
 
 #include "sfi_core.h"
 
@@ -86,13 +87,13 @@ static struct sfi_table_simple *syst_va __read_mostly;
 /*
  * FW creates and saves the SFI tables in memory. When these tables get
  * used, they may need to be mapped to virtual address space, and the mapping
- * can happen before or after the ioremap() is ready, so a flag is needed
+ * can happen before or after the memremap() is ready, so a flag is needed
  * to indicating this
  */
-static u32 sfi_use_ioremap __read_mostly;
+static u32 sfi_use_memremap __read_mostly;
 
 /*
- * sfi_un/map_memory calls early_ioremap/iounmap which is a __init function
+ * sfi_un/map_memory calls early_memremap/memunmap which is a __init function
  * and introduces section mismatch. So use __ref to make it calm.
  */
 static void __iomem * __ref sfi_map_memory(u64 phys, u32 size)
@@ -100,10 +101,10 @@ static void __iomem * __ref sfi_map_memory(u64 phys, u32 size)
        if (!phys || !size)
                return NULL;
 
-       if (sfi_use_ioremap)
-               return ioremap_cache(phys, size);
+       if (sfi_use_memremap)
+               return memremap(phys, size, MEMREMAP_WB);
        else
-               return early_ioremap(phys, size);
+               return early_memremap(phys, size);
 }
 
 static void __ref sfi_unmap_memory(void __iomem *virt, u32 size)
@@ -111,10 +112,10 @@ static void __ref sfi_unmap_memory(void __iomem *virt, u32 size)
        if (!virt || !size)
                return;
 
-       if (sfi_use_ioremap)
-               iounmap(virt);
+       if (sfi_use_memremap)
+               memunmap(virt);
        else
-               early_iounmap(virt, size);
+               early_memunmap(virt, size);
 }
 
 static void sfi_print_table_header(unsigned long long pa,
@@ -507,8 +508,8 @@ void __init sfi_init_late(void)
        length = syst_va->header.len;
        sfi_unmap_memory(syst_va, sizeof(struct sfi_table_simple));
 
-       /* Use ioremap now after it is ready */
-       sfi_use_ioremap = 1;
+       /* Use memremap now after it is ready */
+       sfi_use_memremap = 1;
        syst_va = sfi_map_memory(syst_pa, length);
 
        sfi_acpi_init();