Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 24033
b: refs/heads/master
c: e9b0a07
h: refs/heads/master
i:
  24031: 5049efa
v: v3
  • Loading branch information
Bjorn Helgaas authored and Linus Torvalds committed Mar 26, 2006
1 parent c6c50ac commit 65b4cd8
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 15 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 136939a2b5aa4302281215745ccd567e1df2e8d4
refs/heads/master: e9b0a0712148abe96ff717a2b9f8dab1d433e0d5
2 changes: 1 addition & 1 deletion trunk/arch/ia64/mm/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Makefile for the ia64-specific parts of the memory manager.
#

obj-y := init.o fault.o tlb.o extable.o
obj-y := init.o fault.o tlb.o extable.o ioremap.o

obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o
obj-$(CONFIG_NUMA) += numa.o
Expand Down
43 changes: 43 additions & 0 deletions trunk/arch/ia64/mm/ioremap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/*
* (c) Copyright 2006 Hewlett-Packard Development Company, L.P.
* Bjorn Helgaas <bjorn.helgaas@hp.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/

#include <linux/compiler.h>
#include <linux/module.h>
#include <linux/efi.h>
#include <asm/io.h>

static inline void __iomem *
__ioremap (unsigned long offset, unsigned long size)
{
return (void __iomem *) (__IA64_UNCACHED_OFFSET | offset);
}

void __iomem *
ioremap (unsigned long offset, unsigned long size)
{
if (efi_mem_attribute_range(offset, size, EFI_MEMORY_UC))
return __ioremap(offset, size);

if (efi_mem_attribute_range(offset, size, EFI_MEMORY_WB))
return phys_to_virt(offset);

/*
* Someday this should check ACPI resources so we
* can do the right thing for hot-plugged regions.
*/
return __ioremap(offset, size);
}
EXPORT_SYMBOL(ioremap);

void __iomem *
ioremap_nocache (unsigned long offset, unsigned long size)
{
return __ioremap(offset, size);
}
EXPORT_SYMBOL(ioremap_nocache);
15 changes: 2 additions & 13 deletions trunk/include/asm-ia64/io.h
Original file line number Diff line number Diff line change
Expand Up @@ -416,25 +416,14 @@ __writeq (unsigned long val, volatile void __iomem *addr)
# define outl_p outl
#endif

/*
* An "address" in IO memory space is not clearly either an integer or a pointer. We will
* accept both, thus the casts.
*
* On ia-64, we access the physical I/O memory space through the uncached kernel region.
*/
static inline void __iomem *
ioremap (unsigned long offset, unsigned long size)
{
return (void __iomem *) (__IA64_UNCACHED_OFFSET | (offset));
}
extern void __iomem * ioremap(unsigned long offset, unsigned long size);
extern void __iomem * ioremap_nocache (unsigned long offset, unsigned long size);

static inline void
iounmap (volatile void __iomem *addr)
{
}

#define ioremap_nocache(o,s) ioremap(o,s)

/* Use normal IO mappings for DMI */
#define dmi_ioremap ioremap
#define dmi_iounmap(x,l) iounmap(x)
Expand Down

0 comments on commit 65b4cd8

Please sign in to comment.