diff options
| author | Dan Williams <dan.j.williams@intel.com> | 2009-09-08 20:55:21 -0400 |
|---|---|---|
| committer | Dan Williams <dan.j.williams@intel.com> | 2009-09-08 20:55:21 -0400 |
| commit | bbb20089a3275a19e475dbc21320c3742e3ca423 (patch) | |
| tree | 216fdc1cbef450ca688135c5b8969169482d9a48 /arch/arm/plat-omap/io.c | |
| parent | 3e48e656903e9fd8bc805c6a2c4264d7808d315b (diff) | |
| parent | 657a77fa7284d8ae28dfa48f1dc5d919bf5b2843 (diff) | |
Merge branch 'dmaengine' into async-tx-next
Conflicts:
crypto/async_tx/async_xor.c
drivers/dma/ioat/dma_v2.h
drivers/dma/ioat/pci.c
drivers/md/raid5.c
Diffstat (limited to 'arch/arm/plat-omap/io.c')
| -rw-r--r-- | arch/arm/plat-omap/io.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/arch/arm/plat-omap/io.c b/arch/arm/plat-omap/io.c index af326efc1ad3..9b42d72d96cf 100644 --- a/arch/arm/plat-omap/io.c +++ b/arch/arm/plat-omap/io.c | |||
| @@ -1,3 +1,14 @@ | |||
| 1 | /* | ||
| 2 | * Common io.c file | ||
| 3 | * This file is created by Russell King <rmk+kernel@arm.linux.org.uk> | ||
| 4 | * | ||
| 5 | * Copyright (C) 2009 Texas Instruments | ||
| 6 | * Added OMAP4 support - Santosh Shilimkar <santosh.shilimkar@ti.com> | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or modify | ||
| 9 | * it under the terms of the GNU General Public License version 2 as | ||
| 10 | * published by the Free Software Foundation. | ||
| 11 | */ | ||
| 1 | #include <linux/module.h> | 12 | #include <linux/module.h> |
| 2 | #include <linux/io.h> | 13 | #include <linux/io.h> |
| 3 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
| @@ -7,6 +18,7 @@ | |||
| 7 | #include <mach/omap16xx.h> | 18 | #include <mach/omap16xx.h> |
| 8 | #include <mach/omap24xx.h> | 19 | #include <mach/omap24xx.h> |
| 9 | #include <mach/omap34xx.h> | 20 | #include <mach/omap34xx.h> |
| 21 | #include <mach/omap44xx.h> | ||
| 10 | 22 | ||
| 11 | #define BETWEEN(p,st,sz) ((p) >= (st) && (p) < ((st) + (sz))) | 23 | #define BETWEEN(p,st,sz) ((p) >= (st) && (p) < ((st) + (sz))) |
| 12 | #define XLATE(p,pst,vst) ((void __iomem *)((p) - (pst) + (vst))) | 24 | #define XLATE(p,pst,vst) ((void __iomem *)((p) - (pst) + (vst))) |
| @@ -92,7 +104,22 @@ void __iomem *omap_ioremap(unsigned long p, size_t size, unsigned int type) | |||
| 92 | return XLATE(p, L4_EMU_34XX_PHYS, L4_EMU_34XX_VIRT); | 104 | return XLATE(p, L4_EMU_34XX_PHYS, L4_EMU_34XX_VIRT); |
| 93 | } | 105 | } |
| 94 | #endif | 106 | #endif |
| 95 | 107 | #ifdef CONFIG_ARCH_OMAP4 | |
| 108 | if (cpu_is_omap44xx()) { | ||
| 109 | if (BETWEEN(p, L3_44XX_PHYS, L3_44XX_SIZE)) | ||
| 110 | return XLATE(p, L3_44XX_PHYS, L3_44XX_VIRT); | ||
| 111 | if (BETWEEN(p, L4_44XX_PHYS, L4_44XX_SIZE)) | ||
| 112 | return XLATE(p, L4_44XX_PHYS, L4_44XX_VIRT); | ||
| 113 | if (BETWEEN(p, L4_WK_44XX_PHYS, L4_WK_44XX_SIZE)) | ||
| 114 | return XLATE(p, L4_WK_44XX_PHYS, L4_WK_44XX_VIRT); | ||
| 115 | if (BETWEEN(p, OMAP44XX_GPMC_PHYS, OMAP44XX_GPMC_SIZE)) | ||
| 116 | return XLATE(p, OMAP44XX_GPMC_PHYS, OMAP44XX_GPMC_VIRT); | ||
| 117 | if (BETWEEN(p, L4_PER_44XX_PHYS, L4_PER_44XX_SIZE)) | ||
| 118 | return XLATE(p, L4_PER_44XX_PHYS, L4_PER_44XX_VIRT); | ||
| 119 | if (BETWEEN(p, L4_EMU_44XX_PHYS, L4_EMU_44XX_SIZE)) | ||
| 120 | return XLATE(p, L4_EMU_44XX_PHYS, L4_EMU_44XX_VIRT); | ||
| 121 | } | ||
| 122 | #endif | ||
| 96 | return __arm_ioremap(p, size, type); | 123 | return __arm_ioremap(p, size, type); |
| 97 | } | 124 | } |
| 98 | EXPORT_SYMBOL(omap_ioremap); | 125 | EXPORT_SYMBOL(omap_ioremap); |
