Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=90833fdab89da02fc0276224167f0a42e5176f41 Commit: 90833fdab89da02fc0276224167f0a42e5176f41 Parent: cb00e99c0abd844b884c64c6b54aa3b7d345ebb1 Author: Jared Hulbert <[EMAIL PROTECTED]> AuthorDate: Wed Aug 22 17:38:25 2007 +0100 Committer: Russell King <[EMAIL PROTECTED]> CommitDate: Thu Aug 23 12:31:31 2007 +0100
[ARM] 4554/1: replace consistent_sync() with flush_ioremap_region() This fixes a regression from around 2.6.18, consistent_sync() will now BUG() under these circumstances. The use of consistent_sync() was a hack, replacing it's usage here with a new function, flush_ioremap_region(). Signed-off-by: Jared Hulbert <[EMAIL PROTECTED]> Acked-by: Pavel Pisa <[EMAIL PROTECTED]> Signed-off-by: Russell King <[EMAIL PROTECTED]> --- drivers/mtd/maps/lubbock-flash.c | 6 ++---- drivers/mtd/maps/mainstone-flash.c | 5 ++--- include/asm-arm/cacheflush.h | 7 +++++++ 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/drivers/mtd/maps/lubbock-flash.c b/drivers/mtd/maps/lubbock-flash.c index 1aa0447..e856068 100644 --- a/drivers/mtd/maps/lubbock-flash.c +++ b/drivers/mtd/maps/lubbock-flash.c @@ -15,9 +15,7 @@ #include <linux/types.h> #include <linux/kernel.h> #include <linux/init.h> -#include <linux/slab.h> -#include <linux/dma-mapping.h> #include <linux/mtd/mtd.h> #include <linux/mtd/map.h> #include <linux/mtd/partitions.h> @@ -26,7 +24,7 @@ #include <asm/hardware.h> #include <asm/arch/pxa-regs.h> #include <asm/arch/lubbock.h> - +#include <asm/cacheflush.h> #define ROM_ADDR 0x00000000 #define FLASH_ADDR 0x04000000 @@ -35,7 +33,7 @@ static void lubbock_map_inval_cache(struct map_info *map, unsigned long from, ssize_t len) { - consistent_sync((char *)map->cached + from, len, DMA_FROM_DEVICE); + flush_ioremap_region(map->phys, map->cached, from, len); } static struct map_info lubbock_maps[2] = { { diff --git a/drivers/mtd/maps/mainstone-flash.c b/drivers/mtd/maps/mainstone-flash.c index eaa4bbb..d76487d 100644 --- a/drivers/mtd/maps/mainstone-flash.c +++ b/drivers/mtd/maps/mainstone-flash.c @@ -15,8 +15,6 @@ #include <linux/types.h> #include <linux/kernel.h> #include <linux/init.h> -#include <linux/dma-mapping.h> -#include <linux/slab.h> #include <linux/mtd/mtd.h> #include <linux/mtd/map.h> @@ -26,6 +24,7 @@ #include <asm/hardware.h> #include <asm/arch/pxa-regs.h> #include <asm/arch/mainstone.h> +#include <asm/cacheflush.h> #define ROM_ADDR 0x00000000 @@ -36,7 +35,7 @@ static void mainstone_map_inval_cache(struct map_info *map, unsigned long from, ssize_t len) { - consistent_sync((char *)map->cached + from, len, DMA_FROM_DEVICE); + flush_ioremap_region(map->phys, map->cached, from, len); } static struct map_info mainstone_maps[2] = { { diff --git a/include/asm-arm/cacheflush.h b/include/asm-arm/cacheflush.h index d1294a4..6c1c968 100644 --- a/include/asm-arm/cacheflush.h +++ b/include/asm-arm/cacheflush.h @@ -426,6 +426,13 @@ static inline void flush_anon_page(struct vm_area_struct *vma, */ #define flush_icache_page(vma,page) do { } while (0) +static inline void flush_ioremap_region(unsigned long phys, void __iomem *virt, + unsigned offset, size_t size) +{ + const void *start = (void __force *)virt + offset; + dmac_inv_range(start, start + size); +} + #define __cacheid_present(val) (val != read_cpuid(CPUID_ID)) #define __cacheid_type_v7(val) ((val & (7 << 29)) == (4 << 29)) - To unsubscribe from this list: send the line "unsubscribe git-commits-head" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html