mtd: fix CONFIG_MTD_COMPLEX_MAPPINGS=n compile

From: Jason Lunz
Date: Thu Dec 16 2010 - 23:28:59 EST


On Thu, Dec 16, 2010 at 11:01:10PM +0100, Anatolij Gustschin wrote:
> This change breaks compiling when CONFIG_MTD_COMPLEX_MAPPINGS is not
> defined in the kernel configuration. Please fix!

Sorry, sloppy of me. This reverts all changes to mtd.h while keeping the
ability to compile mtd on ARCH=um, with the exception mtdchar.

Jason

--

Revert hiding of inline_map_* functions in linux/mtd.h, and mark
MTD_CHAR as incompatible with uml until a better solution can be found
there.

Signed-off-by: Jason Lunz <lunz@xxxxxxx>

---
drivers/mtd/Kconfig | 1 +
include/linux/mtd/map.h | 18 +++++++++---------
2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
index 7537654..51471a5 100644
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
@@ -174,6 +174,7 @@ comment "User Modules And Translation Layers"

config MTD_CHAR
tristate "Direct char device access to MTD devices"
+ depends on HAS_IOMEM
help
This provides a character device for each MTD device present in
the system, allowing the user to read and write directly to the
diff --git a/include/linux/mtd/map.h b/include/linux/mtd/map.h
index 3d9f7e0..a9e6ba4 100644
--- a/include/linux/mtd/map.h
+++ b/include/linux/mtd/map.h
@@ -388,15 +388,6 @@ static inline map_word map_word_ff(struct map_info *map)
return r;
}

-#ifdef CONFIG_MTD_COMPLEX_MAPPINGS
-#define map_read(map, ofs) (map)->read(map, ofs)
-#define map_copy_from(map, to, from, len) (map)->copy_from(map, to, from, len)
-#define map_write(map, datum, ofs) (map)->write(map, datum, ofs)
-#define map_copy_to(map, to, from, len) (map)->copy_to(map, to, from, len)
-
-extern void simple_map_init(struct map_info *);
-#define map_is_linear(map) (map->phys != NO_XIP)
-
static inline map_word inline_map_read(struct map_info *map, unsigned long ofs)
{
map_word r;
@@ -449,6 +440,15 @@ static inline void inline_map_copy_to(struct map_info *map, unsigned long to, co
memcpy_toio(map->virt + to, from, len);
}

+#ifdef CONFIG_MTD_COMPLEX_MAPPINGS
+#define map_read(map, ofs) (map)->read(map, ofs)
+#define map_copy_from(map, to, from, len) (map)->copy_from(map, to, from, len)
+#define map_write(map, datum, ofs) (map)->write(map, datum, ofs)
+#define map_copy_to(map, to, from, len) (map)->copy_to(map, to, from, len)
+
+extern void simple_map_init(struct map_info *);
+#define map_is_linear(map) (map->phys != NO_XIP)
+
#else
#define map_read(map, ofs) inline_map_read(map, ofs)
#define map_copy_from(map, to, from, len) inline_map_copy_from(map, to, from, len)
--
1.7.2.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/