1 Index: linux-3.6.6/drivers/mtd/chips/cfi_cmdset_0002.c
2 ===================================================================
3 --- linux-3.6.6.orig/drivers/mtd/chips/cfi_cmdset_0002.c
4 +++ linux-3.6.6/drivers/mtd/chips/cfi_cmdset_0002.c
6 #include <linux/mtd/xip.h>
8 #define AMD_BOOTLOC_BUG
9 -#define FORCE_WORD_WRITE 0
10 +#define FORCE_WORD_WRITE 1
12 #define MAX_WORD_RETRIES 3
16 static int cfi_amdstd_read (struct mtd_info *, loff_t, size_t, size_t *, u_char *);
17 static int cfi_amdstd_write_words(struct mtd_info *, loff_t, size_t, size_t *, const u_char *);
18 +#if !FORCE_WORD_WRITE
19 static int cfi_amdstd_write_buffers(struct mtd_info *, loff_t, size_t, size_t *, const u_char *);
21 static int cfi_amdstd_erase_chip(struct mtd_info *, struct erase_info *);
22 static int cfi_amdstd_erase_varsize(struct mtd_info *, struct erase_info *);
23 static void cfi_amdstd_sync (struct mtd_info *);
24 @@ -186,6 +188,7 @@ static void fixup_amd_bootblock(struct m
28 +#if !FORCE_WORD_WRITE
29 static void fixup_use_write_buffers(struct mtd_info *mtd)
31 struct map_info *map = mtd->priv;
32 @@ -195,6 +198,7 @@ static void fixup_use_write_buffers(stru
33 mtd->_write = cfi_amdstd_write_buffers;
36 +#endif /* !FORCE_WORD_WRITE */
38 /* Atmel chips don't use the same PRI format as AMD chips */
39 static void fixup_convert_atmel_pri(struct mtd_info *mtd)
40 @@ -1376,6 +1380,7 @@ static int cfi_amdstd_write_words(struct
42 * FIXME: interleaved mode not tested, and probably not supported!
44 +#if !FORCE_WORD_WRITE
45 static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip,
46 unsigned long adr, const u_char *buf,
48 @@ -1488,7 +1493,6 @@ static int __xipram do_write_buffer(stru
53 static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len,
54 size_t *retlen, const u_char *buf)
56 @@ -1563,6 +1567,7 @@ static int cfi_amdstd_write_buffers(stru
60 +#endif /* !FORCE_WORD_WRITE */
63 * Wait for the flash chip to become ready to write data