ramips: select kmod-rt2800-soc by default (if available)
[openwrt.git] / target / linux / ramips / patches-3.10 / 0119-mtd-cfi-cmdset-0002-force-word-write.patch
1 From d5b094ea6d435817d295d554d652a97a5014c64f Mon Sep 17 00:00:00 2001
2 From: John Crispin <blogic@openwrt.org>
3 Date: Mon, 15 Jul 2013 00:39:21 +0200
4 Subject: [PATCH 33/33] mtd: cfi cmdset 0002 force word write
5
6 ---
7  drivers/mtd/chips/cfi_cmdset_0002.c |    9 +++++++--
8  1 file changed, 7 insertions(+), 2 deletions(-)
9
10 --- a/drivers/mtd/chips/cfi_cmdset_0002.c
11 +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
12 @@ -41,7 +41,7 @@
13  #include <linux/mtd/xip.h>
14  
15  #define AMD_BOOTLOC_BUG
16 -#define FORCE_WORD_WRITE 0
17 +#define FORCE_WORD_WRITE 1
18  
19  #define MAX_WORD_RETRIES 3
20  
21 @@ -52,7 +52,9 @@
22  
23  static int cfi_amdstd_read (struct mtd_info *, loff_t, size_t, size_t *, u_char *);
24  static int cfi_amdstd_write_words(struct mtd_info *, loff_t, size_t, size_t *, const u_char *);
25 +#if !FORCE_WORD_WRITE
26  static int cfi_amdstd_write_buffers(struct mtd_info *, loff_t, size_t, size_t *, const u_char *);
27 +#endif
28  static int cfi_amdstd_erase_chip(struct mtd_info *, struct erase_info *);
29  static int cfi_amdstd_erase_varsize(struct mtd_info *, struct erase_info *);
30  static void cfi_amdstd_sync (struct mtd_info *);
31 @@ -192,6 +194,7 @@ static void fixup_amd_bootblock(struct m
32  }
33  #endif
34  
35 +#if !FORCE_WORD_WRITE
36  static void fixup_use_write_buffers(struct mtd_info *mtd)
37  {
38         struct map_info *map = mtd->priv;
39 @@ -201,6 +204,7 @@ static void fixup_use_write_buffers(stru
40                 mtd->_write = cfi_amdstd_write_buffers;
41         }
42  }
43 +#endif /* !FORCE_WORD_WRITE */
44  
45  /* Atmel chips don't use the same PRI format as AMD chips */
46  static void fixup_convert_atmel_pri(struct mtd_info *mtd)
47 @@ -1461,6 +1465,7 @@ static int cfi_amdstd_write_words(struct
48  /*
49   * FIXME: interleaved mode not tested, and probably not supported!
50   */
51 +#if !FORCE_WORD_WRITE
52  static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip,
53                                     unsigned long adr, const u_char *buf,
54                                     int len)
55 @@ -1585,7 +1590,6 @@ static int __xipram do_write_buffer(stru
56         return ret;
57  }
58  
59 -
60  static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len,
61                                     size_t *retlen, const u_char *buf)
62  {
63 @@ -1660,6 +1664,7 @@ static int cfi_amdstd_write_buffers(stru
64  
65         return 0;
66  }
67 +#endif /* !FORCE_WORD_WRITE */
68  
69  /*
70   * Wait for the flash chip to become ready to write data